@starterlib/ui 0.10.13 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENCES-TIERCES.md +9 -3
  2. package/README.md +167 -32
  3. package/assets/icones/catalogue.json +199 -4
  4. package/assets/icones/sprite.svg +14 -0
  5. package/assets/logos/starter-bank-clair.svg +1 -0
  6. package/assets/logos/starter-bank-monochrome.svg +1 -0
  7. package/assets/logos/starter-bank-sombre.svg +1 -0
  8. package/fesm2022/starterlib-ui-arbre.mjs +25 -25
  9. package/fesm2022/starterlib-ui-arbre.mjs.map +1 -1
  10. package/fesm2022/starterlib-ui-donnees.mjs +760 -274
  11. package/fesm2022/starterlib-ui-donnees.mjs.map +1 -1
  12. package/fesm2022/starterlib-ui-etats.mjs +82 -82
  13. package/fesm2022/starterlib-ui-etats.mjs.map +1 -1
  14. package/fesm2022/starterlib-ui-force.mjs +18 -0
  15. package/fesm2022/starterlib-ui-force.mjs.map +1 -0
  16. package/fesm2022/starterlib-ui-formulaires.mjs +580 -198
  17. package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
  18. package/fesm2022/starterlib-ui-graphiques.mjs +934 -0
  19. package/fesm2022/starterlib-ui-graphiques.mjs.map +1 -0
  20. package/fesm2022/starterlib-ui-indicateurs.mjs +59 -59
  21. package/fesm2022/starterlib-ui-indicateurs.mjs.map +1 -1
  22. package/fesm2022/starterlib-ui-libelles-en.mjs +11 -0
  23. package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -1
  24. package/fesm2022/starterlib-ui-listes.mjs +727 -315
  25. package/fesm2022/starterlib-ui-listes.mjs.map +1 -1
  26. package/fesm2022/starterlib-ui-messagerie.mjs +45 -45
  27. package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -1
  28. package/fesm2022/starterlib-ui-mise-en-page.mjs +46 -46
  29. package/fesm2022/starterlib-ui-mise-en-page.mjs.map +1 -1
  30. package/fesm2022/starterlib-ui-navigation.mjs +200 -42
  31. package/fesm2022/starterlib-ui-navigation.mjs.map +1 -1
  32. package/fesm2022/starterlib-ui-onglets.mjs +20 -20
  33. package/fesm2022/starterlib-ui-onglets.mjs.map +1 -1
  34. package/fesm2022/starterlib-ui-parcours.mjs +631 -168
  35. package/fesm2022/starterlib-ui-parcours.mjs.map +1 -1
  36. package/fesm2022/starterlib-ui-qr.mjs +11 -11
  37. package/fesm2022/starterlib-ui-qr.mjs.map +1 -1
  38. package/fesm2022/starterlib-ui-saisie.mjs +617 -511
  39. package/fesm2022/starterlib-ui-saisie.mjs.map +1 -1
  40. package/fesm2022/starterlib-ui-selection.mjs +64 -64
  41. package/fesm2022/starterlib-ui-selection.mjs.map +1 -1
  42. package/fesm2022/starterlib-ui-sens.mjs +3 -3
  43. package/fesm2022/starterlib-ui-surfaces.mjs +246 -242
  44. package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
  45. package/fesm2022/starterlib-ui-virtuel.mjs +272 -0
  46. package/fesm2022/starterlib-ui-virtuel.mjs.map +1 -0
  47. package/fesm2022/starterlib-ui.mjs +1142 -898
  48. package/fesm2022/starterlib-ui.mjs.map +1 -1
  49. package/package.json +31 -3
  50. package/types/starterlib-ui-donnees.d.ts +231 -5
  51. package/types/starterlib-ui-force.d.ts +19 -0
  52. package/types/starterlib-ui-formulaires.d.ts +132 -1
  53. package/types/starterlib-ui-graphiques.d.ts +421 -0
  54. package/types/starterlib-ui-indicateurs.d.ts +11 -4
  55. package/types/starterlib-ui-listes.d.ts +230 -13
  56. package/types/starterlib-ui-navigation.d.ts +82 -1
  57. package/types/starterlib-ui-parcours.d.ts +265 -5
  58. package/types/starterlib-ui-saisie.d.ts +91 -10
  59. package/types/starterlib-ui-selection.d.ts +1 -1
  60. package/types/starterlib-ui-surfaces.d.ts +10 -9
  61. package/types/starterlib-ui-virtuel.d.ts +103 -0
  62. package/types/starterlib-ui.d.ts +175 -24
  63. package/virtuel/README.md +46 -0
@@ -1,8 +1,9 @@
1
1
  import { ApiError, EtatDeCeremonie, LectureDeCeremonie, MoyenDeCeremonie, TonSemantique } from "@starterlib/util";
2
2
  import * as i0 from "@angular/core";
3
- import { InjectionToken, Signal } from "@angular/core";
4
- import { AnnonceLocale, Icone, NiveauDeTitre } from "@starterlib/ui";
3
+ import { InjectionToken, Provider, Signal } from "@angular/core";
4
+ import { AnnonceLocale, CatalogueDuPointDEntree, Icone, NiveauDeTitre, NomDIcone } from "@starterlib/ui";
5
5
  import { DispositionDActions, ErreurAffichable } from "@starterlib/ui/saisie";
6
+ import { TonDeStatut } from "@starterlib/ui/indicateurs";
6
7
  /**
7
8
  * Un refus du serveur, en banniere, au-dessus de ce qu'il refuse (lot 261) : un virement (plafond,
8
9
  * solde), une demande KYC, une connexion. Le patron que chaque formulaire recopiait (`id-refus`).
@@ -64,7 +65,7 @@ export declare class StRefusal {
64
65
  private readonly decompte;
65
66
  protected readonly variante: import("@angular/core").Signal<import("@starterlib/util").VarianteDErreur>;
66
67
  private readonly rejouableSelonLaTable;
67
- protected readonly ton: import("@angular/core").Signal<"avertissement" | "danger">;
68
+ protected readonly ton: import("@angular/core").Signal<"avertissement" | "erreur">;
68
69
  protected readonly titreLu: import("@angular/core").Signal<string | null>;
69
70
  /** Les secondes d'un 429, quand le serveur les donne. */
70
71
  protected readonly attente: import("@angular/core").Signal<number | null>;
@@ -164,7 +165,7 @@ export declare class StOutcome {
164
165
  readonly niveauDuTitre: import("@angular/core").InputSignal<NiveauDeTitre>;
165
166
  readonly disposition: import("@angular/core").InputSignal<DispositionDIssue>;
166
167
  protected readonly ton: import("@angular/core").Signal<TonSemantique>;
167
- protected readonly icone: import("@angular/core").Signal<"horloge" | "badge-coche" | "bouclier-coche" | "cercle-alerte" | "cercle-coche" | "cercle-croix" | "cercle-info" | "cercle-question" | "cloche" | "epingle" | "etoile" | "grille" | "marque-page" | "octogone-alerte" | "triangle-alerte">;
168
+ protected readonly icone: import("@angular/core").Signal<"essai" | "horloge" | "badge-coche" | "bouclier-coche" | "cercle-alerte" | "cercle-coche" | "cercle-croix" | "cercle-info" | "cercle-question" | "cloche" | "epingle" | "etoile" | "grille" | "marque-page" | "octogone-alerte" | "triangle-alerte">;
168
169
  /** Le mot de l'issue, lu avant le titre. */
169
170
  protected readonly mot: import("@angular/core").Signal<string>;
170
171
  protected readonly etiquetteDeReferenceLue: import("@angular/core").Signal<string>;
@@ -967,7 +968,7 @@ export declare class StRecoveryCodes {
967
968
  protected readonly tousLesCodes: import("@angular/core").Signal<string>;
968
969
  protected readonly raisonDeLAttente: import("@angular/core").Signal<string>;
969
970
  /** Le compteur alerte quand il ne reste presque plus de codes. */
970
- protected readonly tonDuCompteur: import("@angular/core").Signal<"avertissement" | "danger" | "neutre">;
971
+ protected readonly tonDuCompteur: import("@angular/core").Signal<"avertissement" | "neutre" | "danger">;
971
972
  constructor();
972
973
  protected copier(): void;
973
974
  /** Garde du double clic : `chargement` avale deja les clics du bouton, la methode aussi. */
@@ -1032,5 +1033,264 @@ export declare class StRecoveryCodes {
1032
1033
  "regeneration": "regeneration";
1033
1034
  }, never, never, true, never>;
1034
1035
  }
1036
+ /**
1037
+ * La demande de modification d'une valeur gouvernee (P08-13) : ce que le modele d'un formulaire
1038
+ * Signal Forms porte, la valeur proposee et son motif.
1039
+ *
1040
+ * ```ts
1041
+ * readonly demande = form(signal<DemandeDeModification<bigint | null>>({ valeur: null, motif: '' }),
1042
+ * (chemin) => {
1043
+ * required(chemin.valeur);
1044
+ * validate(chemin.valeur, ({ value }) => erreurHorsPlage(value(), { min: 10_000n, max: 500_000n }));
1045
+ * required(chemin.motif);
1046
+ * validate(chemin.motif, ({ value }) => erreurDeMotif(value(), 20));
1047
+ * });
1048
+ * ```
1049
+ */
1050
+ export interface DemandeDeModification<TValeur> {
1051
+ readonly valeur: TValeur;
1052
+ readonly motif: string;
1053
+ }
1054
+ /**
1055
+ * Le cycle de vie d'une demande, calcule par le SERVEUR, jamais par le composant : `brouillon`
1056
+ * (saisie), `previsualise` (l'effet calcule est montre), `attente-seconde-validation`,
1057
+ * `seconde-validation-suspendue` (la regle a deux personnes ne s'applique pas, l'effectif le dit),
1058
+ * `programme` (effet differe, a sa date), `publie`, `refuse`.
1059
+ */
1060
+ export type EtatDeDemande = 'brouillon' | 'previsualise' | 'attente-seconde-validation' | 'seconde-validation-suspendue' | 'programme' | 'publie' | 'refuse';
1061
+ /** Le sens de l'effet, fourni par le serveur : un assouplissement attend, un resserrement non. */
1062
+ export type SensDeDemande = 'assouplissement' | 'resserrement';
1063
+ /** L'effet d'une demande, fourni : immediat, ou differe a sa date (ISO 8601, avec son decalage). */
1064
+ export type EffetDeDemande = {
1065
+ readonly nature: 'immediat';
1066
+ readonly sens: SensDeDemande;
1067
+ } | {
1068
+ readonly nature: 'differe';
1069
+ readonly sens: SensDeDemande;
1070
+ readonly date: string;
1071
+ };
1072
+ /** La plage de surete, telle que l'application l'ecrit (« 100,00 € », « 5 000,00 € »). */
1073
+ export interface PlageDeDemande {
1074
+ readonly min: string;
1075
+ readonly max: string;
1076
+ }
1077
+ /** Un refus du serveur : l'erreur telle que le noyau la rend, et le message que l'application en tire. */
1078
+ export interface RefusDeDemande {
1079
+ readonly erreur: ApiError;
1080
+ readonly message: string;
1081
+ /** Un code que l'application ne connait pas : la trace se montre (`st-refusal`). */
1082
+ readonly codeInconnu?: boolean;
1083
+ }
1084
+ /** Une valeur hors de sa plage : la borne franchie, que le message cite. */
1085
+ export type ErreurDePlage<TValeur extends number | bigint> = {
1086
+ readonly kind: 'min';
1087
+ readonly min: TValeur;
1088
+ } | {
1089
+ readonly kind: 'max';
1090
+ readonly max: TValeur;
1091
+ };
1092
+ /** Les bornes d'une valeur gouvernee, livrees par le serveur ; l'une ou l'autre peut manquer. */
1093
+ export interface BornesDeValeur<TValeur extends number | bigint> {
1094
+ readonly min?: TValeur;
1095
+ readonly max?: TValeur;
1096
+ }
1097
+ /**
1098
+ * La borne qu'une valeur franchit, ou `null` : pour un nombre comme pour un montant en unites
1099
+ * mineures (`bigint`), dont `st-amount-field` dit la borne en devise (« au plus 5 000,00 € »).
1100
+ * Une valeur absente n'en franchit aucune : `required()` la refuse.
1101
+ *
1102
+ * ```ts
1103
+ * validate(chemin.valeur, ({ value }) => erreurHorsPlage(value(), { min: 10_000n, max: 500_000n }));
1104
+ * ```
1105
+ *
1106
+ * Pour un nombre saisi par `st-number-field`, `min()` et `max()` de Signal Forms font de meme ET
1107
+ * posent les bornes du champ, ou ses pas s'arretent.
1108
+ */
1109
+ export declare function erreurHorsPlage<TValeur extends number | bigint>(valeur: TValeur | null, bornes: BornesDeValeur<TValeur>): ErreurDePlage<TValeur> | null;
1110
+ /** La longueur minimale d'un motif quand l'application n'en donne pas : de quoi dire pourquoi. */
1111
+ export declare const MOTIF_MINIMUM = 10;
1112
+ /**
1113
+ * L'erreur du motif d'une demande, ou `null` : obligatoire, et `minimum` caracteres au moins SANS
1114
+ * les blancs de bord (dix espaces ne disent rien). Les genres sont ceux du socle (`required`,
1115
+ * `minLength`) : le message est celui de tous les champs.
1116
+ *
1117
+ * ```ts
1118
+ * required(chemin.motif);
1119
+ * validate(chemin.motif, ({ value }) => erreurDeMotif(value(), 20));
1120
+ * ```
1121
+ */
1122
+ export declare function erreurDeMotif(valeur: string, minimum?: number): {
1123
+ readonly kind: 'required';
1124
+ } | {
1125
+ readonly kind: 'minLength';
1126
+ readonly minLength: number;
1127
+ } | null;
1128
+ /**
1129
+ * Les libelles de `@starterlib/ui/parcours` (P08-13) : le catalogue par point d'entree (AD-10,
1130
+ * D154), comme ceux des donnees et des graphiques. La langue suit celle du dictionnaire du tronc ;
1131
+ * les patrons plus anciens du point d'entree lisent encore le dictionnaire du tronc.
1132
+ */
1133
+ export interface LibellesParcours {
1134
+ /** Le mot de chaque etat d'une demande (`st-change-request`), sur sa pastille. */
1135
+ readonly etatsDeDemande: Readonly<Record<EtatDeDemande, string>>;
1136
+ /** Le mot de chaque sens d'effet. */
1137
+ readonly sensDeDemande: Readonly<Record<SensDeDemande, string>>;
1138
+ readonly valeurActuelle: string;
1139
+ readonly plageAutorisee: string;
1140
+ /** La plage de surete, ses bornes deja ecrites par l'application (« de 100,00 € a 5 000,00 € »). */
1141
+ readonly plage: (min: string, max: string) => string;
1142
+ readonly effet: string;
1143
+ readonly effetImmediat: string;
1144
+ readonly effetDiffere: string;
1145
+ readonly priseDEffet: string;
1146
+ /** La legende du groupe de la valeur proposee et du motif. */
1147
+ readonly proposition: string;
1148
+ /** Le titre de l'emplacement ou l'application montre l'effet calcule par le serveur. */
1149
+ readonly previsualisation: string;
1150
+ /** Pourquoi la saisie est figee apres une previsualisation ou un refus. */
1151
+ readonly rouvrirPourModifier: string;
1152
+ /** Pourquoi la saisie est figee une fois la demande envoyee. */
1153
+ readonly demandeEnvoyee: string;
1154
+ readonly attenteDeSecondeValidation: string;
1155
+ readonly secondeValidationSuspendue: string;
1156
+ readonly previsualiser: string;
1157
+ readonly soumettre: string;
1158
+ readonly modifier: string;
1159
+ readonly annuler: string;
1160
+ /** L'annonce d'un changement d'etat (« Demande : programmee »). */
1161
+ readonly etatDeLaDemande: (etat: string) => string;
1162
+ }
1163
+ export declare const LIBELLES_PARCOURS_FR: LibellesParcours;
1164
+ export declare const LIBELLES_PARCOURS_EN: LibellesParcours;
1165
+ /**
1166
+ * Les catalogues du parcours par langue (sous-etiquette primaire : `fr`, `en`). Une application qui
1167
+ * ajoute une langue au dictionnaire du tronc ajoute la sienne ici, par
1168
+ * `fournirLibellesParcours({ de: ... })`.
1169
+ */
1170
+ export declare const ST_LIBELLES_PARCOURS: InjectionToken<Readonly<Record<string, LibellesParcours>>>;
1171
+ /** Ajoute (ou remplace) des catalogues du parcours, par langue. */
1172
+ export declare function fournirLibellesParcours(catalogues: Readonly<Record<string, LibellesParcours>>): Provider;
1173
+ /**
1174
+ * Le catalogue de la langue du dictionnaire du tronc ; le francais quand la langue n'en a pas, un
1175
+ * repli signale en developpement (D-29). A appeler dans un contexte d'injection.
1176
+ */
1177
+ export declare function libellesDuParcours(): Signal<LibellesParcours>;
1178
+ /**
1179
+ * Le catalogue du parcours ET la langue de son repli (`catalogueDuPointDEntree`) : `lang` de ce qu'il
1180
+ * ecrit seul (D-29). A appeler dans un contexte d'injection.
1181
+ */
1182
+ export declare function catalogueDuParcours(): Signal<CatalogueDuPointDEntree<LibellesParcours>>;
1183
+ /**
1184
+ * Demander la modification d'une valeur GOUVERNEE (P08-13) : un plafond, un seuil, une duree. Un
1185
+ * seul patron, au lieu d'ecrans qui reinventeraient la plage de surete, le delai, le motif et la
1186
+ * previsualisation.
1187
+ *
1188
+ * ```html
1189
+ * <form [stForm]="demande" [envoyerAvec]="envoyer">
1190
+ * <st-change-request titre="Plafond de retrait quotidien" [etat]="etat()" [effet]="effet()"
1191
+ * [plage]="{ min: '100,00 €', max: '5 000,00 €' }" [refus]="refus()"
1192
+ * (modification)="etat.set('brouillon')" (annulation)="annuler()">
1193
+ * <st-money actuelle [valeur]="plafond()" />
1194
+ * <st-amount-field champ libelle="Nouveau plafond" devise="EUR" [formField]="demande.valeur" />
1195
+ * <st-textarea motif libelle="Motif" [formField]="demande.motif" />
1196
+ * <div previsualisation>...</div>
1197
+ * </st-change-request>
1198
+ * </form>
1199
+ * ```
1200
+ *
1201
+ * - **Le serveur juge seul** : il livre les bornes, le sens et la date de l'effet, et l'etat (sept,
1202
+ * chacun en mot et en forme) ; le composant ne calcule RIEN de metier. La regle a deux personnes
1203
+ * peut etre suspendue : le composant le montre, il ne le decide pas.
1204
+ * - **Un formulaire Signal Forms** de l'application (`form[stForm]`), ou les champs sont PROJETES :
1205
+ * la valeur proposee (`[champ]`) et le motif (`[motif]`), lies par `[formField]`. Les regles du
1206
+ * schema rendent la plage infranchissable (`min()` et `max()`, ou `erreurHorsPlage` pour un
1207
+ * montant ; le message cite la borne) et le motif obligatoire (`erreurDeMotif`). Le recapitulatif
1208
+ * d'erreurs est le sien ; un envoi invalide ne part pas.
1209
+ * - **Une action principale** qui ENVOIE le formulaire : « Previsualiser » au brouillon,
1210
+ * « Soumettre la demande » une fois l'effet montre ; `envoyerAvec` fait l'appel selon l'etat. Le
1211
+ * double clic est avale (`chargement`), la cle d'idempotence posee par l'intercepteur du socle.
1212
+ * - Apres la previsualisation, la saisie se fige (« Modifier la demande » la rouvre : `modification`)
1213
+ * ; envoyee, elle ne change plus, et « Annuler la demande » reste (`annulation`).
1214
+ * - Un changement d'etat s'annonce ; un refus prend le focus (`st-refusal`).
1215
+ */
1216
+ export declare class StChangeRequest {
1217
+ protected readonly catalogue: import("@angular/core").Signal<import("@starterlib/ui").CatalogueDuPointDEntree<import("@starterlib/ui/parcours").LibellesParcours>>;
1218
+ protected readonly annonce: AnnonceLocale;
1219
+ /** L'envoi du formulaire qui l'entoure (`form[stForm]`) : son recapitulatif et son chargement. */
1220
+ protected readonly envoi: import("@starterlib/ui/saisie").EtatDEnvoi | null;
1221
+ /** Ce qui se modifie (« Plafond de retrait quotidien »), deja traduit. */
1222
+ readonly titre: import("@angular/core").InputSignal<string>;
1223
+ /** 2 en tete de page, 3 ou 4 dans une section. */
1224
+ readonly niveauDuTitre: import("@angular/core").InputSignal<2 | 3 | 4>;
1225
+ /** L'etat calcule par le serveur. */
1226
+ readonly etat: import("@angular/core").InputSignal<EtatDeDemande>;
1227
+ /** Le sens et la nature de l'effet, fournis par le serveur. */
1228
+ readonly effet: import("@angular/core").InputSignal<EffetDeDemande | null>;
1229
+ /** La plage de surete, ses bornes ecrites par l'application. */
1230
+ readonly plage: import("@angular/core").InputSignal<PlageDeDemande | null>;
1231
+ /** Le refus du serveur, montre a l'etat `refuse`. */
1232
+ readonly refus: import("@angular/core").InputSignal<RefusDeDemande | null>;
1233
+ /** « Modifier la demande » : apres une previsualisation ou un refus, la saisie se rouvre. */
1234
+ readonly modification: import("@angular/core").OutputEmitterRef<void>;
1235
+ /** « Annuler la demande » : une demande envoyee, encore en attente ou programmee. */
1236
+ readonly annulation: import("@angular/core").OutputEmitterRef<void>;
1237
+ protected readonly identifiants: {
1238
+ readonly titre: `${string}-titre`;
1239
+ readonly gel: `${string}-gel`;
1240
+ readonly previsualisation: `${string}-previsualisation`;
1241
+ };
1242
+ protected readonly pastille: import("@angular/core").Signal<{
1243
+ readonly ton: TonDeStatut;
1244
+ readonly icone: NomDIcone;
1245
+ }>;
1246
+ protected readonly libelleDEtat: import("@angular/core").Signal<string>;
1247
+ /** La saisie se fige des que l'effet est montre : une valeur changee ne serait plus celle montree. */
1248
+ protected readonly fige: import("@angular/core").Signal<boolean>;
1249
+ protected readonly envoyee: import("@angular/core").Signal<boolean>;
1250
+ protected readonly rouvrable: import("@angular/core").Signal<boolean>;
1251
+ /** Pourquoi la saisie est figee : dite en aide du groupe, jamais tue. */
1252
+ protected readonly raisonDuGel: import("@angular/core").Signal<string | null>;
1253
+ protected readonly explication: import("@angular/core").Signal<string | null>;
1254
+ protected readonly enCours: import("@angular/core").Signal<boolean>;
1255
+ /** Le recapitulatif sous le titre : un niveau de plus, 4 au plus. */
1256
+ protected readonly niveauDuRecapitulatif: import("@angular/core").Signal<3 | 4>;
1257
+ constructor();
1258
+ static ɵfac: i0.ɵɵFactoryDeclaration<StChangeRequest, never>;
1259
+ static ɵcmp: i0.ɵɵComponentDeclaration<StChangeRequest, "st-change-request", never, {
1260
+ "titre": {
1261
+ "alias": "titre";
1262
+ "required": true;
1263
+ "isSignal": true;
1264
+ };
1265
+ "niveauDuTitre": {
1266
+ "alias": "niveauDuTitre";
1267
+ "required": false;
1268
+ "isSignal": true;
1269
+ };
1270
+ "etat": {
1271
+ "alias": "etat";
1272
+ "required": true;
1273
+ "isSignal": true;
1274
+ };
1275
+ "effet": {
1276
+ "alias": "effet";
1277
+ "required": false;
1278
+ "isSignal": true;
1279
+ };
1280
+ "plage": {
1281
+ "alias": "plage";
1282
+ "required": false;
1283
+ "isSignal": true;
1284
+ };
1285
+ "refus": {
1286
+ "alias": "refus";
1287
+ "required": false;
1288
+ "isSignal": true;
1289
+ };
1290
+ }, {
1291
+ "modification": "modification";
1292
+ "annulation": "annulation";
1293
+ }, never, ["[actuelle]", "[champ]", "[motif]", "[previsualisation]"], true, never>;
1294
+ }
1035
1295
 
1036
1296
  export {};
@@ -2,7 +2,7 @@ import { Adresse, DateIso, DescriptionDeFichier, FormatDAdresse, HeureIso, Natur
2
2
  import { DisabledReason, FormCheckboxControl, FormValueControl, ValidationError, WithOptionalFieldTree } from "@angular/forms/signals";
3
3
  import { AnnonceLocale, Icone, LibellesUi } from "@starterlib/ui";
4
4
  import * as i0 from "@angular/core";
5
- import { InjectionToken, Signal } from "@angular/core";
5
+ import { InjectionToken, Provider, Signal } from "@angular/core";
6
6
  import { sansCommandesDeDirection } from "@starterlib/util";
7
7
  import { EtiquetteDeGroupe } from "@starterlib/ui/indicateurs";
8
8
  /**
@@ -81,6 +81,8 @@ export declare function messageDErreur(erreur: ErreurAffichable, libelles: Libel
81
81
  export declare function libelleDePartie(libelles: LibellesUi, partie: string, nature?: string): string;
82
82
  /** Le motif a taper dans la langue courante : `jj/mm/aaaa`. */
83
83
  export declare function motifLocal(libelles: LibellesUi, locale: string): string;
84
+ /** Le motif d'un mois dans la langue courante : `mm/aaaa` (`st-month-field`, lot 267). */
85
+ export declare function motifDuMoisLocal(libelles: LibellesUi, locale: string): string;
84
86
  /** Le motif d'une heure dans la langue courante : `hh:mm`, `hh:mm AM/PM`. */
85
87
  export declare function motifDHeureLocal(libelles: LibellesUi, locale: string, secondes?: boolean): string;
86
88
  /**
@@ -838,7 +840,7 @@ export declare class StInput extends ControleDeSaisieCompte {
838
840
  /** Clavier virtuel adapte : `numeric`, `decimal`, `email`… */
839
841
  readonly inputmode: import("@angular/core").InputSignal<ModeDeSaisie | null>;
840
842
  /** Glyphe decoratif de tete, dans le cadre (l'etiquette porte le sens). */
841
- readonly icone: import("@angular/core").InputSignal<"iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau-jauge" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "wifi" | "wifi-barre" | null>;
843
+ readonly icone: import("@angular/core").InputSignal<"iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "alimentation" | "appareil-photo" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "balance" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cible" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "comparer" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "drapeau" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "essai" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lecture" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "passerelle" | "pause" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau" | "reseau-jauge" | "robot" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "visage" | "wifi" | "wifi-barre" | null>;
842
844
  /**
843
845
  * `reference` : IBAN, BIC, reference structuree — chasse fixe, chiffres a zero barre
844
846
  * (`--st-chiffres-references`), pour qu'un 0 ne se lise pas O ; de gauche a droite en RTL.
@@ -2566,6 +2568,12 @@ export declare class StErrorSummary {
2566
2568
  /** Unique par instance : deux recapitulatifs sur une page partageraient leur titre. */
2567
2569
  protected readonly identifiantDuTitre: string;
2568
2570
  protected readonly lignes: import("@angular/core").Signal<readonly LigneDErreur[]>;
2571
+ /**
2572
+ * « Erreur : » devant chaque ligne, sous le reglage `--st-prefixe-de-ton: visible` (P08-03) : la
2573
+ * faute se lit au mot, sans la couleur. Sans le reglage, ni affiche ni lu (`display: none`) : le
2574
+ * titre dit deja les erreurs, et chaque ligne nomme son champ.
2575
+ */
2576
+ protected readonly prefixe: import("@angular/core").Signal<string>;
2569
2577
  protected readonly titreLu: import("@angular/core").Signal<string>;
2570
2578
  constructor();
2571
2579
  /** Amene le focus sur le recapitulatif (s'il est visible). */
@@ -2599,6 +2607,42 @@ export declare class StErrorSummary {
2599
2607
  };
2600
2608
  }, {}, never, ["[stEtiquette]"], true, never>;
2601
2609
  }
2610
+ /**
2611
+ * La jauge de force du mot de passe (ADR web 0011) : un ESTIMATEUR, sans dependance, que l'application
2612
+ * fournit par jeton. Le socle n'embarque aucune bibliotheque dans ce point d'entree : l'adaptateur par
2613
+ * defaut (`@starterlib/ui/force`, zxcvbn-ts et ses dictionnaires) se charge par un import DYNAMIQUE de
2614
+ * l'application, que son outil de construction met dans un morceau a part, telecharge a la premiere
2615
+ * frappe d'un champ qui porte la jauge, jamais au premier ecran.
2616
+ *
2617
+ * ```ts
2618
+ * providers: [
2619
+ * fournirEstimateurDeForce(() =>
2620
+ * import('@starterlib/ui/force').then((m) => m.chargerEstimateurZxcvbn(['fr', 'en'])),
2621
+ * ),
2622
+ * ],
2623
+ * ```
2624
+ *
2625
+ * L'estimation tourne dans le navigateur : la valeur ne quitte jamais le champ (aucun reseau, aucun
2626
+ * stockage, aucun journal). Elle ne decide rien : le serveur reste seul juge (politique, mots de passe
2627
+ * divulgues), et la jauge reste au plus bas tant qu'une regle declaree n'est pas respectee.
2628
+ */
2629
+ export interface EstimateurDeForce {
2630
+ /** Un score de 0 (devine en un instant) a 4 (tres robuste), a la maniere de zxcvbn. */
2631
+ estimer(motDePasse: string): number;
2632
+ }
2633
+ /** Charge l'estimateur a la premiere frappe ; appele une fois par champ au plus. */
2634
+ export type ChargeurDEstimateurDeForce = () => Promise<EstimateurDeForce>;
2635
+ export declare const ST_ESTIMATEUR_DE_FORCE: InjectionToken<ChargeurDEstimateurDeForce>;
2636
+ /** Le fournisseur de l'estimateur : un chargeur, pour que la bibliotheque parte dans un morceau a part. */
2637
+ export declare function fournirEstimateurDeForce(chargeur: ChargeurDEstimateurDeForce): Provider;
2638
+ /** Les niveaux de la jauge : 1 (le plus bas) a 3 ; 0 tant qu'il n'y a rien a estimer. */
2639
+ export type NiveauDeForce = 0 | 1 | 2 | 3;
2640
+ /**
2641
+ * Le niveau de la jauge pour un score de 0 a 4, PRUDENT : 0 a 2 donnent le plus bas, 3 le niveau
2642
+ * moyen, 4 seul le plus haut. `Motdepasse1!`, que le refus d'origine citait, vaut 1 avec les
2643
+ * dictionnaires francais et anglais (mesure consignee dans l'ADR web 0011) : niveau 1.
2644
+ */
2645
+ export declare function niveauDuScore(score: number): 1 | 2 | 3;
2602
2646
  /** `connexion` : un mot de passe existant. `creation` : un nouveau. */
2603
2647
  export type UsageDuMotDePasse = 'connexion' | 'creation';
2604
2648
  /**
@@ -2645,11 +2689,15 @@ interface RegleRendue {
2645
2689
  * jamais la couleur seule) et annonce une fois (WCAG 4.1.3). Le champ, lui, ne bouge pas ; a la
2646
2690
  * creation, la ligne du message est reservee entre le champ et les regles, qui ne sautent pas.
2647
2691
  *
2648
- * ⚠️ **Aucun indicateur de « force »**, et c'est un refus. Une estimation faite
2649
- * dans le navigateur donne « fort » a `Motdepasse1!` : elle rassure a tort. Les
2650
- * regles sont affichees AVANT la saisie (UX-10), en liste, a la creation seulement, et
2651
- * chacune se coche quand la saisie la respecte ; c'est le serveur qui verifie — y compris
2652
- * contre les mots de passe deja divulgues, qu'aucune regle locale ne voit.
2692
+ * ⚠️ **La jauge de force est une OPTION, en plus des regles et du serveur, jamais a leur place**
2693
+ * (ADR web 0011, qui leve le refus d'origine : une estimation naive donne « fort » a
2694
+ * `Motdepasse1!` et rassure a tort). Les regles sont affichees AVANT la saisie (UX-10), en liste, a
2695
+ * la creation seulement, et chacune se coche quand la saisie la respecte ; c'est le serveur qui
2696
+ * verifie — y compris contre les mots de passe deja divulgues, qu'aucune regle locale ne voit. Avec
2697
+ * `jauge`, un estimateur fourni par l'application (`fournirEstimateurDeForce`, charge a la premiere
2698
+ * frappe) donne un niveau sur trois, dit par des segments ET un mot ; il reste au plus bas tant
2699
+ * qu'une regle a test n'est pas respectee, se recalcule apres une pause de frappe, ne s'annonce qu'a
2700
+ * un changement, et n'a aucun etat « reussi ». Sans `jauge`, le rendu est celui d'avant.
2653
2701
  *
2654
2702
  * `maxLength` du schema montre un compteur (« 12 caracteres restants ») en complement.
2655
2703
  */
@@ -2660,6 +2708,8 @@ export declare class StPasswordField extends ControleDeSaisie {
2660
2708
  private readonly racineDesParties;
2661
2709
  protected readonly idRegles: string;
2662
2710
  protected readonly idMajuscules: string;
2711
+ protected readonly idJauge: string;
2712
+ private readonly chargeurDeForce;
2663
2713
  readonly usage: import("@angular/core").InputSignal<UsageDuMotDePasse>;
2664
2714
  /**
2665
2715
  * Regles de creation, montrees sous le champ en `usage="creation"` seulement : une phrase
@@ -2668,6 +2718,25 @@ export declare class StPasswordField extends ControleDeSaisie {
2668
2718
  readonly regles: import("@angular/core").InputSignal<readonly (string | RegleDeMotDePasse)[]>;
2669
2719
  /** Titre de la liste des regles ; par defaut « Exigences du mot de passe : ». */
2670
2720
  readonly titreDesRegles: import("@angular/core").InputSignal<string | null>;
2721
+ /**
2722
+ * La jauge de force (ADR web 0011), en `usage="creation"` seulement, avec un estimateur fourni par
2723
+ * `fournirEstimateurDeForce`. Sans elle, le rendu est celui d'avant, octet pour octet.
2724
+ */
2725
+ readonly jauge: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
2726
+ /** Les trois mots des niveaux, du plus bas au plus haut ; par defaut ceux du dictionnaire du socle. */
2727
+ readonly motsDeForce: import("@angular/core").InputSignal<readonly [string, string, string] | null>;
2728
+ protected readonly jaugeActive: import("@angular/core").Signal<boolean>;
2729
+ protected readonly niveauDeForce: import("@angular/core").WritableSignal<NiveauDeForce>;
2730
+ protected readonly segmentsDeForce: readonly [1, 2, 3];
2731
+ /** Le mot du niveau courant, vide tant qu'il n'y a rien a estimer. */
2732
+ protected readonly motDeForce: import("@angular/core").Signal<string>;
2733
+ /**
2734
+ * Une regle A TEST non respectee plafonne la jauge au plus bas. Une regle sans test ne se coche
2735
+ * jamais en local : elle ne plafonne rien, le serveur la juge.
2736
+ */
2737
+ private readonly reglePendante;
2738
+ private estimateur;
2739
+ private minuterieDeForce;
2671
2740
  protected readonly revele: import("@angular/core").WritableSignal<boolean>;
2672
2741
  /** La touche Verr. Maj est active pendant la frappe dans le champ. */
2673
2742
  protected readonly majusculesVerrouillees: import("@angular/core").WritableSignal<boolean>;
@@ -2679,6 +2748,8 @@ export declare class StPasswordField extends ControleDeSaisie {
2679
2748
  /** Les regles et l'avertissement Verr. Maj decrivent le champ : lus au focus, apres l'aide. */
2680
2749
  protected readonly descriptionsDuControle: import("@angular/core").Signal<string[]>;
2681
2750
  constructor();
2751
+ /** Estime `valeur` (l'estimateur se charge a la premiere fois), pose le niveau, l'annonce s'il change. */
2752
+ private estimerLaForce;
2682
2753
  protected basculer(): void;
2683
2754
  protected surSaisie(evenement: Event): void;
2684
2755
  /** Lit Verr. Maj a chaque touche : l'etat se voit des la premiere frappe, et s'annonce. */
@@ -2702,6 +2773,16 @@ export declare class StPasswordField extends ControleDeSaisie {
2702
2773
  "required": false;
2703
2774
  "isSignal": true;
2704
2775
  };
2776
+ "jauge": {
2777
+ "alias": "jauge";
2778
+ "required": false;
2779
+ "isSignal": true;
2780
+ };
2781
+ "motsDeForce": {
2782
+ "alias": "motsDeForce";
2783
+ "required": false;
2784
+ "isSignal": true;
2785
+ };
2705
2786
  }, {}, never, ["[stMeta]", "[stAide]", "[stIndication]"], true, never>;
2706
2787
  }
2707
2788
  /**
@@ -3002,7 +3083,7 @@ export declare class StSelect extends ControleDeSaisie {
3002
3083
  /** WCAG 1.3.5 : `country`, `sex`, `honorific-prefix`… */
3003
3084
  readonly autocomplete: import("@angular/core").InputSignal<TypeDAutocompletion | null>;
3004
3085
  /** Glyphe decoratif de tete, dans le cadre (l'etiquette porte le sens). */
3005
- readonly icone: import("@angular/core").InputSignal<"iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau-jauge" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "wifi" | "wifi-barre" | null>;
3086
+ readonly icone: import("@angular/core").InputSignal<"iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "alimentation" | "appareil-photo" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "balance" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cible" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "comparer" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "drapeau" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "essai" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lecture" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "passerelle" | "pause" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau" | "reseau-jauge" | "robot" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "visage" | "wifi" | "wifi-barre" | null>;
3006
3087
  /** Le style de l'etiquette (voir `st-form-field`). */
3007
3088
  readonly presentation: import("@angular/core").InputSignal<PresentationDeLibelle>;
3008
3089
  /**
@@ -3372,7 +3453,7 @@ export declare class StFileUpload extends ContratDeChamp implements FormValueCon
3372
3453
  cle: string;
3373
3454
  nom: string;
3374
3455
  etape: "en-cours" | "depose" | "refuse" | null;
3375
- icone: "iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau-jauge" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "wifi" | "wifi-barre";
3456
+ icone: "iban" | "code" | "devise" | "fichier" | "message" | "menu" | "accessibilite" | "alimentation" | "appareil-photo" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "balance" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cible" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "comparer" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "drapeau" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "essai" | "etoile" | "euro" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "imprimer" | "interdit" | "jalons" | "jauge" | "lecture" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu-ouvert" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "passerelle" | "pause" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau" | "reseau-jauge" | "robot" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "visage" | "wifi" | "wifi-barre";
3376
3457
  statut: string | null;
3377
3458
  morceauxDuStatut: readonly MorceauDePhrase[] | null;
3378
3459
  detail: string | null;
@@ -3825,7 +3906,7 @@ export type DispositionDActions = 'collee' | 'pied';
3825
3906
  * …
3826
3907
  * <st-form-actions>
3827
3908
  * <button debut stButton type="button">Annuler</button>
3828
- * <st-icon aide nom="cercle-alerte-plein" ton="danger" />
3909
+ * <st-icon aide nom="cercle-alerte-plein" ton="erreur" />
3829
3910
  * <span aide id="aide-envoi">3 erreurs a corriger</span>
3830
3911
  * <button stButton type="button">Enregistrer le brouillon</button>
3831
3912
  * <button stButton type="submit" variante="primaire" aria-describedby="aide-envoi">
@@ -116,7 +116,7 @@ export declare class StCombobox extends ControleDeSaisie {
116
116
  readonly options: import("@angular/core").InputSignal<readonly OptionDeListe[]>;
117
117
  readonly filtrage: import("@angular/core").InputSignal<FiltrageDeListe>;
118
118
  /** Glyphe de tete, decoratif (planche 13 : banque, entreprise). */
119
- readonly icone: import("@angular/core").InputSignal<"accessibilite" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "devise" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "etoile" | "euro" | "fichier" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "iban" | "imprimer" | "interdit" | "jalons" | "jauge" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu" | "menu-ouvert" | "message" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau-jauge" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "wifi" | "wifi-barre" | null>;
119
+ readonly icone: import("@angular/core").InputSignal<"accessibilite" | "alimentation" | "appareil-photo" | "appareils" | "arborescence" | "asterisque" | "badge-coche" | "balance" | "banque" | "batiment" | "bifurcation" | "billets" | "billets-envoi" | "billets-pile" | "boite" | "boite-de-reception" | "bouclier" | "bouclier-alerte" | "bouclier-coche" | "bouclier-coeur" | "bouclier-croix" | "bouclier-moitie" | "bouclier-recherche" | "bouclier-utilisateur" | "boussole" | "bouton-curseur" | "bulle-question" | "cadenas" | "cadenas-horloge" | "cadenas-ouvert" | "cadre-pied" | "cadre-texte" | "calendrier" | "calendrier-evenement" | "calendrier-horloge" | "calendrier-jour" | "calques" | "carte-bancaire" | "carte-bancaire-barre" | "carte-bancaire-cadenas" | "carte-contact" | "carte-identite" | "cartes-empilees" | "case-cochee" | "casse" | "cercle" | "cercle-alerte" | "cercle-chevron-bas" | "cercle-coche" | "cercle-coche-ouvert" | "cercle-croix" | "cercle-info" | "cercle-moins" | "cercle-plus" | "cercle-question" | "certificat" | "chandelier" | "chargement" | "cheque" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "chevrons-droite" | "chevrons-haut-bas" | "cible" | "cle" | "cloche" | "cloche-sonnerie" | "coche" | "code" | "code-qr" | "code-qr-scanner" | "coffre-fort" | "colonnes" | "comparer" | "connexion" | "contraste" | "copie" | "corbeille" | "corbeille-croix" | "courriel" | "crayon" | "croix" | "curseur-clic" | "deconnexion" | "devise" | "disposition" | "dollar" | "dossier" | "dossier-barre" | "dossier-ouvert" | "double-coche" | "drapeau" | "echange" | "eclair" | "empreinte-digitale" | "enregistrer" | "entree" | "envoyer" | "epaisseur-de-trait" | "epingle" | "essai" | "etoile" | "euro" | "fichier" | "fichier-image" | "fichier-pdf" | "fichier-texte" | "filtre" | "filtre-barre" | "filtre-lignes" | "fleche-bas" | "fleche-bas-gauche" | "fleche-bas-ligne" | "fleche-droite" | "fleche-gauche" | "fleche-haut" | "fleche-haut-droite" | "fleche-haut-ligne" | "fleche-large-haut" | "fleches-gauche-droite" | "flocon" | "flou" | "formes" | "globe" | "graphique-anneau" | "graphique-barres" | "graphique-barres-cadre" | "graphique-camembert" | "graphique-ligne" | "graphique-lignes" | "grille" | "grille-lignes" | "hexagone" | "historique" | "horloge" | "horloge-fleche" | "iban" | "imprimer" | "interdit" | "jalons" | "jauge" | "lecture" | "lien" | "lien-externe" | "lignes" | "lignes-crayon" | "liste" | "liste-coche" | "liste-controle" | "liste-numerotee" | "luminosite" | "lune" | "maillet" | "maison" | "marque-page" | "menu" | "menu-ouvert" | "message" | "minuteur" | "mise-au-point" | "mise-en-page-image" | "moins" | "nuage-barre" | "nuage-televerser" | "octogone-alerte" | "oeil" | "oeil-barre" | "panneau-gauche" | "parametres" | "parapluie" | "parchemin" | "passerelle" | "pause" | "pieces" | "plus" | "pointeur" | "points" | "points-verticaux" | "portefeuille" | "portefeuille-cartes" | "presse-papiers-coche" | "presse-papiers-horloge" | "priorite-haute" | "rafraichir" | "recherche" | "recherche-barre" | "recherche-texte" | "rectangle-points" | "recu" | "redemarrer" | "reglages" | "regle" | "reseau" | "reseau-jauge" | "robot" | "rotation-arriere" | "routeur" | "sablier" | "sablier-bas" | "sablier-haut" | "sac-argent" | "sans-contact" | "serveur" | "soleil" | "style-de-trait" | "synchro" | "synchro-probleme" | "tableau" | "tableau-de-bord" | "tableau-de-bord-plus" | "tablette" | "tabulation" | "telecharger" | "telephone-mobile" | "televerser" | "tendance-baisse" | "tendance-hausse" | "terminal" | "tirelire" | "triangle-alerte" | "triangle-bas" | "triangle-haut" | "trombone" | "utilisateur" | "utilisateur-crayon" | "utilisateurs" | "visage" | "wifi" | "wifi-barre" | null>;
120
120
  /** Le style de l'etiquette (voir `st-form-field`). */
121
121
  readonly presentation: import("@angular/core").InputSignal<PresentationDeLibelle>;
122
122
  /**