@starterlib/ui 0.1.0 → 0.1.1
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.
- package/README.md +51 -40
- package/assets/icones/sprite.svg +32 -0
- package/fesm2022/starterlib-ui.mjs +56 -18
- package/fesm2022/starterlib-ui.mjs.map +1 -1
- package/package.json +3 -2
- package/types/starterlib-ui.d.ts +39 -8
package/README.md
CHANGED
|
@@ -1,64 +1,75 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @starterlib/ui
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Composants `st-*` du socle frontal starter. Zoneless, signal-first, `OnPush`,
|
|
4
|
+
autonomes. Ils consomment les jetons de `@starterlib/tokens`.
|
|
4
5
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
|
6
|
+
## Installation
|
|
8
7
|
|
|
9
8
|
```bash
|
|
10
|
-
|
|
9
|
+
pnpm add @starterlib/ui @starterlib/tokens @starterlib/util
|
|
11
10
|
```
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
Les versions d'Angular, de `@starterlib/tokens` et de `@starterlib/util` sont
|
|
13
|
+
des dependances de pair : c'est l'application qui les installe, et elles doivent
|
|
14
|
+
etre **identiques dans l'hote et dans chaque remote**. Deux versions du socle
|
|
15
|
+
dans le meme navigateur, ce sont deux jeux de jetons d'injection.
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
ng generate --help
|
|
17
|
-
```
|
|
17
|
+
## Sprite d'icones — a cabler avant le premier rendu
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
`st-icon` lit un sprite SVG servi **en meme origine**. Le paquet livre l'actif,
|
|
20
|
+
l'application le sert et en donne le chemin. Aucun chemin par defaut : une
|
|
21
|
+
reference `use` qui ne resout pas ne leve rien, et toutes les icones resteraient
|
|
22
|
+
vides en silence.
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
`angular.json`, cible `build` :
|
|
22
25
|
|
|
23
|
-
```
|
|
24
|
-
|
|
26
|
+
```jsonc
|
|
27
|
+
"assets": [
|
|
28
|
+
{
|
|
29
|
+
"glob": "sprite.svg",
|
|
30
|
+
"input": "node_modules/@starterlib/ui/assets/icones",
|
|
31
|
+
"output": "assets/icones",
|
|
32
|
+
},
|
|
33
|
+
]
|
|
25
34
|
```
|
|
26
35
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
### Publishing the Library
|
|
30
|
-
|
|
31
|
-
Once the project is built, you can publish your library by following these steps:
|
|
36
|
+
`app.config.ts` :
|
|
32
37
|
|
|
33
|
-
|
|
38
|
+
```ts
|
|
39
|
+
import { fournirCheminDuSprite } from '@starterlib/ui';
|
|
34
40
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
export const appConfig: ApplicationConfig = {
|
|
42
|
+
providers: [fournirCheminDuSprite('/ui/socle/assets/icones/sprite.svg')],
|
|
43
|
+
};
|
|
44
|
+
```
|
|
38
45
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
npm publish
|
|
42
|
-
```
|
|
46
|
+
Le prefixe est celui sous lequel l'interface est servie (`/ui/<interface>/`).
|
|
47
|
+
Un chemin empreinte (`sprite.<hash>.svg`) donne un cache immuable.
|
|
43
48
|
|
|
44
|
-
##
|
|
49
|
+
## Feuille de jetons
|
|
45
50
|
|
|
46
|
-
|
|
51
|
+
Les composants ne portent aucune couleur en dur : ils lisent les variables CSS
|
|
52
|
+
de `@starterlib/tokens`. Sans la feuille, tout s'affiche sans style.
|
|
47
53
|
|
|
48
|
-
```
|
|
49
|
-
|
|
54
|
+
```css
|
|
55
|
+
@import '@starterlib/tokens/styles/starter-tokens.css';
|
|
50
56
|
```
|
|
51
57
|
|
|
52
|
-
##
|
|
53
|
-
|
|
54
|
-
For end-to-end (e2e) testing, run:
|
|
58
|
+
## Ce qui est livre
|
|
55
59
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
Vague 1 : etats (`st-spinner`, `st-skeleton`, `st-empty`, `st-error`,
|
|
61
|
+
`st-offline-banner`, `st-progress`, `st-state`), texte (`st-text`,
|
|
62
|
+
`st-heading`), donnees (`st-money`, `st-date`, `st-relative-time`, `st-masked`,
|
|
63
|
+
`st-code`, `st-count`), actions (`st-button`, `st-icon-button`, `st-link`,
|
|
64
|
+
`st-button-group`), indicateurs (`st-badge`, `st-status-pill`, `st-tag`,
|
|
65
|
+
`st-avatar`), iconographie (`st-icon`).
|
|
59
66
|
|
|
60
|
-
|
|
67
|
+
Inventaire des vagues suivantes : `docs/plan-librairie.md` du depot.
|
|
61
68
|
|
|
62
|
-
##
|
|
69
|
+
## Regles tenues par les composants
|
|
63
70
|
|
|
64
|
-
|
|
71
|
+
- Un statut se lit par une icone **et** un texte, jamais par la couleur seule.
|
|
72
|
+
- Aucun acces a `window` ni `document` hors `afterNextRender` : le rendu serveur
|
|
73
|
+
reste possible sans reecriture.
|
|
74
|
+
- Aucun style en ligne : la politique de securite du contenu a nonce l'interdit.
|
|
75
|
+
- Aucun stockage navigateur.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!-- Sprite d'icones du socle frontal, tenu a la main. Ajouter un symbole, c'est
|
|
3
|
+
aussi ajouter son nom dans src/lib/icone/noms-d-icone.ts : trois tests de
|
|
4
|
+
st-icon.spec.ts gardent les deux listes identiques et verifient que chaque
|
|
5
|
+
symbole peint en currentColor. Le ton se pose donc par la propriete CSS
|
|
6
|
+
color, jamais par un attribut de gabarit. -->
|
|
7
|
+
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
|
|
8
|
+
<symbol id="boite-vide" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></symbol>
|
|
9
|
+
<symbol id="cercle" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/></symbol>
|
|
10
|
+
<symbol id="cercle-coche" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></symbol>
|
|
11
|
+
<symbol id="cercle-croix" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></symbol>
|
|
12
|
+
<symbol id="cercle-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></symbol>
|
|
13
|
+
<symbol id="chevron-bas" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></symbol>
|
|
14
|
+
<symbol id="chevron-droite" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></symbol>
|
|
15
|
+
<symbol id="chevron-gauche" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></symbol>
|
|
16
|
+
<symbol id="chevron-haut" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></symbol>
|
|
17
|
+
<symbol id="coche" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></symbol>
|
|
18
|
+
<symbol id="copie" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></symbol>
|
|
19
|
+
<symbol id="corbeille" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/></symbol>
|
|
20
|
+
<symbol id="croix" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></symbol>
|
|
21
|
+
<symbol id="hors-ligne" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="1" y1="1" x2="23" y2="23"/><path d="M16.72 11.06A10.94 10.94 0 0 1 19 12.55"/><path d="M5 12.55a10.94 10.94 0 0 1 5.17-2.39"/><path d="M10.71 5.05A16 16 0 0 1 22.58 9"/><path d="M1.42 9a15.91 15.91 0 0 1 4.7-2.88"/><path d="M8.53 16.11a6 6 0 0 1 6.95 0"/><line x1="12" y1="20" x2="12.01" y2="20"/></symbol>
|
|
22
|
+
<symbol id="lien-externe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></symbol>
|
|
23
|
+
<symbol id="menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></symbol>
|
|
24
|
+
<symbol id="oeil" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></symbol>
|
|
25
|
+
<symbol id="oeil-barre" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"/><line x1="1" y1="1" x2="23" y2="23"/></symbol>
|
|
26
|
+
<symbol id="plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></symbol>
|
|
27
|
+
<symbol id="rafraichir" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></symbol>
|
|
28
|
+
<symbol id="recherche" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></symbol>
|
|
29
|
+
<symbol id="serveur" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="2" width="20" height="8" rx="2"/><rect x="2" y="14" width="20" height="8" rx="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></symbol>
|
|
30
|
+
<symbol id="triangle-alerte" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></symbol>
|
|
31
|
+
<symbol id="utilisateur" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></symbol>
|
|
32
|
+
</svg>
|
|
@@ -4,18 +4,43 @@ import { DOCUMENT, NgTemplateOutlet } from '@angular/common';
|
|
|
4
4
|
import { masquerIban, masquerTelephone, masquerCarte, quatreDerniers, formaterIban, formaterMontant } from '@starterlib/util';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* Chemin du sprite SVG des icones
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* Chemin du sprite SVG des icones, **fourni par l'application**.
|
|
8
|
+
*
|
|
9
|
+
* ⚠️ Aucun defaut, et c'est voulu. Un defaut absolu (`/assets/icones/...`) est
|
|
10
|
+
* faux des que l'interface est servie sous un prefixe (`/ui/<interface>/`), et
|
|
11
|
+
* l'echec est MUET : la reference externe d'un `<use>` qui ne resout pas ne
|
|
12
|
+
* leve rien, toutes les icones restent vides, et la regle « un statut se lit
|
|
13
|
+
* par une icone ET un texte » tombe sans que rien ne le signale. Mieux vaut
|
|
14
|
+
* echouer au demarrage, une fois, avec la marche a suivre.
|
|
15
|
+
*
|
|
16
|
+
* L'actif est publie avec le paquet :
|
|
17
|
+
* `node_modules/@starterlib/ui/assets/icones/sprite.svg`. Chaque SPA le copie
|
|
18
|
+
* dans ses actifs (bloc `assets` de `angular.json`), puis fournit son chemin —
|
|
19
|
+
* de preference empreinte, pour un cache immuable :
|
|
20
|
+
*
|
|
21
|
+
* ```ts
|
|
22
|
+
* { provide: CHEMIN_DU_SPRITE, useValue: '/ui/socle/assets/icones/sprite.svg' }
|
|
23
|
+
* ```
|
|
11
24
|
*/
|
|
12
25
|
const CHEMIN_DU_SPRITE = new InjectionToken('st.chemin-du-sprite', {
|
|
13
26
|
providedIn: 'root',
|
|
14
|
-
factory: () =>
|
|
27
|
+
factory: () => {
|
|
28
|
+
throw new Error('CHEMIN_DU_SPRITE n\'est pas fourni. Copiez "@starterlib/ui/assets/icones/sprite.svg"' +
|
|
29
|
+
" dans les actifs de l'application, puis fournissez son chemin :" +
|
|
30
|
+
" { provide: CHEMIN_DU_SPRITE, useValue: '/ui/<interface>/assets/icones/sprite.svg' }.");
|
|
31
|
+
},
|
|
15
32
|
});
|
|
33
|
+
/**
|
|
34
|
+
* Fournit le chemin du sprite. A poser une fois, dans la configuration de
|
|
35
|
+
* l'application — jamais dans un composant, ou deux branches de l'arbre
|
|
36
|
+
* pourraient viser deux sprites differents.
|
|
37
|
+
*/
|
|
38
|
+
function fournirCheminDuSprite(chemin) {
|
|
39
|
+
return { provide: CHEMIN_DU_SPRITE, useValue: chemin };
|
|
40
|
+
}
|
|
16
41
|
/**
|
|
17
42
|
* Marque la presence d'une region vivante possedee par un ancetre, en pratique
|
|
18
|
-
*
|
|
43
|
+
* le composant `st-state`.
|
|
19
44
|
*
|
|
20
45
|
* Tout composant susceptible de porter un `role="status"` l'injecte en
|
|
21
46
|
* optionnel et **se tait** s'il en trouve un. Sans cela, un indicateur de
|
|
@@ -70,7 +95,7 @@ class StIcon {
|
|
|
70
95
|
reference = computed(() => `${this.cheminDuSprite}#${this.nom()}`, /* @ts-ignore */
|
|
71
96
|
...(ngDevMode ? [{ debugName: "reference" }] : /* istanbul ignore next */ []));
|
|
72
97
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StIcon, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
73
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StIcon, isStandalone: true, selector: "st-icon", inputs: { nom: { classPropertyName: "nom", publicName: "nom", isSignal: true, isRequired: true, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, ton: { classPropertyName: "ton", publicName: "ton", isSignal: true, isRequired: false, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-taille": "taille()", "attr.data-ton": "ton()" }, classAttribute: "st-icon" }, ngImport: i0, template: "<svg\n [attr.aria-hidden]=\"estDecorative() ? 'true' : null\"\n [attr.role]=\"estDecorative() ? null : 'img'\"\n [attr.aria-label]=\"etiquette()\"\n focusable=\"false\"\n>\n <use [attr.href]=\"reference()\" />\n</svg>\n", styles: [":host{display:inline-flex;flex:none;vertical-align:-.125em;color:
|
|
98
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StIcon, isStandalone: true, selector: "st-icon", inputs: { nom: { classPropertyName: "nom", publicName: "nom", isSignal: true, isRequired: true, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, ton: { classPropertyName: "ton", publicName: "ton", isSignal: true, isRequired: false, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-taille": "taille()", "attr.data-ton": "ton()" }, classAttribute: "st-icon" }, ngImport: i0, template: "<svg\n [attr.aria-hidden]=\"estDecorative() ? 'true' : null\"\n [attr.role]=\"estDecorative() ? null : 'img'\"\n [attr.aria-label]=\"etiquette()\"\n focusable=\"false\"\n>\n <use [attr.href]=\"reference()\" />\n</svg>\n", styles: [":host{display:inline-flex;flex:none;vertical-align:-.125em;color:inherit}svg{inline-size:var(--st-icone-taille, 1.25em);block-size:var(--st-icone-taille, 1.25em)}:host([data-taille=xs]) svg{--st-icone-taille: .75em}:host([data-taille=sm]) svg{--st-icone-taille: 1em}:host([data-taille=lg]) svg{--st-icone-taille: 1.5em}:host([data-taille=xl]) svg{--st-icone-taille: 2em}:host([data-ton=discret]){color:var(--st-couleur-texte-discret)}:host([data-ton=primaire]){color:var(--st-couleur-primaire)}:host([data-ton=succes]){color:var(--st-couleur-succes)}:host([data-ton=avertissement]){color:var(--st-couleur-avertissement)}:host([data-ton=danger]){color:var(--st-couleur-danger)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
99
|
}
|
|
75
100
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StIcon, decorators: [{
|
|
76
101
|
type: Component,
|
|
@@ -78,11 +103,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
78
103
|
class: 'st-icon',
|
|
79
104
|
'[attr.data-taille]': 'taille()',
|
|
80
105
|
'[attr.data-ton]': 'ton()',
|
|
81
|
-
}, template: "<svg\n [attr.aria-hidden]=\"estDecorative() ? 'true' : null\"\n [attr.role]=\"estDecorative() ? null : 'img'\"\n [attr.aria-label]=\"etiquette()\"\n focusable=\"false\"\n>\n <use [attr.href]=\"reference()\" />\n</svg>\n", styles: [":host{display:inline-flex;flex:none;vertical-align:-.125em;color:
|
|
106
|
+
}, template: "<svg\n [attr.aria-hidden]=\"estDecorative() ? 'true' : null\"\n [attr.role]=\"estDecorative() ? null : 'img'\"\n [attr.aria-label]=\"etiquette()\"\n focusable=\"false\"\n>\n <use [attr.href]=\"reference()\" />\n</svg>\n", styles: [":host{display:inline-flex;flex:none;vertical-align:-.125em;color:inherit}svg{inline-size:var(--st-icone-taille, 1.25em);block-size:var(--st-icone-taille, 1.25em)}:host([data-taille=xs]) svg{--st-icone-taille: .75em}:host([data-taille=sm]) svg{--st-icone-taille: 1em}:host([data-taille=lg]) svg{--st-icone-taille: 1.5em}:host([data-taille=xl]) svg{--st-icone-taille: 2em}:host([data-ton=discret]){color:var(--st-couleur-texte-discret)}:host([data-ton=primaire]){color:var(--st-couleur-primaire)}:host([data-ton=succes]){color:var(--st-couleur-succes)}:host([data-ton=avertissement]){color:var(--st-couleur-avertissement)}:host([data-ton=danger]){color:var(--st-couleur-danger)}\n"] }]
|
|
82
107
|
}], propDecorators: { nom: [{ type: i0.Input, args: [{ isSignal: true, alias: "nom", required: true }] }], taille: [{ type: i0.Input, args: [{ isSignal: true, alias: "taille", required: false }] }], ton: [{ type: i0.Input, args: [{ isSignal: true, alias: "ton", required: false }] }], etiquette: [{ type: i0.Input, args: [{ isSignal: true, alias: "etiquette", required: false }] }] } });
|
|
83
108
|
|
|
84
109
|
/**
|
|
85
|
-
* Noms du sprite,
|
|
110
|
+
* Noms du sprite, tenus a l'identique de `assets/icones/sprite.svg` par les
|
|
111
|
+
* tests de `st-icon.spec.ts` (dans les deux sens).
|
|
86
112
|
*
|
|
87
113
|
* Le type existe pour qu'une faute de frappe echoue a la compilation : une
|
|
88
114
|
* reference `use` vers un identifiant absent ne rend RIEN, sans erreur, et le
|
|
@@ -271,7 +297,7 @@ class StProgress {
|
|
|
271
297
|
}, /* @ts-ignore */
|
|
272
298
|
...(ngDevMode ? [{ debugName: "pourcentage" }] : /* istanbul ignore next */ []));
|
|
273
299
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StProgress, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StProgress, isStandalone: true, selector: "st-progress", inputs: { valeur: { classPropertyName: "valeur", publicName: "valeur", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: true, transformFunction: null }, ton: { classPropertyName: "ton", publicName: "ton", isSignal: true, isRequired: false, transformFunction: null }, texteDeValeur: { classPropertyName: "texteDeValeur", publicName: "texteDeValeur", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "attr.data-ton": "ton()", "attr.data-indetermine": "estIndeterminee() ? \"\" : null", "attr.aria-label": "etiquette()", "attr.aria-valuemin": "0", "attr.aria-valuemax": "max()", "attr.aria-valuenow": "valeurAnnoncee()", "attr.aria-valuetext": "texteDeValeur()", "style.--st-progress-part.%": "pourcentage()" }, classAttribute: "st-progress" }, ngImport: i0, template: "<span class=\"st-progress__barre\"></span>\n", styles: [":host{display:block;block-size:.5rem;overflow:hidden;background:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-progress__barre{display:block;block-size:100%;inline-size:
|
|
300
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StProgress, isStandalone: true, selector: "st-progress", inputs: { valeur: { classPropertyName: "valeur", publicName: "valeur", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: true, transformFunction: null }, ton: { classPropertyName: "ton", publicName: "ton", isSignal: true, isRequired: false, transformFunction: null }, texteDeValeur: { classPropertyName: "texteDeValeur", publicName: "texteDeValeur", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "progressbar" }, properties: { "attr.data-ton": "ton()", "attr.data-indetermine": "estIndeterminee() ? \"\" : null", "attr.aria-label": "etiquette()", "attr.aria-valuemin": "0", "attr.aria-valuemax": "max()", "attr.aria-valuenow": "valeurAnnoncee()", "attr.aria-valuetext": "texteDeValeur()", "style.--st-progress-part.%": "pourcentage()" }, classAttribute: "st-progress" }, ngImport: i0, template: "<span class=\"st-progress__barre\"></span>\n", styles: [":host{display:block;block-size:.5rem;overflow:hidden;background:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-progress__barre{display:block;block-size:100%;inline-size:var(--st-progress-part, 0%);background:var(--st-couleur-primaire);border-radius:inherit;transition:inline-size var(--st-duree-normale) var(--st-courbe-standard)}:host([data-ton=succes]) .st-progress__barre{background:var(--st-couleur-succes)}:host([data-ton=danger]) .st-progress__barre{background:var(--st-couleur-danger)}:host([data-indetermine]) .st-progress__barre{inline-size:35%;animation:st-progress-va-et-vient var(--st-anim-chargement, 1.4s) ease-in-out infinite}@keyframes st-progress-va-et-vient{0%{transform:translate(-100%)}to{transform:translate(calc(100cqi + 100%))}}@keyframes st-progress-pulsation{0%,to{opacity:1}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){:host([data-indetermine]) .st-progress__barre{inline-size:100%;transform:none;animation:st-progress-pulsation 1.6s ease-in-out infinite}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
275
301
|
}
|
|
276
302
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StProgress, decorators: [{
|
|
277
303
|
type: Component,
|
|
@@ -286,7 +312,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
286
312
|
'[attr.aria-valuenow]': 'valeurAnnoncee()',
|
|
287
313
|
'[attr.aria-valuetext]': 'texteDeValeur()',
|
|
288
314
|
'[style.--st-progress-part.%]': 'pourcentage()',
|
|
289
|
-
}, template: "<span class=\"st-progress__barre\"></span>\n", styles: [":host{display:block;block-size:.5rem;overflow:hidden;background:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-progress__barre{display:block;block-size:100%;inline-size:
|
|
315
|
+
}, template: "<span class=\"st-progress__barre\"></span>\n", styles: [":host{display:block;block-size:.5rem;overflow:hidden;background:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-progress__barre{display:block;block-size:100%;inline-size:var(--st-progress-part, 0%);background:var(--st-couleur-primaire);border-radius:inherit;transition:inline-size var(--st-duree-normale) var(--st-courbe-standard)}:host([data-ton=succes]) .st-progress__barre{background:var(--st-couleur-succes)}:host([data-ton=danger]) .st-progress__barre{background:var(--st-couleur-danger)}:host([data-indetermine]) .st-progress__barre{inline-size:35%;animation:st-progress-va-et-vient var(--st-anim-chargement, 1.4s) ease-in-out infinite}@keyframes st-progress-va-et-vient{0%{transform:translate(-100%)}to{transform:translate(calc(100cqi + 100%))}}@keyframes st-progress-pulsation{0%,to{opacity:1}50%{opacity:.4}}@media(prefers-reduced-motion:reduce){:host([data-indetermine]) .st-progress__barre{inline-size:100%;transform:none;animation:st-progress-pulsation 1.6s ease-in-out infinite}}\n"] }]
|
|
290
316
|
}], propDecorators: { valeur: [{ type: i0.Input, args: [{ isSignal: true, alias: "valeur", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], etiquette: [{ type: i0.Input, args: [{ isSignal: true, alias: "etiquette", required: true }] }], ton: [{ type: i0.Input, args: [{ isSignal: true, alias: "ton", required: false }] }], texteDeValeur: [{ type: i0.Input, args: [{ isSignal: true, alias: "texteDeValeur", required: false }] }] } });
|
|
291
317
|
|
|
292
318
|
/**
|
|
@@ -334,6 +360,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
334
360
|
* tabulation si quelqu'un lui pose un `tabindex`. Tout fonctionne en
|
|
335
361
|
* demonstration et casse au premier formulaire reel.
|
|
336
362
|
*
|
|
363
|
+
* ⚠️ L'indicateur de chargement est MUET (`aria-hidden`) : pose dans le bouton,
|
|
364
|
+
* son `role="status"` entrait dans le nom accessible, qui devenait « Chargement
|
|
365
|
+
* en cours Valider ». L'annonce de l'action en cours revient a l'annonceur
|
|
366
|
+
* global du noyau, pas au bouton.
|
|
367
|
+
*
|
|
337
368
|
* ⚠️ Pendant le chargement, le bouton porte `aria-disabled` et NON `disabled` :
|
|
338
369
|
* l'attribut natif lui retire le focus, le lecteur d'ecran perd le controle
|
|
339
370
|
* qu'il avait sous le doigt et retombe sur le corps du document. Les clics
|
|
@@ -357,6 +388,13 @@ class StButton {
|
|
|
357
388
|
*/
|
|
358
389
|
chargement = input(false, /* @ts-ignore */
|
|
359
390
|
...(ngDevMode ? [{ debugName: "chargement" }] : /* istanbul ignore next */ []));
|
|
391
|
+
/**
|
|
392
|
+
* Le ton suit le FOND du bouton, et non le bouton en general : sur une
|
|
393
|
+
* variante posee sur la surface (`secondaire`, qui est le defaut, et
|
|
394
|
+
* `discret`), un indicateur en ton inverse tombait a 1,00:1 — invisible.
|
|
395
|
+
*/
|
|
396
|
+
tonDuChargement = computed(() => this.variante() === 'primaire' || this.variante() === 'destructeur' ? 'inverse' : 'courant', /* @ts-ignore */
|
|
397
|
+
...(ngDevMode ? [{ debugName: "tonDuChargement" }] : /* istanbul ignore next */ []));
|
|
360
398
|
constructor() {
|
|
361
399
|
const element = inject(ElementRef).nativeElement;
|
|
362
400
|
const garde = (evenement) => {
|
|
@@ -379,7 +417,7 @@ class StButton {
|
|
|
379
417
|
});
|
|
380
418
|
}
|
|
381
419
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
382
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: StButton, isStandalone: true, selector: "button[stButton]", inputs: { variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, pleineLargeur: { classPropertyName: "pleineLargeur", publicName: "pleineLargeur", isSignal: true, isRequired: false, transformFunction: null }, iconeAvant: { classPropertyName: "iconeAvant", publicName: "iconeAvant", isSignal: true, isRequired: false, transformFunction: null }, iconeApres: { classPropertyName: "iconeApres", publicName: "iconeApres", isSignal: true, isRequired: false, transformFunction: null }, chargement: { classPropertyName: "chargement", publicName: "chargement", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variante": "variante()", "attr.data-taille": "taille()", "attr.data-pleine-largeur": "pleineLargeur() ? \"\" : null", "attr.aria-disabled": "chargement() ? \"true\" : null", "attr.aria-busy": "chargement() ? \"true\" : null" }, classAttribute: "st-button" }, ngImport: i0, template: "@if (
|
|
420
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: StButton, isStandalone: true, selector: "button[stButton]", inputs: { variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, pleineLargeur: { classPropertyName: "pleineLargeur", publicName: "pleineLargeur", isSignal: true, isRequired: false, transformFunction: null }, iconeAvant: { classPropertyName: "iconeAvant", publicName: "iconeAvant", isSignal: true, isRequired: false, transformFunction: null }, iconeApres: { classPropertyName: "iconeApres", publicName: "iconeApres", isSignal: true, isRequired: false, transformFunction: null }, chargement: { classPropertyName: "chargement", publicName: "chargement", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variante": "variante()", "attr.data-taille": "taille()", "attr.data-pleine-largeur": "pleineLargeur() ? \"\" : null", "attr.aria-disabled": "chargement() ? \"true\" : null", "attr.aria-busy": "chargement() ? \"true\" : null" }, classAttribute: "st-button" }, ngImport: i0, template: "@if (iconeAvant(); as icone) {\n <st-icon [nom]=\"icone\" taille=\"sm\" />\n}\n\n<span class=\"st-button__libelle\"><ng-content /></span>\n\n@if (iconeApres(); as icone) {\n <st-icon [nom]=\"icone\" taille=\"sm\" />\n}\n\n@if (chargement()) {\n <st-spinner\n class=\"st-button__chargement\"\n taille=\"sm\"\n [ton]=\"tonDuChargement()\"\n aria-hidden=\"true\"\n />\n}\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{position:relative;display:inline-flex;gap:var(--st-espacement-2);align-items:center;justify-content:center;min-block-size:var(--st-cible-tactile-min);padding-block:var(--st-espacement-2);padding-inline:var(--st-espacement-4);font-family:var(--st-police-base);font-size:var(--st-taille-md);font-weight:var(--st-graisse-moyenne);line-height:var(--st-interligne-serre);color:var(--st-couleur-texte);cursor:pointer;background:var(--st-couleur-surface);border:1px solid var(--st-couleur-bordure-forte);border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard),border-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-surface-survol)}:host:disabled{color:var(--st-couleur-texte-desactive);cursor:not-allowed;border-color:var(--st-couleur-bordure)}:host[aria-disabled=true]{cursor:progress}.st-button__libelle{white-space:normal}:host([aria-busy=true])>:not(.st-button__chargement){opacity:0}.st-button__chargement{position:absolute;inset:0;margin:auto}:host([data-variante=primaire]){color:var(--st-couleur-sur-primaire);background:var(--st-couleur-primaire);border-color:transparent}:host([data-variante=primaire]):focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--st-couleur-surface)}:host([data-variante=primaire]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-primaire-survol)}:host([data-variante=destructeur]){color:var(--st-couleur-sur-danger);background:var(--st-couleur-danger);border-color:transparent}:host([data-variante=destructeur]):focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--st-couleur-surface)}:host([data-variante=destructeur]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-danger-survol)}:host([data-variante=discret]){color:var(--st-couleur-primaire);background:transparent;border-color:transparent}:host([data-variante=discret]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-surface-survol)}:host([data-taille=sm]){min-block-size:2.25rem;padding-inline:var(--st-espacement-3);font-size:var(--st-taille-sm)}@media(pointer:coarse){:host([data-taille=sm]){min-block-size:var(--st-cible-tactile-min)}}:host([data-taille=lg]){min-block-size:3.25rem;padding-inline:var(--st-espacement-6);font-size:var(--st-taille-lg)}:host([data-pleine-largeur]){display:flex;inline-size:100%}\n"], dependencies: [{ kind: "component", type: StIcon, selector: "st-icon", inputs: ["nom", "taille", "ton", "etiquette"] }, { kind: "component", type: StSpinner, selector: "st-spinner", inputs: ["taille", "ton", "etiquette"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
383
421
|
}
|
|
384
422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StButton, decorators: [{
|
|
385
423
|
type: Component,
|
|
@@ -390,7 +428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
390
428
|
'[attr.data-pleine-largeur]': 'pleineLargeur() ? "" : null',
|
|
391
429
|
'[attr.aria-disabled]': 'chargement() ? "true" : null',
|
|
392
430
|
'[attr.aria-busy]': 'chargement() ? "true" : null',
|
|
393
|
-
}, template: "@if (
|
|
431
|
+
}, template: "@if (iconeAvant(); as icone) {\n <st-icon [nom]=\"icone\" taille=\"sm\" />\n}\n\n<span class=\"st-button__libelle\"><ng-content /></span>\n\n@if (iconeApres(); as icone) {\n <st-icon [nom]=\"icone\" taille=\"sm\" />\n}\n\n@if (chargement()) {\n <st-spinner\n class=\"st-button__chargement\"\n taille=\"sm\"\n [ton]=\"tonDuChargement()\"\n aria-hidden=\"true\"\n />\n}\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{position:relative;display:inline-flex;gap:var(--st-espacement-2);align-items:center;justify-content:center;min-block-size:var(--st-cible-tactile-min);padding-block:var(--st-espacement-2);padding-inline:var(--st-espacement-4);font-family:var(--st-police-base);font-size:var(--st-taille-md);font-weight:var(--st-graisse-moyenne);line-height:var(--st-interligne-serre);color:var(--st-couleur-texte);cursor:pointer;background:var(--st-couleur-surface);border:1px solid var(--st-couleur-bordure-forte);border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard),border-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-surface-survol)}:host:disabled{color:var(--st-couleur-texte-desactive);cursor:not-allowed;border-color:var(--st-couleur-bordure)}:host[aria-disabled=true]{cursor:progress}.st-button__libelle{white-space:normal}:host([aria-busy=true])>:not(.st-button__chargement){opacity:0}.st-button__chargement{position:absolute;inset:0;margin:auto}:host([data-variante=primaire]){color:var(--st-couleur-sur-primaire);background:var(--st-couleur-primaire);border-color:transparent}:host([data-variante=primaire]):focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--st-couleur-surface)}:host([data-variante=primaire]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-primaire-survol)}:host([data-variante=destructeur]){color:var(--st-couleur-sur-danger);background:var(--st-couleur-danger);border-color:transparent}:host([data-variante=destructeur]):focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px;box-shadow:0 0 0 2px var(--st-couleur-surface)}:host([data-variante=destructeur]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-danger-survol)}:host([data-variante=discret]){color:var(--st-couleur-primaire);background:transparent;border-color:transparent}:host([data-variante=discret]):hover:not([aria-disabled=true],:disabled){background:var(--st-couleur-surface-survol)}:host([data-taille=sm]){min-block-size:2.25rem;padding-inline:var(--st-espacement-3);font-size:var(--st-taille-sm)}@media(pointer:coarse){:host([data-taille=sm]){min-block-size:var(--st-cible-tactile-min)}}:host([data-taille=lg]){min-block-size:3.25rem;padding-inline:var(--st-espacement-6);font-size:var(--st-taille-lg)}:host([data-pleine-largeur]){display:flex;inline-size:100%}\n"] }]
|
|
394
432
|
}], ctorParameters: () => [], propDecorators: { variante: [{ type: i0.Input, args: [{ isSignal: true, alias: "variante", required: false }] }], taille: [{ type: i0.Input, args: [{ isSignal: true, alias: "taille", required: false }] }], pleineLargeur: [{ type: i0.Input, args: [{ isSignal: true, alias: "pleineLargeur", required: false }] }], iconeAvant: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconeAvant", required: false }] }], iconeApres: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconeApres", required: false }] }], chargement: [{ type: i0.Input, args: [{ isSignal: true, alias: "chargement", required: false }] }] } });
|
|
395
433
|
|
|
396
434
|
/**
|
|
@@ -414,7 +452,7 @@ class StIconButton {
|
|
|
414
452
|
enfonce = model(null, /* @ts-ignore */
|
|
415
453
|
...(ngDevMode ? [{ debugName: "enfonce" }] : /* istanbul ignore next */ []));
|
|
416
454
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StIconButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
417
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StIconButton, isStandalone: true, selector: "button[stIconButton]", inputs: { icone: { classPropertyName: "icone", publicName: "icone", isSignal: true, isRequired: true, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: true, transformFunction: null }, variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, enfonce: { classPropertyName: "enfonce", publicName: "enfonce", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { enfonce: "enfonceChange" }, host: { properties: { "attr.data-variante": "variante()", "attr.data-taille": "taille()", "attr.aria-label": "etiquette()", "attr.aria-pressed": "enfonce() === null ? null : enfonce()" }, classAttribute: "st-icon-button" }, ngImport: i0, template: "<st-icon [nom]=\"icone()\" [taille]=\"taille() === 'sm' ? 'sm' : 'md'\" />\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{display:inline-flex;flex:none;align-items:center;justify-content:center;min-inline-size:var(--st-cible-tactile-min);min-block-size:var(--st-cible-tactile-min);color:var(--st-couleur-texte);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px
|
|
455
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StIconButton, isStandalone: true, selector: "button[stIconButton]", inputs: { icone: { classPropertyName: "icone", publicName: "icone", isSignal: true, isRequired: true, transformFunction: null }, etiquette: { classPropertyName: "etiquette", publicName: "etiquette", isSignal: true, isRequired: true, transformFunction: null }, variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, taille: { classPropertyName: "taille", publicName: "taille", isSignal: true, isRequired: false, transformFunction: null }, enfonce: { classPropertyName: "enfonce", publicName: "enfonce", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { enfonce: "enfonceChange" }, host: { properties: { "attr.data-variante": "variante()", "attr.data-taille": "taille()", "attr.aria-label": "etiquette()", "attr.aria-pressed": "enfonce() === null ? null : enfonce()" }, classAttribute: "st-icon-button" }, ngImport: i0, template: "<st-icon [nom]=\"icone()\" [taille]=\"taille() === 'sm' ? 'sm' : 'md'\" />\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{display:inline-flex;flex:none;align-items:center;justify-content:center;min-inline-size:var(--st-cible-tactile-min);min-block-size:var(--st-cible-tactile-min);color:var(--st-couleur-texte);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover:not(:disabled){background:var(--st-couleur-surface-survol)}:host:disabled{color:var(--st-couleur-texte-desactive);cursor:not-allowed}:host[aria-pressed=true]{background:var(--st-couleur-surface-enfoncee)}:host([data-variante=secondaire]){background:var(--st-couleur-surface);border-color:var(--st-couleur-bordure-forte)}:host([data-variante=destructeur]){color:var(--st-couleur-danger)}:host([data-variante=destructeur]):hover:not(:disabled){background:var(--st-couleur-danger-discret)}\n"], dependencies: [{ kind: "component", type: StIcon, selector: "st-icon", inputs: ["nom", "taille", "ton", "etiquette"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
418
456
|
}
|
|
419
457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StIconButton, decorators: [{
|
|
420
458
|
type: Component,
|
|
@@ -424,7 +462,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
424
462
|
'[attr.data-taille]': 'taille()',
|
|
425
463
|
'[attr.aria-label]': 'etiquette()',
|
|
426
464
|
'[attr.aria-pressed]': 'enfonce() === null ? null : enfonce()',
|
|
427
|
-
}, template: "<st-icon [nom]=\"icone()\" [taille]=\"taille() === 'sm' ? 'sm' : 'md'\" />\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{display:inline-flex;flex:none;align-items:center;justify-content:center;min-inline-size:var(--st-cible-tactile-min);min-block-size:var(--st-cible-tactile-min);color:var(--st-couleur-texte);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px
|
|
465
|
+
}, template: "<st-icon [nom]=\"icone()\" [taille]=\"taille() === 'sm' ? 'sm' : 'md'\" />\n", styles: [".st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}:host{display:inline-flex;flex:none;align-items:center;justify-content:center;min-inline-size:var(--st-cible-tactile-min);min-block-size:var(--st-cible-tactile-min);color:var(--st-couleur-texte);cursor:pointer;background:transparent;border:1px solid transparent;border-radius:var(--st-rayon-md);transition:background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover:not(:disabled){background:var(--st-couleur-surface-survol)}:host:disabled{color:var(--st-couleur-texte-desactive);cursor:not-allowed}:host[aria-pressed=true]{background:var(--st-couleur-surface-enfoncee)}:host([data-variante=secondaire]){background:var(--st-couleur-surface);border-color:var(--st-couleur-bordure-forte)}:host([data-variante=destructeur]){color:var(--st-couleur-danger)}:host([data-variante=destructeur]):hover:not(:disabled){background:var(--st-couleur-danger-discret)}\n"] }]
|
|
428
466
|
}], propDecorators: { icone: [{ type: i0.Input, args: [{ isSignal: true, alias: "icone", required: true }] }], etiquette: [{ type: i0.Input, args: [{ isSignal: true, alias: "etiquette", required: true }] }], variante: [{ type: i0.Input, args: [{ isSignal: true, alias: "variante", required: false }] }], taille: [{ type: i0.Input, args: [{ isSignal: true, alias: "taille", required: false }] }], enfonce: [{ type: i0.Input, args: [{ isSignal: true, alias: "enfonce", required: false }] }, { type: i0.Output, args: ["enfonceChange"] }] } });
|
|
429
467
|
|
|
430
468
|
/**
|
|
@@ -447,7 +485,7 @@ class StLink {
|
|
|
447
485
|
mentionExterne = input('(nouvelle fenetre)', /* @ts-ignore */
|
|
448
486
|
...(ngDevMode ? [{ debugName: "mentionExterne" }] : /* istanbul ignore next */ []));
|
|
449
487
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StLink, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
450
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: StLink, isStandalone: true, selector: "a[stLink]", inputs: { variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, externe: { classPropertyName: "externe", publicName: "externe", isSignal: true, isRequired: false, transformFunction: null }, mentionExterne: { classPropertyName: "mentionExterne", publicName: "mentionExterne", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variante": "variante()", "attr.target": "externe() ? \"_blank\" : null", "attr.rel": "externe() ? \"noopener noreferrer\" : null" }, classAttribute: "st-link" }, ngImport: i0, template: "<ng-content />\n@if (externe()) {\n <st-icon nom=\"lien-externe\" taille=\"xs\" />\n <span class=\"st-vh\">{{ mentionExterne() }}</span>\n}\n", styles: [":host{display:inline;gap:var(--st-espacement-1);color:var(--st-couleur-primaire);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:var(--st-rayon-xs)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px
|
|
488
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: StLink, isStandalone: true, selector: "a[stLink]", inputs: { variante: { classPropertyName: "variante", publicName: "variante", isSignal: true, isRequired: false, transformFunction: null }, externe: { classPropertyName: "externe", publicName: "externe", isSignal: true, isRequired: false, transformFunction: null }, mentionExterne: { classPropertyName: "mentionExterne", publicName: "mentionExterne", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-variante": "variante()", "attr.target": "externe() ? \"_blank\" : null", "attr.rel": "externe() ? \"noopener noreferrer\" : null" }, classAttribute: "st-link" }, ngImport: i0, template: "<ng-content />\n@if (externe()) {\n <st-icon nom=\"lien-externe\" taille=\"xs\" />\n <span class=\"st-vh\">{{ mentionExterne() }}</span>\n}\n", styles: [":host{display:inline;gap:var(--st-espacement-1);color:var(--st-couleur-primaire);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:var(--st-rayon-xs)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover{color:var(--st-couleur-primaire-survol)}:host([data-variante=discret]){color:var(--st-couleur-texte-discret)}:host([data-variante=autonome]){display:inline-flex;gap:var(--st-espacement-1);align-items:center;min-block-size:var(--st-cible-tactile-min);text-decoration:none}:host([data-variante=autonome]):hover{text-decoration:underline}.st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}\n"], dependencies: [{ kind: "component", type: StIcon, selector: "st-icon", inputs: ["nom", "taille", "ton", "etiquette"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
451
489
|
}
|
|
452
490
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StLink, decorators: [{
|
|
453
491
|
type: Component,
|
|
@@ -456,7 +494,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
456
494
|
'[attr.data-variante]': 'variante()',
|
|
457
495
|
'[attr.target]': 'externe() ? "_blank" : null',
|
|
458
496
|
'[attr.rel]': 'externe() ? "noopener noreferrer" : null',
|
|
459
|
-
}, template: "<ng-content />\n@if (externe()) {\n <st-icon nom=\"lien-externe\" taille=\"xs\" />\n <span class=\"st-vh\">{{ mentionExterne() }}</span>\n}\n", styles: [":host{display:inline;gap:var(--st-espacement-1);color:var(--st-couleur-primaire);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:var(--st-rayon-xs)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px
|
|
497
|
+
}, template: "<ng-content />\n@if (externe()) {\n <st-icon nom=\"lien-externe\" taille=\"xs\" />\n <span class=\"st-vh\">{{ mentionExterne() }}</span>\n}\n", styles: [":host{display:inline;gap:var(--st-espacement-1);color:var(--st-couleur-primaire);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;border-radius:var(--st-rayon-xs)}:host:focus-visible{outline:2px solid var(--st-couleur-anneau-focus);outline-offset:2px}:host:hover{color:var(--st-couleur-primaire-survol)}:host([data-variante=discret]){color:var(--st-couleur-texte-discret)}:host([data-variante=autonome]){display:inline-flex;gap:var(--st-espacement-1);align-items:center;min-block-size:var(--st-cible-tactile-min);text-decoration:none}:host([data-variante=autonome]):hover{text-decoration:underline}.st-vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}\n"] }]
|
|
460
498
|
}], propDecorators: { variante: [{ type: i0.Input, args: [{ isSignal: true, alias: "variante", required: false }] }], externe: [{ type: i0.Input, args: [{ isSignal: true, alias: "externe", required: false }] }], mentionExterne: [{ type: i0.Input, args: [{ isSignal: true, alias: "mentionExterne", required: false }] }] } });
|
|
461
499
|
|
|
462
500
|
/**
|
|
@@ -1349,5 +1387,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
1349
1387
|
* Generated bundle index. Do not edit.
|
|
1350
1388
|
*/
|
|
1351
1389
|
|
|
1352
|
-
export { CHEMIN_DU_SPRITE, ETATS_DE_BLOC, FUSEAU_PAR_DEFAUT, NOMS_DICONE, REGION_VIVANTE_PARENTE, StAvatar, StBadge, StButton, StButtonGroup, StCode, StCount, StDate, StEmpty, StError, StHeading, StIcon, StIconButton, StLink, StMasked, StMoney, StOfflineBanner, StProgress, StRelativeTime, StSkeleton, StSpinner, StState, StStatusPill, StTag, StText };
|
|
1390
|
+
export { CHEMIN_DU_SPRITE, ETATS_DE_BLOC, FUSEAU_PAR_DEFAUT, NOMS_DICONE, REGION_VIVANTE_PARENTE, StAvatar, StBadge, StButton, StButtonGroup, StCode, StCount, StDate, StEmpty, StError, StHeading, StIcon, StIconButton, StLink, StMasked, StMoney, StOfflineBanner, StProgress, StRelativeTime, StSkeleton, StSpinner, StState, StStatusPill, StTag, StText, fournirCheminDuSprite };
|
|
1353
1391
|
//# sourceMappingURL=starterlib-ui.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starterlib-ui.mjs","sources":["../../../../packages/ui/src/lib/noyau/jetons.ts","../../../../packages/ui/src/lib/noyau/etat.ts","../../../../packages/ui/src/lib/icone/st-icon.ts","../../../../packages/ui/src/lib/icone/st-icon.html","../../../../packages/ui/src/lib/icone/noms-d-icone.ts","../../../../packages/ui/src/lib/texte/st-text.ts","../../../../packages/ui/src/lib/texte/st-text.html","../../../../packages/ui/src/lib/texte/st-heading.ts","../../../../packages/ui/src/lib/texte/st-heading.html","../../../../packages/ui/src/lib/etats/st-spinner.ts","../../../../packages/ui/src/lib/etats/st-spinner.html","../../../../packages/ui/src/lib/etats/st-progress.ts","../../../../packages/ui/src/lib/etats/st-progress.html","../../../../packages/ui/src/lib/etats/st-skeleton.ts","../../../../packages/ui/src/lib/etats/st-skeleton.html","../../../../packages/ui/src/lib/actions/st-button.ts","../../../../packages/ui/src/lib/actions/st-button.html","../../../../packages/ui/src/lib/actions/st-icon-button.ts","../../../../packages/ui/src/lib/actions/st-icon-button.html","../../../../packages/ui/src/lib/actions/st-link.ts","../../../../packages/ui/src/lib/actions/st-link.html","../../../../packages/ui/src/lib/actions/st-button-group.ts","../../../../packages/ui/src/lib/actions/st-button-group.html","../../../../packages/ui/src/lib/donnees/st-code.ts","../../../../packages/ui/src/lib/donnees/st-code.html","../../../../packages/ui/src/lib/donnees/st-masked.ts","../../../../packages/ui/src/lib/donnees/st-masked.html","../../../../packages/ui/src/lib/donnees/st-money.ts","../../../../packages/ui/src/lib/donnees/st-money.html","../../../../packages/ui/src/lib/donnees/st-date.ts","../../../../packages/ui/src/lib/donnees/st-date.html","../../../../packages/ui/src/lib/donnees/st-relative-time.ts","../../../../packages/ui/src/lib/donnees/st-relative-time.html","../../../../packages/ui/src/lib/donnees/st-count.ts","../../../../packages/ui/src/lib/donnees/st-count.html","../../../../packages/ui/src/lib/indicateurs/st-status-pill.ts","../../../../packages/ui/src/lib/indicateurs/st-status-pill.html","../../../../packages/ui/src/lib/indicateurs/st-badge.ts","../../../../packages/ui/src/lib/indicateurs/st-badge.html","../../../../packages/ui/src/lib/indicateurs/st-tag.ts","../../../../packages/ui/src/lib/indicateurs/st-tag.html","../../../../packages/ui/src/lib/indicateurs/st-avatar.ts","../../../../packages/ui/src/lib/indicateurs/st-avatar.html","../../../../packages/ui/src/lib/etats/st-empty.ts","../../../../packages/ui/src/lib/etats/st-empty.html","../../../../packages/ui/src/lib/etats/st-error.ts","../../../../packages/ui/src/lib/etats/st-error.html","../../../../packages/ui/src/lib/etats/st-offline-banner.ts","../../../../packages/ui/src/lib/etats/st-offline-banner.html","../../../../packages/ui/src/lib/etats/st-state.ts","../../../../packages/ui/src/lib/etats/st-state.html","../../../../packages/ui/src/public-api.ts","../../../../packages/ui/src/starterlib-ui.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\n/**\n * Chemin du sprite SVG des icones. Chaque SPA le remplace par son actif\n * empreinte (`/assets/icones/sprite.<hash>.svg`) pour beneficier d'un cache\n * immuable. Le defaut vise le chemin non empreinte, utilisable en\n * developpement.\n */\nexport const CHEMIN_DU_SPRITE = new InjectionToken<string>('st.chemin-du-sprite', {\n providedIn: 'root',\n factory: () => '/assets/icones/sprite.svg',\n});\n\n/**\n * Marque la presence d'une region vivante possedee par un ancetre, en pratique\n * la directive `stState`.\n *\n * Tout composant susceptible de porter un `role=\"status\"` l'injecte en\n * optionnel et **se tait** s'il en trouve un. Sans cela, un indicateur de\n * chargement annonce dans une region qui annonce deja, et le lecteur d'ecran\n * lit deux fois. Le defaut se voit seulement en usage reel, jamais en revue.\n */\nexport const REGION_VIVANTE_PARENTE = new InjectionToken<true>('st.region-vivante-parente');\n\n/**\n * Fuseau employe pour rendre les dates. Explicite parce qu'un rendu serveur et\n * un rendu client qui ne s'accordent pas sur le fuseau produisent deux textes\n * differents, et l'hydratation casse. Le SSR est ecarte en version 1, mais la\n * compatibilite reste gardee.\n */\nexport const FUSEAU_PAR_DEFAUT = new InjectionToken<string>('st.fuseau-par-defaut', {\n providedIn: 'root',\n factory: () => 'Europe/Paris',\n});\n","/**\n * Les cinq etats que tout bloc consommant l'API doit traiter. Le type les\n * enumere pour qu'aucun ne s'oublie : un `switch` non exhaustif ne compile pas.\n */\nexport type EtatDeBloc = 'chargement' | 'erreur' | 'vide' | 'hors-ligne' | 'succes';\n\nexport const ETATS_DE_BLOC: readonly EtatDeBloc[] = [\n 'chargement',\n 'erreur',\n 'vide',\n 'hors-ligne',\n 'succes',\n] as const;\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { CHEMIN_DU_SPRITE } from '../noyau/jetons';\nimport type { NomDIcone } from './noms-d-icone';\n\nexport type TailleDIcone = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport type TonDIcone = 'courant' | 'discret' | 'primaire' | 'succes' | 'avertissement' | 'danger';\n\n/**\n * Icone tiree d'un sprite SVG servi en meme origine.\n *\n * Pourquoi un sprite et une reference externe plutot qu'une insertion : poser\n * du SVG dans le document demanderait `innerHTML`, interdit dans ce depot, et\n * une police d'icones rend un caractere arbitraire aux lecteurs d'ecran quand\n * la police ne charge pas.\n *\n * Une icone est **decorative par defaut**. Regle de tri : si la retirer ne\n * retire aucune information, elle est decorative. Une icone posee a cote d'un\n * texte qui dit la meme chose l'est toujours.\n */\n@Component({\n selector: 'st-icon',\n templateUrl: './st-icon.html',\n styleUrl: './st-icon.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-icon',\n '[attr.data-taille]': 'taille()',\n '[attr.data-ton]': 'ton()',\n },\n})\nexport class StIcon {\n private readonly cheminDuSprite = inject(CHEMIN_DU_SPRITE);\n\n readonly nom = input.required<NomDIcone>();\n readonly taille = input<TailleDIcone>('md');\n readonly ton = input<TonDIcone>('courant');\n\n /** `null` : l'icone est decorative et reste muette pour les lecteurs. */\n readonly etiquette = input<string | null>(null);\n\n readonly estDecorative = computed(() => this.etiquette() === null);\n readonly reference = computed(() => `${this.cheminDuSprite}#${this.nom()}`);\n}\n","<svg\n [attr.aria-hidden]=\"estDecorative() ? 'true' : null\"\n [attr.role]=\"estDecorative() ? null : 'img'\"\n [attr.aria-label]=\"etiquette()\"\n focusable=\"false\"\n>\n <use [attr.href]=\"reference()\" />\n</svg>\n","/**\n * Noms du sprite, engendres depuis `assets/icones/sprite.svg`.\n *\n * Le type existe pour qu'une faute de frappe echoue a la compilation : une\n * reference `use` vers un identifiant absent ne rend RIEN, sans erreur, et le\n * defaut passe la revue.\n */\nexport const NOMS_DICONE = [\n 'boite-vide',\n 'cercle',\n 'cercle-coche',\n 'cercle-croix',\n 'cercle-info',\n 'chevron-bas',\n 'chevron-droite',\n 'chevron-gauche',\n 'chevron-haut',\n 'coche',\n 'copie',\n 'corbeille',\n 'croix',\n 'hors-ligne',\n 'lien-externe',\n 'menu',\n 'oeil',\n 'oeil-barre',\n 'plus',\n 'rafraichir',\n 'recherche',\n 'serveur',\n 'triangle-alerte',\n 'utilisateur',\n] as const;\n\nexport type NomDIcone = (typeof NOMS_DICONE)[number];\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\nexport type VarianteDeTexte = 'corps' | 'corps-sm' | 'discret' | 'legende' | 'mono';\nexport type GraisseDeTexte = 'normale' | 'moyenne' | 'semi';\n\n/**\n * Bloc de texte de l'echelle typographique.\n *\n * L'hote EST la boite : aucun enveloppeur interne, et jamais\n * `display: contents`, qui retire l'element de l'arbre d'accessibilite dans\n * plusieurs navigateurs.\n */\n@Component({\n selector: 'st-text',\n templateUrl: './st-text.html',\n styleUrl: './st-text.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-text',\n '[attr.data-variante]': 'variante()',\n '[attr.data-graisse]': 'graisse()',\n '[attr.data-en-ligne]': 'enLigne() ? \"\" : null',\n '[attr.data-tronque]': 'tronquerA() === null ? null : \"\"',\n '[style.--st-text-lignes]': 'tronquerA()',\n },\n})\nexport class StText {\n readonly variante = input<VarianteDeTexte>('corps');\n readonly graisse = input<GraisseDeTexte>('normale');\n readonly enLigne = input(false);\n\n /**\n * Nombre de lignes au-dela duquel le texte est coupe.\n *\n * ⚠️ A ne jamais employer sur un message d'erreur, un statut ou un libelle\n * d'action : une information tronquee y devient fausse.\n */\n readonly tronquerA = input<number | null>(null);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type NiveauDeTitre = 1 | 2 | 3 | 4 | 5 | 6;\nexport type TailleDeTitre = 'lg' | 'xl' | '2xl' | '3xl' | '4xl';\n\nconst TAILLE_PAR_NIVEAU: Readonly<Record<NiveauDeTitre, TailleDeTitre>> = {\n 1: '3xl',\n 2: '2xl',\n 3: 'xl',\n 4: 'lg',\n 5: 'lg',\n 6: 'lg',\n};\n\n/**\n * Titre de section.\n *\n * `niveau` decrit la STRUCTURE du document, `taille` son APPARENCE. Les deux\n * sont volontairement dissocies : c'est ce qui empeche de choisir un niveau 4\n * parce qu'on le trouve plus petit, en cassant au passage la table des\n * matieres que les lecteurs d'ecran construisent.\n *\n * L'hote porte `role=\"heading\"` et `aria-level` plutot qu'une bascule sur six\n * balises : cela demanderait six projections de contenu, fragiles, pour un\n * resultat que les lecteurs d'ecran traitent de facon identique.\n */\n@Component({\n selector: 'st-heading',\n templateUrl: './st-heading.html',\n styleUrl: './st-heading.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-heading',\n role: 'heading',\n '[attr.aria-level]': 'niveau()',\n '[attr.id]': 'identifiant()',\n '[attr.data-taille]': 'tailleEffective()',\n },\n})\nexport class StHeading {\n readonly niveau = input.required<NiveauDeTitre>();\n readonly taille = input<TailleDeTitre | null>(null);\n\n /** Cible d'un `aria-labelledby` : une region se nomme par son titre. */\n readonly identifiant = input<string | null>(null);\n\n readonly tailleEffective = computed(() => this.taille() ?? TAILLE_PAR_NIVEAU[this.niveau()]);\n}\n","<ng-content />\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { REGION_VIVANTE_PARENTE } from '../noyau/jetons';\n\nexport type TailleDeSpinner = 'sm' | 'md' | 'lg';\nexport type TonDeSpinner = 'courant' | 'primaire' | 'inverse';\n\n/**\n * Indicateur d'activite indeterminee.\n *\n * ⚠️ Deux pieges tenus ici, et aucun des deux ne se voit en revue :\n *\n * 1. Il n'emploie AUCUNE duree de l'echelle de jetons. Sous\n * `prefers-reduced-motion`, `--st-duree-*` passe a zero : un spinner cable\n * dessus se figerait, et l'ecran passerait pour bloque. Il declare sa propre\n * duree et bascule en pulsation d'opacite, qui n'a pas de composante\n * vestibulaire.\n * 2. Il ne s'annonce que s'il n'est PAS deja dans une region vivante. Sinon le\n * lecteur d'ecran annonce deux fois le meme chargement.\n */\n@Component({\n selector: 'st-spinner',\n templateUrl: './st-spinner.html',\n styleUrl: './st-spinner.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-spinner',\n '[attr.data-taille]': 'taille()',\n '[attr.data-ton]': 'ton()',\n '[attr.role]': 'sAnnonce() ? \"status\" : null',\n '[attr.aria-label]': 'sAnnonce() ? etiquette() : null',\n },\n})\nexport class StSpinner {\n private readonly regionParente = inject(REGION_VIVANTE_PARENTE, { optional: true });\n\n readonly taille = input<TailleDeSpinner>('md');\n readonly ton = input<TonDeSpinner>('primaire');\n readonly etiquette = input('Chargement en cours');\n\n readonly sAnnonce = computed(() => this.regionParente === null);\n}\n","<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" focusable=\"false\">\n <circle class=\"st-spinner__piste\" cx=\"12\" cy=\"12\" r=\"10\" />\n <circle class=\"st-spinner__arc\" cx=\"12\" cy=\"12\" r=\"10\" />\n</svg>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type TonDeProgression = 'primaire' | 'succes' | 'danger';\n\n/**\n * Barre de progression, determinee ou indeterminee.\n *\n * ⚠️ Elle n'est JAMAIS placee dans une region vivante : `role=\"progressbar\"`\n * avec `aria-valuenow` est deja expose aux technologies d'assistance, et une\n * region vivante par-dessus ferait annoncer chaque pourcent.\n */\n@Component({\n selector: 'st-progress',\n templateUrl: './st-progress.html',\n styleUrl: './st-progress.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-progress',\n role: 'progressbar',\n '[attr.data-ton]': 'ton()',\n '[attr.data-indetermine]': 'estIndeterminee() ? \"\" : null',\n '[attr.aria-label]': 'etiquette()',\n '[attr.aria-valuemin]': '0',\n '[attr.aria-valuemax]': 'max()',\n '[attr.aria-valuenow]': 'valeurAnnoncee()',\n '[attr.aria-valuetext]': 'texteDeValeur()',\n '[style.--st-progress-part.%]': 'pourcentage()',\n },\n})\nexport class StProgress {\n /** `null` : progression indeterminee. */\n readonly valeur = input<number | null>(null);\n readonly max = input(100);\n\n /** Obligatoire : une barre sans nom accessible n'apprend rien. */\n readonly etiquette = input.required<string>();\n readonly ton = input<TonDeProgression>('primaire');\n\n /** Texte lu a la place du pourcentage quand celui-ci n'est pas parlant. */\n readonly texteDeValeur = input<string | null>(null);\n\n readonly estIndeterminee = computed(() => this.valeur() === null);\n\n /** Omis quand la progression est indeterminee : l'annoncer serait faux. */\n readonly valeurAnnoncee = computed(() => this.valeur());\n\n readonly pourcentage = computed(() => {\n const valeur = this.valeur();\n if (valeur === null) return 0;\n const max = this.max();\n if (max <= 0) return 0;\n // Borne : une valeur hors plage rendrait une barre plus large que sa piste.\n return Math.min(100, Math.max(0, (valeur / max) * 100));\n });\n}\n","<span class=\"st-progress__barre\"></span>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type VarianteDeSquelette = 'texte' | 'tableau' | 'carte';\n\n/**\n * Silhouette du contenu en cours de chargement.\n *\n * Entierement masque aux technologies d'assistance : c'est `stState` qui\n * annonce le chargement, une fois. Un squelette annonce ligne par ligne\n * noierait le lecteur d'ecran.\n *\n * Il doit reproduire la BOITE du contenu reel, sinon l'arrivee des donnees\n * fait sauter la mise en page.\n */\n@Component({\n selector: 'st-skeleton',\n templateUrl: './st-skeleton.html',\n styleUrl: './st-skeleton.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-skeleton',\n 'aria-hidden': 'true',\n '[attr.data-variante]': 'variante()',\n '[attr.data-anime]': 'anime() ? \"\" : null',\n },\n})\nexport class StSkeleton {\n readonly variante = input<VarianteDeSquelette>('texte');\n readonly lignes = input(3);\n readonly colonnes = input(4);\n readonly anime = input(true);\n\n readonly indicesDeLigne = computed(() =>\n Array.from({ length: Math.max(1, this.lignes()) }, (_, index) => index),\n );\n readonly indicesDeColonne = computed(() =>\n Array.from({ length: Math.max(1, this.colonnes()) }, (_, index) => index),\n );\n}\n","@switch (variante()) {\n @case ('tableau') {\n @for (ligne of indicesDeLigne(); track ligne) {\n <div class=\"st-skeleton__rangee\">\n @for (colonne of indicesDeColonne(); track colonne) {\n <span class=\"st-skeleton__cellule\"></span>\n }\n </div>\n }\n }\n @case ('carte') {\n <span class=\"st-skeleton__media\"></span>\n @for (ligne of indicesDeLigne(); track ligne) {\n <span class=\"st-skeleton__ligne\"></span>\n }\n }\n @default {\n @for (ligne of indicesDeLigne(); track ligne) {\n <span class=\"st-skeleton__ligne\"></span>\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n} from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport type { NomDIcone } from '../icone/noms-d-icone';\nimport { StSpinner } from '../etats/st-spinner';\n\nexport type VarianteDeBouton = 'primaire' | 'secondaire' | 'discret' | 'destructeur';\nexport type TailleDeBouton = 'sm' | 'md' | 'lg';\n\n/**\n * Bouton du socle, pose en ATTRIBUT sur un `<button>` natif.\n *\n * ⚠️ Pourquoi pas un element `<st-button>` qui enveloppe un bouton : l'enveloppe\n * casse `type=\"submit\"` (le bouton ne soumet plus le formulaire ancetre),\n * l'attribut `form` ne porte plus, et l'hote devient un second arret de\n * tabulation si quelqu'un lui pose un `tabindex`. Tout fonctionne en\n * demonstration et casse au premier formulaire reel.\n *\n * ⚠️ Pendant le chargement, le bouton porte `aria-disabled` et NON `disabled` :\n * l'attribut natif lui retire le focus, le lecteur d'ecran perd le controle\n * qu'il avait sous le doigt et retombe sur le corps du document. Les clics\n * sont interceptes par le composant.\n */\n@Component({\n selector: 'button[stButton]',\n templateUrl: './st-button.html',\n styleUrl: './st-button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon, StSpinner],\n host: {\n class: 'st-button',\n '[attr.data-variante]': 'variante()',\n '[attr.data-taille]': 'taille()',\n '[attr.data-pleine-largeur]': 'pleineLargeur() ? \"\" : null',\n '[attr.aria-disabled]': 'chargement() ? \"true\" : null',\n '[attr.aria-busy]': 'chargement() ? \"true\" : null',\n },\n})\nexport class StButton {\n readonly variante = input<VarianteDeBouton>('secondaire');\n readonly taille = input<TailleDeBouton>('md');\n readonly pleineLargeur = input(false);\n readonly iconeAvant = input<NomDIcone | null>(null);\n readonly iconeApres = input<NomDIcone | null>(null);\n\n /**\n * Action en cours. Tant qu'il vaut vrai, les clics sont avales : c'est le\n * mecanisme d'anti double soumission. L'appelant doit le lever DES la\n * soumission, pas a l'arrivee de la reponse.\n */\n readonly chargement = input(false);\n\n constructor() {\n const element = inject<ElementRef<HTMLButtonElement>>(ElementRef).nativeElement;\n const garde = (evenement: Event): void => {\n if (!this.chargement()) return;\n evenement.preventDefault();\n // `stopImmediatePropagation` et non `stopPropagation` : il faut barrer\n // aussi les autres ecouteurs poses sur le MEME element.\n evenement.stopImmediatePropagation();\n };\n\n // ⚠️ Pose a la construction, et non par `host: { '(click)': ... }`.\n // Sur un meme element, les ecouteurs s'executent dans l'ordre\n // d'ENREGISTREMENT, quelle que soit la phase. Un `(click)` ecrit par\n // l'appelant dans son gabarit serait enregistre avant l'ecouteur d'hote,\n // et la garde ne bloquerait rien. Le constructeur de la directive, lui,\n // s'execute avant que le gabarit parent ne lie ses ecouteurs.\n element.addEventListener('click', garde);\n inject(DestroyRef).onDestroy(() => {\n element.removeEventListener('click', garde);\n });\n }\n}\n","@if (chargement()) {\n <st-spinner taille=\"sm\" ton=\"inverse\" />\n} @else if (iconeAvant(); as icone) {\n <st-icon [nom]=\"icone\" taille=\"sm\" />\n}\n\n<span class=\"st-button__libelle\"><ng-content /></span>\n\n@if (!chargement() && iconeApres()) {\n <st-icon [nom]=\"iconeApres()!\" taille=\"sm\" />\n}\n","import { ChangeDetectionStrategy, Component, input, model } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport type { NomDIcone } from '../icone/noms-d-icone';\n\nexport type VarianteDeBoutonIcone = 'discret' | 'secondaire' | 'destructeur';\n\n/**\n * Bouton reduit a une icone, pose en attribut sur un `<button>` natif.\n *\n * L'etiquette est OBLIGATOIRE : une icone seule n'a pas de nom accessible, et\n * `title` n'en tient pas lieu — il n'apparait pas au toucher et n'est pas lu\n * de facon fiable.\n */\n@Component({\n selector: 'button[stIconButton]',\n templateUrl: './st-icon-button.html',\n styleUrl: './st-icon-button.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon],\n host: {\n class: 'st-icon-button',\n '[attr.data-variante]': 'variante()',\n '[attr.data-taille]': 'taille()',\n '[attr.aria-label]': 'etiquette()',\n '[attr.aria-pressed]': 'enfonce() === null ? null : enfonce()',\n },\n})\nexport class StIconButton {\n readonly icone = input.required<NomDIcone>();\n\n /** Nom accessible du controle. Sans lui, l'icone ne dit rien. */\n readonly etiquette = input.required<string>();\n\n readonly variante = input<VarianteDeBoutonIcone>('discret');\n readonly taille = input<'sm' | 'md'>('md');\n\n /** `null` : le bouton n'est pas a deux etats et n'annonce aucune pression. */\n readonly enfonce = model<boolean | null>(null);\n}\n","<st-icon [nom]=\"icone()\" [taille]=\"taille() === 'sm' ? 'sm' : 'md'\" />\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\n\nexport type VarianteDeLien = 'texte' | 'autonome' | 'discret';\n\n/**\n * Lien, pose en attribut sur un `<a>` natif.\n *\n * ⚠️ Un `<a>` sans `href` est interdit : il n'est ni focalisable ni annonce\n * comme lien. Une action qui ne navigue pas est un bouton.\n *\n * Les liens visites ne sont volontairement PAS distingues : sur une interface\n * bancaire, la couleur de visite laisse fuir l'historique de navigation a\n * quiconque regarde l'ecran.\n */\n@Component({\n selector: 'a[stLink]',\n templateUrl: './st-link.html',\n styleUrl: './st-link.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon],\n host: {\n class: 'st-link',\n '[attr.data-variante]': 'variante()',\n '[attr.target]': 'externe() ? \"_blank\" : null',\n '[attr.rel]': 'externe() ? \"noopener noreferrer\" : null',\n },\n})\nexport class StLink {\n readonly variante = input<VarianteDeLien>('texte');\n\n /** Ouvre dans un nouvel onglet, et l'annonce dans le nom accessible. */\n readonly externe = input(false);\n\n /** Mention lue par les lecteurs d'ecran quand le lien sort du site. */\n readonly mentionExterne = input('(nouvelle fenetre)');\n}\n","<ng-content />\n@if (externe()) {\n <st-icon nom=\"lien-externe\" taille=\"xs\" />\n <span class=\"st-vh\">{{ mentionExterne() }}</span>\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n/**\n * Regroupe des actions liees.\n *\n * ⚠️ `role=\"group\"` et NON `role=\"toolbar\"` : une barre d'outils exige un\n * `tabindex` glissant et la navigation par fleches. Annoncer « barre d'outils »\n * sans en fournir le comportement desoriente plus qu'un groupe simple. Le\n * motif complet viendra avec les primitives d'`@angular/aria`.\n */\n@Component({\n selector: 'st-button-group',\n templateUrl: './st-button-group.html',\n styleUrl: './st-button-group.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-button-group',\n role: 'group',\n '[attr.aria-label]': 'etiquette()',\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-attache]': 'attache() ? \"\" : null',\n },\n})\nexport class StButtonGroup {\n /** Nom du groupe : sans lui, le regroupement n'apprend rien a l'oral. */\n readonly etiquette = input.required<string>();\n\n readonly orientation = input<'horizontale' | 'verticale'>('horizontale');\n\n /** Boutons jointifs, rayons fusionnes. */\n readonly attache = input(false);\n}\n","<ng-content />\n","import { DOCUMENT } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { StIconButton } from '../actions/st-icon-button';\n\n/**\n * Valeur technique courte et copiable : identifiant de trace, reference\n * d'operation, code d'erreur.\n *\n * ⚠️ La confirmation de copie passe par une petite region vivante interne, et\n * le LIBELLE DU BOUTON NE CHANGE PAS. Remplacer « Copier » par « Copie » ferait\n * changer le nom accessible du controle que l'utilisateur a sous le doigt :\n * le lecteur d'ecran annonce alors un autre bouton que celui qu'il croyait.\n */\n@Component({\n selector: 'st-code',\n templateUrl: './st-code.html',\n styleUrl: './st-code.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIconButton],\n host: { class: 'st-code' },\n})\nexport class StCode {\n private readonly document = inject(DOCUMENT);\n private readonly destruction = inject(DestroyRef);\n\n readonly valeur = input.required<string>();\n readonly etiquette = input('Identifiant de trace');\n readonly copiable = input(true);\n readonly libelleCopier = input('Copier');\n readonly messageDeConfirmation = input('Copie');\n\n readonly copie = output<string>();\n\n private readonly confirmation = signal('');\n private minuterie: ReturnType<typeof setTimeout> | null = null;\n\n readonly texteDeConfirmation = this.confirmation.asReadonly();\n\n /**\n * Le bouton n'apparait que si le navigateur sait copier. Sans presse-papiers,\n * un bouton qui ne fait rien vaut moins que la selection manuelle, que la\n * feuille garde possible (`user-select: all`).\n */\n readonly copiePossible = computed(() => {\n if (!this.copiable()) return false;\n const fenetre = this.document.defaultView;\n return fenetre?.navigator.clipboard !== undefined;\n });\n\n protected async auClicDeCopie(): Promise<void> {\n const presse = this.document.defaultView?.navigator.clipboard;\n if (presse === undefined) return;\n\n try {\n await presse.writeText(this.valeur());\n } catch {\n // Le refus du presse-papiers n'est pas une erreur applicative : la\n // valeur reste selectionnable a la main.\n return;\n }\n\n this.copie.emit(this.valeur());\n this.confirmation.set(this.messageDeConfirmation());\n\n if (this.minuterie !== null) clearTimeout(this.minuterie);\n this.minuterie = setTimeout(() => {\n this.confirmation.set('');\n this.minuterie = null;\n }, 3000);\n\n this.destruction.onDestroy(() => {\n if (this.minuterie !== null) clearTimeout(this.minuterie);\n });\n }\n}\n","<code [attr.aria-label]=\"etiquette() + ' ' + valeur()\">{{ valeur() }}</code>\n\n@if (copiePossible()) {\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content --\n Le contenu vient du gabarit de stIconButton. Le nom accessible est\n impose par le type (`etiquette` est requis) et verifie par axe. -->\n <button\n stIconButton\n type=\"button\"\n icone=\"copie\"\n taille=\"sm\"\n [etiquette]=\"libelleCopier()\"\n (click)=\"auClicDeCopie()\"\n ></button>\n}\n\n<span class=\"st-vh\" aria-live=\"polite\">{{ texteDeConfirmation() }}</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n computed,\n inject,\n input,\n model,\n output,\n signal,\n} from '@angular/core';\nimport {\n formaterIban,\n masquerCarte,\n masquerIban,\n masquerTelephone,\n quatreDerniers,\n} from '@starterlib/util';\nimport { StIconButton } from '../actions/st-icon-button';\n\nexport type TypeMasque = 'iban' | 'carte' | 'telephone';\n\nconst LIBELLE_DU_TYPE: Readonly<Record<TypeMasque, string>> = {\n iban: 'IBAN',\n carte: 'carte',\n telephone: 'numero',\n};\n\n/**\n * Identifiant sensible, masque par defaut.\n *\n * ⚠️ La valeur masquee porte un `aria-label` en toutes lettres (« IBAN se\n * terminant par 2606 ») : plusieurs lecteurs d'ecran epellent une suite de\n * puces caractere par caractere, ce qui est a la fois illisible et interminable.\n *\n * La revelation est un EVENEMENT METIER : elle se journalise cote appelant par\n * la sortie `revelation`. La valeur revelee, elle, ne part jamais dans un\n * journal.\n */\n@Component({\n selector: 'st-masked',\n templateUrl: './st-masked.html',\n styleUrl: './st-masked.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIconButton],\n host: { class: 'st-masked', '[attr.data-type]': 'type()' },\n})\nexport class StMasked {\n private readonly destruction = inject(DestroyRef);\n\n readonly valeur = input.required<string>();\n readonly type = input<TypeMasque>('iban');\n\n readonly revele = model(false);\n readonly revelationAutorisee = input(false);\n readonly dureeDeRevelationEnSecondes = input(30);\n\n readonly libelleAfficher = input('Afficher');\n readonly libelleMasquer = input('Masquer');\n\n readonly revelation = output<{ type: TypeMasque }>();\n\n private readonly annonce = signal('');\n readonly texteDAnnonce = this.annonce.asReadonly();\n\n private minuterie: ReturnType<typeof setTimeout> | null = null;\n\n readonly valeurMasquee = computed(() => {\n const valeur = this.valeur();\n switch (this.type()) {\n case 'carte':\n return masquerCarte(valeur);\n case 'telephone':\n return masquerTelephone(valeur);\n default:\n return masquerIban(valeur);\n }\n });\n\n readonly valeurAffichee = computed(() =>\n this.revele() ? this.valeurLisible() : this.valeurMasquee(),\n );\n\n readonly nomAccessible = computed(() => {\n const nature = LIBELLE_DU_TYPE[this.type()];\n if (this.revele()) return `${nature} ${this.valeurLisible()}`;\n return `${nature} se terminant par ${quatreDerniers(this.valeur())}`;\n });\n\n readonly libelleDuBouton = computed(() =>\n this.revele() ? this.libelleMasquer() : this.libelleAfficher(),\n );\n\n private valeurLisible(): string {\n return this.type() === 'iban' ? formaterIban(this.valeur()) : this.valeur();\n }\n\n protected basculer(): void {\n if (this.revele()) {\n this.masquer();\n return;\n }\n\n this.revele.set(true);\n this.revelation.emit({ type: this.type() });\n this.annonce.set('');\n\n // Re-masquage automatique : une valeur revelee puis oubliee a l'ecran est\n // lisible par quiconque passe derriere.\n if (this.minuterie !== null) clearTimeout(this.minuterie);\n this.minuterie = setTimeout(() => {\n this.masquer();\n }, this.dureeDeRevelationEnSecondes() * 1000);\n\n this.destruction.onDestroy(() => {\n if (this.minuterie !== null) clearTimeout(this.minuterie);\n });\n }\n\n private masquer(): void {\n if (this.minuterie !== null) {\n clearTimeout(this.minuterie);\n this.minuterie = null;\n }\n if (!this.revele()) return;\n this.revele.set(false);\n this.annonce.set('Valeur masquee a nouveau');\n }\n}\n","<span class=\"st-masked__valeur\" [attr.aria-label]=\"nomAccessible()\">{{ valeurAffichee() }}</span>\n\n@if (revelationAutorisee()) {\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content --\n Le contenu vient du gabarit de stIconButton. Le nom accessible est\n impose par le type (`etiquette` est requis) et verifie par axe. -->\n <button\n stIconButton\n type=\"button\"\n taille=\"sm\"\n [icone]=\"revele() ? 'oeil-barre' : 'oeil'\"\n [etiquette]=\"libelleDuBouton()\"\n [enfonce]=\"revele()\"\n (click)=\"basculer()\"\n ></button>\n}\n\n<span class=\"st-vh\" aria-live=\"polite\">{{ texteDAnnonce() }}</span>\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { formaterMontant, type Montant } from '@starterlib/util';\n\n/**\n * Somme d'argent.\n *\n * Le montant entre sous forme d'unites mineures entieres : un nombre a virgule\n * flottante ne represente pas exactement 0,10 EUR, et les erreurs s'accumulent.\n * La conversion n'a lieu qu'a l'instant du rendu.\n *\n * ⚠️ Le signe negatif est TOUJOURS rendu en texte. La couleur ne fait que le\n * renforcer : un daltonien, une impression en noir et blanc ou un theme a fort\n * contraste ne doivent jamais transformer un debit en credit.\n */\n@Component({\n selector: 'st-money',\n templateUrl: './st-money.html',\n styleUrl: './st-money.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-money',\n '[attr.data-taille]': 'taille()',\n '[attr.data-signe]': 'signe()',\n },\n})\nexport class StMoney {\n private readonly locale = inject(LOCALE_ID);\n\n readonly valeur = input.required<Montant>();\n readonly signeExplicite = input(false);\n readonly sansDevise = input(false);\n readonly taille = input<'sm' | 'md' | 'lg' | 'xl'>('md');\n\n readonly signe = computed(() => {\n const unites = this.valeur().unitesMineures;\n if (unites < 0n) return 'negatif';\n if (unites > 0n) return 'positif';\n return 'nul';\n });\n\n readonly texte = computed(() =>\n formaterMontant(this.valeur(), {\n locale: this.locale,\n signeExplicite: this.signeExplicite(),\n sansDevise: this.sansDevise(),\n }),\n );\n}\n","{{ texte() }}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n computed,\n inject,\n input,\n} from '@angular/core';\nimport { FUSEAU_PAR_DEFAUT } from '../noyau/jetons';\n\nexport type FormatDeDate = 'court' | 'long' | 'date-heure' | 'heure';\n\nconst OPTIONS: Readonly<Record<FormatDeDate, Intl.DateTimeFormatOptions>> = {\n court: { day: '2-digit', month: '2-digit', year: 'numeric' },\n long: { day: 'numeric', month: 'long', year: 'numeric' },\n 'date-heure': {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n },\n heure: { hour: '2-digit', minute: '2-digit' },\n};\n\n/**\n * Date rendue dans la locale et le fuseau de l'application.\n *\n * ⚠️ La locale et le fuseau sont EXPLICITES, jamais deduits de l'environnement\n * d'execution. Un rendu serveur et un rendu navigateur qui ne s'accordent pas\n * produisent deux textes differents, et l'hydratation casse. Le rendu serveur\n * est ecarte en version 1, mais la compatibilite reste gardee a cout nul.\n *\n * Le format court garde un nom accessible en toutes lettres : « 12/09/26 » est\n * ambigu a l'oral, et l'ordre jour-mois n'est pas universel.\n */\n@Component({\n selector: 'st-date',\n templateUrl: './st-date.html',\n styleUrl: './st-date.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'st-date' },\n})\nexport class StDate {\n private readonly locale = inject(LOCALE_ID);\n private readonly fuseauParDefaut = inject(FUSEAU_PAR_DEFAUT);\n\n readonly valeur = input.required<Date | string>();\n readonly format = input<FormatDeDate>('court');\n readonly fuseau = input<string | null>(null);\n\n private readonly date = computed(() => {\n const valeur = this.valeur();\n return valeur instanceof Date ? valeur : new Date(valeur);\n });\n\n readonly estValide = computed(() => !Number.isNaN(this.date().getTime()));\n\n readonly iso = computed(() => (this.estValide() ? this.date().toISOString() : null));\n\n readonly texte = computed(() => {\n if (!this.estValide()) return '';\n return new Intl.DateTimeFormat(this.locale, {\n ...OPTIONS[this.format()],\n timeZone: this.fuseau() ?? this.fuseauParDefaut,\n }).format(this.date());\n });\n\n /** Forme longue, lue par les technologies d'assistance. */\n readonly texteAccessible = computed(() => {\n if (!this.estValide()) return '';\n if (this.format() === 'court') {\n return new Intl.DateTimeFormat(this.locale, {\n ...OPTIONS.long,\n timeZone: this.fuseau() ?? this.fuseauParDefaut,\n }).format(this.date());\n }\n return null;\n });\n}\n","@if (estValide()) {\n <time [attr.datetime]=\"iso()\" [attr.aria-label]=\"texteAccessible()\">{{ texte() }}</time>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n LOCALE_ID,\n afterNextRender,\n computed,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { FUSEAU_PAR_DEFAUT } from '../noyau/jetons';\n\nconst MINUTE = 60_000;\nconst HEURE = 60 * MINUTE;\nconst JOUR = 24 * HEURE;\n\n/**\n * Temps ecoule, exprime relativement (« il y a 5 minutes »).\n *\n * ⚠️ Ce composant ne doit JAMAIS etre place dans une region vivante : son texte\n * se reecrit tout seul, et une region vivante le ferait annoncer en boucle.\n * Son nom accessible porte la date absolue, qui elle ne bouge pas.\n *\n * La cadence de rafraichissement s'adapte : rafraichir chaque seconde une date\n * vieille de trois jours reveille l'onglet pour rien.\n */\n@Component({\n selector: 'st-relative-time',\n templateUrl: './st-relative-time.html',\n styleUrl: './st-relative-time.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'st-relative-time' },\n})\nexport class StRelativeTime {\n private readonly locale = inject(LOCALE_ID);\n private readonly fuseau = inject(FUSEAU_PAR_DEFAUT);\n\n readonly valeur = input.required<Date | string>();\n readonly rafraichir = input(true);\n\n /** Au-dela de ce nombre de jours, la date absolue est plus parlante. */\n readonly seuilAbsoluEnJours = input(7);\n\n private readonly destruction = inject(DestroyRef);\n private readonly maintenant = signal(Date.now());\n\n constructor() {\n // `afterNextRender` : aucune minuterie ne demarre a la construction, ce qui\n // garde le composant compatible avec un rendu serveur.\n afterNextRender(() => {\n if (!this.rafraichir()) return;\n let minuterie: ReturnType<typeof setTimeout>;\n\n const planifier = (): void => {\n const ecart = Math.abs(Date.now() - this.dateEnMillisecondes());\n // Sous une minute, la valeur bouge vite ; au-dela, une fois par minute\n // suffit et l'onglet se rendort.\n const cadence = ecart < MINUTE ? 10_000 : MINUTE;\n minuterie = setTimeout(() => {\n this.maintenant.set(Date.now());\n planifier();\n }, cadence);\n };\n\n planifier();\n this.destruction.onDestroy(() => {\n clearTimeout(minuterie);\n });\n });\n }\n\n private dateEnMillisecondes(): number {\n const valeur = this.valeur();\n return (valeur instanceof Date ? valeur : new Date(valeur)).getTime();\n }\n\n readonly estValide = computed(() => !Number.isNaN(this.dateEnMillisecondes()));\n\n readonly iso = computed(() =>\n this.estValide() ? new Date(this.dateEnMillisecondes()).toISOString() : null,\n );\n\n readonly depasseLeSeuil = computed(() => {\n const ecart = Math.abs(this.maintenant() - this.dateEnMillisecondes());\n return ecart > this.seuilAbsoluEnJours() * JOUR;\n });\n\n readonly texte = computed(() => {\n if (!this.estValide()) return '';\n\n const cible = this.dateEnMillisecondes();\n if (this.depasseLeSeuil()) {\n return new Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n timeZone: this.fuseau,\n }).format(new Date(cible));\n }\n\n const ecart = cible - this.maintenant();\n const absolu = Math.abs(ecart);\n\n // Sous dix secondes, « il y a 0 seconde » est plus deroutant qu'utile.\n if (absolu < 10_000) return \"a l'instant\";\n\n const format = new Intl.RelativeTimeFormat(this.locale, { numeric: 'auto' });\n if (absolu < MINUTE) return format.format(Math.round(ecart / 1000), 'second');\n if (absolu < HEURE) return format.format(Math.round(ecart / MINUTE), 'minute');\n if (absolu < JOUR) return format.format(Math.round(ecart / HEURE), 'hour');\n return format.format(Math.round(ecart / JOUR), 'day');\n });\n\n readonly texteAccessible = computed(() => {\n if (!this.estValide()) return '';\n return new Intl.DateTimeFormat(this.locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n hour: '2-digit',\n minute: '2-digit',\n timeZone: this.fuseau,\n }).format(new Date(this.dateEnMillisecondes()));\n });\n}\n","@if (estValide()) {\n <time [attr.datetime]=\"iso()\" [attr.aria-label]=\"texteAccessible()\">{{ texte() }}</time>\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n LOCALE_ID,\n computed,\n inject,\n input,\n} from '@angular/core';\n\n/**\n * Nombre dans le flux du texte.\n *\n * Distinct de `st-badge`, qui est une pastille superposee a un autre element.\n *\n * ⚠️ Quand la valeur est abregee (« 1,2 k »), le nom accessible porte le nombre\n * COMPLET : l'abreviation est une commodite visuelle, pas une perte\n * d'information pour qui ecoute la page.\n */\n@Component({\n selector: 'st-count',\n templateUrl: './st-count.html',\n styleUrl: './st-count.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-count',\n '[attr.data-ton]': 'ton()',\n '[attr.aria-label]': 'estAbrege() ? texteComplet() : null',\n },\n})\nexport class StCount {\n private readonly locale = inject(LOCALE_ID);\n\n readonly valeur = input.required<number>();\n readonly ton = input<'courant' | 'discret'>('courant');\n\n /** `null` : jamais d'abreviation. */\n readonly abregerAuDela = input<number | null>(1000);\n\n readonly estAbrege = computed(() => {\n const seuil = this.abregerAuDela();\n return seuil !== null && Math.abs(this.valeur()) >= seuil;\n });\n\n readonly texteComplet = computed(() => new Intl.NumberFormat(this.locale).format(this.valeur()));\n\n readonly texte = computed(() => {\n if (!this.estAbrege()) return this.texteComplet();\n return new Intl.NumberFormat(this.locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(this.valeur());\n });\n}\n","{{ texte() }}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport type { NomDIcone } from '../icone/noms-d-icone';\n\nexport type TonDeStatut = 'neutre' | 'info' | 'succes' | 'avertissement' | 'danger';\n\n/**\n * Pastille de statut.\n *\n * ⚠️ Le libelle ET l'icone sont OBLIGATOIRES, et l'icone doit differer par sa\n * FORME d'un ton a l'autre (coche, triangle, croix, cercle). Un statut porte\n * par la seule couleur est illisible pour une personne daltonienne, a\n * l'impression, et sous un theme a fort contraste.\n *\n * ⚠️ Aucun role ARIA, malgre le nom du composant : `role=\"status\"` en ferait\n * une region vivante, et une liste de vingt lignes ferait annoncer vingt\n * statuts a chaque rendu.\n */\n@Component({\n selector: 'st-status-pill',\n templateUrl: './st-status-pill.html',\n styleUrl: './st-status-pill.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon],\n host: {\n class: 'st-status-pill',\n '[attr.data-ton]': 'ton()',\n '[attr.data-statut]': 'statut()',\n },\n})\nexport class StStatusPill {\n /** Code machine du statut : sert aux tests et aux selecteurs, jamais a l'affichage. */\n readonly statut = input.required<string>();\n\n /** Texte deja traduit par l'appelant : le socle ne traduit rien. */\n readonly libelle = input.required<string>();\n\n readonly icone = input.required<NomDIcone>();\n readonly ton = input<TonDeStatut>('neutre');\n}\n","<st-icon [nom]=\"icone()\" taille=\"sm\" />\n<span class=\"st-status-pill__libelle\">{{ libelle() }}</span>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type TonDeBadge = 'neutre' | 'primaire' | 'succes' | 'avertissement' | 'danger';\n\n/**\n * Pastille de comptage superposee a un autre element.\n *\n * ⚠️ Elle est TOUJOURS `aria-hidden`. Un « 5 » flottant, lu hors contexte,\n * n'apprend rien. Le compte doit entrer dans le nom accessible de l'element\n * porteur : « Notifications, 5 non lues », compose par l'appelant.\n *\n * L'element porteur doit declarer la classe `st-badge-ancre`.\n */\n@Component({\n selector: 'st-badge',\n templateUrl: './st-badge.html',\n styleUrl: './st-badge.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-badge',\n 'aria-hidden': 'true',\n '[attr.data-ton]': 'ton()',\n '[attr.data-point]': 'point() ? \"\" : null',\n },\n})\nexport class StBadge {\n readonly valeur = input<number | string | null>(null);\n readonly max = input(99);\n readonly ton = input<TonDeBadge>('danger');\n\n /** Point seul, sans chiffre : signale une nouveaute sans la quantifier. */\n readonly point = input(false);\n\n readonly texte = computed(() => {\n if (this.point()) return '';\n const valeur = this.valeur();\n if (valeur === null) return '';\n if (typeof valeur === 'string') return valeur;\n return valeur > this.max() ? `${this.max().toString()}+` : valeur.toString();\n });\n}\n","{{ texte() }}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n computed,\n inject,\n input,\n output,\n} from '@angular/core';\nimport { StIconButton } from '../actions/st-icon-button';\n\n/**\n * Etiquette, eventuellement retirable.\n *\n * ⚠️ Le retrait DEPLACE LE FOCUS avant de s'annoncer. Sans cela, le bouton\n * disparait sous le doigt de l'utilisateur clavier, le focus retombe sur le\n * corps du document, et la navigation repart du haut de la page. C'est l'un\n * des defauts d'accessibilite les plus frequents des listes d'etiquettes.\n */\n@Component({\n selector: 'st-tag',\n templateUrl: './st-tag.html',\n styleUrl: './st-tag.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIconButton],\n host: {\n class: 'st-tag',\n '[attr.data-ton]': 'ton()',\n },\n})\nexport class StTag {\n private readonly element = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly libelle = input.required<string>();\n readonly supprimable = input(false);\n readonly ton = input<'neutre' | 'primaire'>('neutre');\n readonly prefixeDeSuppression = input('Retirer');\n\n readonly supprime = output();\n\n readonly libelleDeSuppression = computed(\n () => `${this.prefixeDeSuppression()} ${this.libelle()}`,\n );\n\n protected auRetrait(): void {\n this.deplacerLeFocus();\n this.supprime.emit();\n }\n\n /**\n * Cible, dans l'ordre : le bouton de l'etiquette suivante, celui de la\n * precedente, puis le conteneur s'il est focalisable par script.\n */\n private deplacerLeFocus(): void {\n const hote = this.element.nativeElement;\n const suivant = hote.nextElementSibling?.querySelector('button');\n if (suivant instanceof HTMLElement) {\n suivant.focus();\n return;\n }\n const precedent = hote.previousElementSibling?.querySelector('button');\n if (precedent instanceof HTMLElement) {\n precedent.focus();\n return;\n }\n const parent = hote.parentElement;\n if (parent?.hasAttribute('tabindex') === true) parent.focus();\n }\n}\n","<span class=\"st-tag__libelle\">{{ libelle() }}</span>\n\n@if (supprimable()) {\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content --\n Le contenu vient du gabarit de stIconButton. Le nom accessible est\n impose par le type (`etiquette` est requis) et verifie par axe. -->\n <button\n stIconButton\n type=\"button\"\n icone=\"croix\"\n taille=\"sm\"\n [etiquette]=\"libelleDeSuppression()\"\n (click)=\"auRetrait()\"\n ></button>\n}\n","import { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\n\n/**\n * Premier grapheme d'un mot. Ni `mot[0]` ni `[...mot][0]` ne conviennent : le\n * premier rend une demi-paire de substitution, le second casse les emoji\n * composes et les lettres a marque combinante.\n */\nfunction premierGrapheme(mot: string): string {\n const segmenteur = new Intl.Segmenter(undefined, { granularity: 'grapheme' });\n for (const { segment } of segmenteur.segment(mot)) return segment;\n return '';\n}\n\n/**\n * Representation d'une personne.\n *\n * ⚠️ Aucune couleur derivee d'un hachage du nom. Une palette engendree a\n * l'execution n'offre AUCUNE garantie de contraste, ce qui annulerait la\n * verification des paires semantiques : un nom malchanceux produirait un\n * avatar illisible, et aucun test ne le verrait.\n */\n@Component({\n selector: 'st-avatar',\n templateUrl: './st-avatar.html',\n styleUrl: './st-avatar.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'st-avatar',\n '[attr.data-taille]': 'taille()',\n '[attr.data-forme]': 'forme()',\n },\n})\nexport class StAvatar {\n readonly nom = input.required<string>();\n readonly sourceImage = input<string | null>(null);\n readonly taille = input<'xs' | 'sm' | 'md' | 'lg'>('md');\n readonly forme = input<'cercle' | 'carre'>('cercle');\n\n /**\n * `true` quand le nom figure deja a cote de l'avatar, ce qui est le cas\n * courant : l'avatar devient alors decoratif et se tait.\n */\n readonly nomAdjacent = input(true);\n\n private readonly imageEchouee = signal(false);\n\n readonly afficheLImage = computed(() => this.sourceImage() !== null && !this.imageEchouee());\n\n readonly initiales = computed(() =>\n this.nom()\n .trim()\n .split(/\\s+/)\n .slice(0, 2)\n .map((mot) => premierGrapheme(mot))\n .join('')\n .toUpperCase(),\n );\n\n /** Vide quand le nom est deja lisible a cote : eviter la double lecture. */\n readonly texteAlternatif = computed(() => (this.nomAdjacent() ? '' : this.nom()));\n\n protected auxEchecsDImage(): void {\n this.imageEchouee.set(true);\n }\n}\n","@if (afficheLImage()) {\n <!-- eslint-disable-next-line @angular-eslint/template/prefer-ngsrc --\n NgOptimizedImage exige des dimensions statiques ou un chargeur configure.\n Une photo de profil vient d'une URL tierce de dimensions inconnues, et\n optimiser une image de 40 px ne rapporte rien. -->\n <img [src]=\"sourceImage()\" [alt]=\"texteAlternatif()\" (error)=\"auxEchecsDImage()\" />\n} @else {\n <span class=\"st-avatar__initiales\" [attr.aria-hidden]=\"nomAdjacent() ? 'true' : null\">{{\n initiales()\n }}</span>\n @if (!nomAdjacent()) {\n <span class=\"st-vh\">{{ nom() }}</span>\n }\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport type { NomDIcone } from '../icone/noms-d-icone';\nimport { StHeading, type NiveauDeTitre } from '../texte/st-heading';\nimport { StText } from '../texte/st-text';\n\n/**\n * Etat vide : il n'y a rien a montrer, et ce n'est pas une erreur.\n *\n * Le niveau du titre est fourni par l'APPELANT : un bloc vide place au milieu\n * d'une page ne connait pas sa profondeur dans le document, et un niveau devine\n * casserait la table des matieres que les lecteurs d'ecran construisent.\n */\n@Component({\n selector: 'st-empty',\n templateUrl: './st-empty.html',\n styleUrl: './st-empty.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon, StHeading, StText],\n host: { class: 'st-empty' },\n})\nexport class StEmpty {\n readonly titre = input.required<string>();\n readonly description = input<string | null>(null);\n readonly icone = input<NomDIcone>('boite-vide');\n readonly niveauDuTitre = input<NiveauDeTitre>(3);\n}\n","<st-icon [nom]=\"icone()\" taille=\"xl\" ton=\"discret\" />\n<st-heading [niveau]=\"niveauDuTitre()\" taille=\"lg\">{{ titre() }}</st-heading>\n@if (description(); as texte) {\n <st-text variante=\"discret\">{{ texte }}</st-text>\n}\n<div class=\"st-empty__action\"><ng-content /></div>\n","import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport type { NomDIcone } from '../icone/noms-d-icone';\nimport { StHeading, type NiveauDeTitre } from '../texte/st-heading';\nimport { StText } from '../texte/st-text';\nimport { StButton } from '../actions/st-button';\nimport { StCode } from '../donnees/st-code';\nimport { REGION_VIVANTE_PARENTE } from '../noyau/jetons';\n\nexport type VarianteDErreur = 'hors-ligne' | 'serveur' | 'client';\n\nconst ICONE: Readonly<Record<VarianteDErreur, NomDIcone>> = {\n 'hors-ligne': 'hors-ligne',\n serveur: 'serveur',\n client: 'triangle-alerte',\n};\n\n/**\n * Etat d'erreur d'un bloc.\n *\n * ⚠️ `titre` et `message` sont deja TRADUITS par l'appelant. Le socle backend\n * n'emet jamais de phrase destinee a l'utilisateur : il rend un code stable, et\n * la traduction appartient au client. Le `code` est affiche comme donnee\n * technique, jamais comme explication.\n *\n * ⚠️ `role=\"alert\"` seulement hors d'une region vivante existante : c'est le\n * seul etat assertif du systeme, et il ne doit pas doubler l'annonce de\n * `st-state`.\n */\n@Component({\n selector: 'st-error',\n templateUrl: './st-error.html',\n styleUrl: './st-error.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon, StHeading, StText, StButton, StCode],\n host: {\n class: 'st-error',\n '[attr.data-variante]': 'variante()',\n '[attr.role]': 'sAnnonce() ? \"alert\" : null',\n },\n})\nexport class StError {\n private readonly regionParente = inject(REGION_VIVANTE_PARENTE, { optional: true });\n\n readonly variante = input<VarianteDErreur>('serveur');\n\n /** Code machine stable, tel que rendu par le backend. */\n readonly code = input.required<string>();\n\n readonly titre = input.required<string>();\n readonly message = input.required<string>();\n readonly traceId = input<string | null>(null);\n readonly niveauDuTitre = input<NiveauDeTitre>(3);\n\n readonly rejouable = input(true);\n readonly libelleRejeu = input('Reessayer');\n readonly rejeuEnCours = input(false);\n readonly etiquetteDeTrace = input('Identifiant de trace');\n\n readonly rejeu = output();\n\n readonly icone = computed(() => ICONE[this.variante()]);\n readonly sAnnonce = computed(() => this.regionParente === null);\n}\n","<st-icon [nom]=\"icone()\" taille=\"lg\" />\n\n<div class=\"st-error__corps\">\n <st-heading [niveau]=\"niveauDuTitre()\" taille=\"lg\">{{ titre() }}</st-heading>\n <st-text variante=\"corps-sm\">{{ message() }}</st-text>\n\n <p class=\"st-error__technique\">\n <st-code [valeur]=\"code()\" etiquette=\"Code\" [copiable]=\"false\" />\n @if (traceId(); as trace) {\n <st-code [valeur]=\"trace\" [etiquette]=\"etiquetteDeTrace()\" />\n }\n </p>\n\n @if (rejouable()) {\n <button\n stButton\n type=\"button\"\n variante=\"secondaire\"\n [chargement]=\"rejeuEnCours()\"\n (click)=\"rejeu.emit()\"\n >\n {{ libelleRejeu() }}\n </button>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { StIcon } from '../icone/st-icon';\nimport { StButton } from '../actions/st-button';\n\n/**\n * Banniere de perte de connexion.\n *\n * ⚠️ `role=\"status\"` (poli) et NON `role=\"alert\"`. Une perte de reseau n'est\n * pas actionnable dans la seconde ; une annonce assertive interromprait une\n * saisie en cours. La banniere est persistante, elle sera lue.\n *\n * ⚠️ Aucun bouton de fermeture : l'utilisateur ne peut pas fermer un fait.\n *\n * ⚠️ `sticky` et non `fixed` : a 200 % d'echelle, un element fixe recouvre le\n * contenu qu'il annonce.\n */\n@Component({\n selector: 'st-offline-banner',\n templateUrl: './st-offline-banner.html',\n styleUrl: './st-offline-banner.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [StIcon, StButton],\n host: {\n class: 'st-offline-banner',\n role: 'status',\n },\n})\nexport class StOfflineBanner {\n readonly message = input.required<string>();\n readonly libelleRejeu = input<string | null>(null);\n readonly rejeuEnCours = input(false);\n readonly rejeu = output();\n}\n","<st-icon nom=\"hors-ligne\" taille=\"sm\" />\n<span class=\"st-offline-banner__message\">{{ message() }}</span>\n\n@if (libelleRejeu(); as libelle) {\n <button\n stButton\n type=\"button\"\n variante=\"discret\"\n taille=\"sm\"\n [chargement]=\"rejeuEnCours()\"\n (click)=\"rejeu.emit()\"\n >\n {{ libelle }}\n </button>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, isDevMode } from '@angular/core';\nimport type { TemplateRef } from '@angular/core';\nimport { REGION_VIVANTE_PARENTE } from '../noyau/jetons';\nimport type { EtatDeBloc } from '../noyau/etat';\nimport { StSkeleton, type VarianteDeSquelette } from './st-skeleton';\nimport { StSpinner } from './st-spinner';\n\nconst ANNONCES_PAR_DEFAUT: Readonly<Record<EtatDeBloc, string>> = {\n chargement: 'Chargement en cours',\n erreur: 'Une erreur est survenue',\n vide: 'Aucun resultat',\n 'hors-ligne': 'Hors connexion',\n succes: '',\n};\n\n/**\n * Impose les cinq etats a un bloc qui consomme l'API, et centralise leur\n * annonce.\n *\n * ⚠️ L'hote ne porte PAS `role=\"status\"`, contrairement a ce qu'on attendrait :\n * un remplacement de contenu A L'INTERIEUR d'une region vivante fait relire\n * tout le sous-arbre par le lecteur d'ecran a chaque bascule d'etat. Seule une\n * petite zone masquee porte l'annonce, qui tient en quelques mots. L'hote se\n * contente d'`aria-busy`.\n *\n * Il fournit `REGION_VIVANTE_PARENTE` : les composants qu'il rend (indicateur\n * de chargement, erreur) detectent sa presence et se taisent, au lieu\n * d'annoncer une deuxieme fois le meme fait.\n */\n@Component({\n selector: 'st-state',\n templateUrl: './st-state.html',\n styleUrl: './st-state.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet, StSkeleton, StSpinner],\n providers: [{ provide: REGION_VIVANTE_PARENTE, useValue: true }],\n host: {\n class: 'st-state',\n '[attr.data-etat]': 'etat()',\n '[attr.aria-busy]': 'etat() === \"chargement\" ? \"true\" : null',\n },\n})\nexport class StState {\n readonly etat = input.required<EtatDeBloc>();\n\n /** Le chemin nominal. Obligatoire : un bloc sans succes n'a pas de raison d'etre. */\n readonly succes = input.required<TemplateRef<unknown>>();\n\n readonly chargement = input<TemplateRef<unknown> | null>(null);\n readonly erreur = input<TemplateRef<unknown> | null>(null);\n readonly vide = input<TemplateRef<unknown> | null>(null);\n readonly horsLigne = input<TemplateRef<unknown> | null>(null);\n\n /** Silhouette par defaut du chargement. `null` : un indicateur tournant. */\n readonly squelette = input<VarianteDeSquelette | null>('texte');\n readonly lignesDeSquelette = input(3);\n\n readonly annonces = input<Readonly<Record<EtatDeBloc, string>>>(ANNONCES_PAR_DEFAUT);\n\n readonly annonce = computed(() => this.annonces()[this.etat()]);\n\n /**\n * Les etats degrades n'ont pas de rendu par defaut : afficher un texte\n * generique a la place d'un vrai ecran vide ou d'une vraie erreur donnerait\n * l'illusion que les cinq etats sont traites. Il vaut mieux que le manque se\n * voie, en developpement.\n */\n readonly gabaritDeLEtat = computed(() => {\n switch (this.etat()) {\n case 'erreur':\n return this.signalerSiAbsent(this.erreur(), 'erreur');\n case 'vide':\n return this.signalerSiAbsent(this.vide(), 'vide');\n case 'hors-ligne':\n return this.signalerSiAbsent(this.horsLigne() ?? this.erreur(), 'hors-ligne');\n case 'chargement':\n return this.chargement();\n default:\n return this.succes();\n }\n });\n\n readonly montreLaSilhouetteParDefaut = computed(\n () => this.etat() === 'chargement' && this.chargement() === null,\n );\n\n private signalerSiAbsent(\n gabarit: TemplateRef<unknown> | null,\n nom: EtatDeBloc,\n ): TemplateRef<unknown> | null {\n if (gabarit === null && isDevMode()) {\n // Volontairement un avertissement et non une exception : casser l'ecran\n // entier pour un etat degrade non traite aggraverait la panne en\n // production. En developpement, le message est impossible a manquer.\n console.warn(\n `[st-state] Etat « ${nom} » atteint sans gabarit. Les cinq etats doivent etre traites : ` +\n 'fournir [erreur], [vide] et [horsLigne].',\n );\n }\n return gabarit;\n }\n}\n","@if (montreLaSilhouetteParDefaut()) {\n @if (squelette(); as variante) {\n <st-skeleton [variante]=\"variante\" [lignes]=\"lignesDeSquelette()\" />\n } @else {\n <st-spinner />\n }\n} @else if (gabaritDeLEtat(); as gabarit) {\n <ng-container [ngTemplateOutlet]=\"gabarit\" />\n}\n\n<span class=\"st-vh\" aria-live=\"polite\">{{ annonce() }}</span>\n","/**\n * @starterlib/ui — bibliotheque de composants du socle frontal.\n *\n * Tout composant s'emploie sans enveloppe : les elements interactifs sont des\n * directives posees sur les elements natifs (`button[stButton]`), jamais des\n * balises qui en enrobent un.\n */\nexport * from './lib/noyau/jetons';\nexport * from './lib/noyau/etat';\nexport * from './lib/icone/st-icon';\nexport * from './lib/icone/noms-d-icone';\nexport * from './lib/texte/st-text';\nexport * from './lib/texte/st-heading';\nexport * from './lib/etats/st-spinner';\nexport * from './lib/etats/st-progress';\nexport * from './lib/etats/st-skeleton';\nexport * from './lib/actions/st-button';\nexport * from './lib/actions/st-icon-button';\nexport * from './lib/actions/st-link';\nexport * from './lib/actions/st-button-group';\nexport * from './lib/donnees/st-code';\nexport * from './lib/donnees/st-masked';\nexport * from './lib/donnees/st-money';\nexport * from './lib/donnees/st-date';\nexport * from './lib/donnees/st-relative-time';\nexport * from './lib/donnees/st-count';\nexport * from './lib/indicateurs/st-status-pill';\nexport * from './lib/indicateurs/st-badge';\nexport * from './lib/indicateurs/st-tag';\nexport * from './lib/indicateurs/st-avatar';\nexport * from './lib/etats/st-empty';\nexport * from './lib/etats/st-error';\nexport * from './lib/etats/st-offline-banner';\nexport * from './lib/etats/st-state';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"starterlib-ui.mjs","sources":["../../../../packages/ui/src/lib/noyau/jetons.ts","../../../../packages/ui/src/lib/noyau/etat.ts","../../../../packages/ui/src/lib/icone/st-icon.ts","../../../../packages/ui/src/lib/icone/st-icon.html","../../../../packages/ui/src/lib/icone/noms-d-icone.ts","../../../../packages/ui/src/lib/texte/st-text.ts","../../../../packages/ui/src/lib/texte/st-text.html","../../../../packages/ui/src/lib/texte/st-heading.ts","../../../../packages/ui/src/lib/texte/st-heading.html","../../../../packages/ui/src/lib/etats/st-spinner.ts","../../../../packages/ui/src/lib/etats/st-spinner.html","../../../../packages/ui/src/lib/etats/st-progress.ts","../../../../packages/ui/src/lib/etats/st-progress.html","../../../../packages/ui/src/lib/etats/st-skeleton.ts","../../../../packages/ui/src/lib/etats/st-skeleton.html","../../../../packages/ui/src/lib/actions/st-button.ts","../../../../packages/ui/src/lib/actions/st-button.html","../../../../packages/ui/src/lib/actions/st-icon-button.ts","../../../../packages/ui/src/lib/actions/st-icon-button.html","../../../../packages/ui/src/lib/actions/st-link.ts","../../../../packages/ui/src/lib/actions/st-link.html","../../../../packages/ui/src/lib/actions/st-button-group.ts","../../../../packages/ui/src/lib/actions/st-button-group.html","../../../../packages/ui/src/lib/donnees/st-code.ts","../../../../packages/ui/src/lib/donnees/st-code.html","../../../../packages/ui/src/lib/donnees/st-masked.ts","../../../../packages/ui/src/lib/donnees/st-masked.html","../../../../packages/ui/src/lib/donnees/st-money.ts","../../../../packages/ui/src/lib/donnees/st-money.html","../../../../packages/ui/src/lib/donnees/st-date.ts","../../../../packages/ui/src/lib/donnees/st-date.html","../../../../packages/ui/src/lib/donnees/st-relative-time.ts","../../../../packages/ui/src/lib/donnees/st-relative-time.html","../../../../packages/ui/src/lib/donnees/st-count.ts","../../../../packages/ui/src/lib/donnees/st-count.html","../../../../packages/ui/src/lib/indicateurs/st-status-pill.ts","../../../../packages/ui/src/lib/indicateurs/st-status-pill.html","../../../../packages/ui/src/lib/indicateurs/st-badge.ts","../../../../packages/ui/src/lib/indicateurs/st-badge.html","../../../../packages/ui/src/lib/indicateurs/st-tag.ts","../../../../packages/ui/src/lib/indicateurs/st-tag.html","../../../../packages/ui/src/lib/indicateurs/st-avatar.ts","../../../../packages/ui/src/lib/indicateurs/st-avatar.html","../../../../packages/ui/src/lib/etats/st-empty.ts","../../../../packages/ui/src/lib/etats/st-empty.html","../../../../packages/ui/src/lib/etats/st-error.ts","../../../../packages/ui/src/lib/etats/st-error.html","../../../../packages/ui/src/lib/etats/st-offline-banner.ts","../../../../packages/ui/src/lib/etats/st-offline-banner.html","../../../../packages/ui/src/lib/etats/st-state.ts","../../../../packages/ui/src/lib/etats/st-state.html","../../../../packages/ui/src/public-api.ts","../../../../packages/ui/src/starterlib-ui.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starterlib/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Bibliotheque de composants st-* du socle frontal starter, sur Angular Material, CDK et Aria.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -25,7 +25,8 @@
|
|
|
25
25
|
"@angular/material": "^22.1.0",
|
|
26
26
|
"@angular/aria": "^22.1.0",
|
|
27
27
|
"@angular/forms": "^22.1.0",
|
|
28
|
-
"@starterlib/tokens": "^0.1.0"
|
|
28
|
+
"@starterlib/tokens": "^0.1.0",
|
|
29
|
+
"@starterlib/util": "^0.1.0"
|
|
29
30
|
},
|
|
30
31
|
"module": "fesm2022/starterlib-ui.mjs",
|
|
31
32
|
"typings": "types/starterlib-ui.d.ts",
|
package/types/starterlib-ui.d.ts
CHANGED
|
@@ -1,17 +1,36 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, TemplateRef } from '@angular/core';
|
|
2
|
+
import { InjectionToken, Provider, TemplateRef } from '@angular/core';
|
|
3
3
|
import { Montant } from '@starterlib/util';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
* Chemin du sprite SVG des icones
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
6
|
+
* Chemin du sprite SVG des icones, **fourni par l'application**.
|
|
7
|
+
*
|
|
8
|
+
* ⚠️ Aucun defaut, et c'est voulu. Un defaut absolu (`/assets/icones/...`) est
|
|
9
|
+
* faux des que l'interface est servie sous un prefixe (`/ui/<interface>/`), et
|
|
10
|
+
* l'echec est MUET : la reference externe d'un `<use>` qui ne resout pas ne
|
|
11
|
+
* leve rien, toutes les icones restent vides, et la regle « un statut se lit
|
|
12
|
+
* par une icone ET un texte » tombe sans que rien ne le signale. Mieux vaut
|
|
13
|
+
* echouer au demarrage, une fois, avec la marche a suivre.
|
|
14
|
+
*
|
|
15
|
+
* L'actif est publie avec le paquet :
|
|
16
|
+
* `node_modules/@starterlib/ui/assets/icones/sprite.svg`. Chaque SPA le copie
|
|
17
|
+
* dans ses actifs (bloc `assets` de `angular.json`), puis fournit son chemin —
|
|
18
|
+
* de preference empreinte, pour un cache immuable :
|
|
19
|
+
*
|
|
20
|
+
* ```ts
|
|
21
|
+
* { provide: CHEMIN_DU_SPRITE, useValue: '/ui/socle/assets/icones/sprite.svg' }
|
|
22
|
+
* ```
|
|
10
23
|
*/
|
|
11
24
|
declare const CHEMIN_DU_SPRITE: InjectionToken<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Fournit le chemin du sprite. A poser une fois, dans la configuration de
|
|
27
|
+
* l'application — jamais dans un composant, ou deux branches de l'arbre
|
|
28
|
+
* pourraient viser deux sprites differents.
|
|
29
|
+
*/
|
|
30
|
+
declare function fournirCheminDuSprite(chemin: string): Provider;
|
|
12
31
|
/**
|
|
13
32
|
* Marque la presence d'une region vivante possedee par un ancetre, en pratique
|
|
14
|
-
*
|
|
33
|
+
* le composant `st-state`.
|
|
15
34
|
*
|
|
16
35
|
* Tout composant susceptible de porter un `role="status"` l'injecte en
|
|
17
36
|
* optionnel et **se tait** s'il en trouve un. Sans cela, un indicateur de
|
|
@@ -62,7 +81,8 @@ declare class StIcon {
|
|
|
62
81
|
}
|
|
63
82
|
|
|
64
83
|
/**
|
|
65
|
-
* Noms du sprite,
|
|
84
|
+
* Noms du sprite, tenus a l'identique de `assets/icones/sprite.svg` par les
|
|
85
|
+
* tests de `st-icon.spec.ts` (dans les deux sens).
|
|
66
86
|
*
|
|
67
87
|
* Le type existe pour qu'une faute de frappe echoue a la compilation : une
|
|
68
88
|
* reference `use` vers un identifiant absent ne rend RIEN, sans erreur, et le
|
|
@@ -202,6 +222,11 @@ type TailleDeBouton = 'sm' | 'md' | 'lg';
|
|
|
202
222
|
* tabulation si quelqu'un lui pose un `tabindex`. Tout fonctionne en
|
|
203
223
|
* demonstration et casse au premier formulaire reel.
|
|
204
224
|
*
|
|
225
|
+
* ⚠️ L'indicateur de chargement est MUET (`aria-hidden`) : pose dans le bouton,
|
|
226
|
+
* son `role="status"` entrait dans le nom accessible, qui devenait « Chargement
|
|
227
|
+
* en cours Valider ». L'annonce de l'action en cours revient a l'annonceur
|
|
228
|
+
* global du noyau, pas au bouton.
|
|
229
|
+
*
|
|
205
230
|
* ⚠️ Pendant le chargement, le bouton porte `aria-disabled` et NON `disabled` :
|
|
206
231
|
* l'attribut natif lui retire le focus, le lecteur d'ecran perd le controle
|
|
207
232
|
* qu'il avait sous le doigt et retombe sur le corps du document. Les clics
|
|
@@ -219,6 +244,12 @@ declare class StButton {
|
|
|
219
244
|
* soumission, pas a l'arrivee de la reponse.
|
|
220
245
|
*/
|
|
221
246
|
readonly chargement: _angular_core.InputSignal<boolean>;
|
|
247
|
+
/**
|
|
248
|
+
* Le ton suit le FOND du bouton, et non le bouton en general : sur une
|
|
249
|
+
* variante posee sur la surface (`secondaire`, qui est le defaut, et
|
|
250
|
+
* `discret`), un indicateur en ton inverse tombait a 1,00:1 — invisible.
|
|
251
|
+
*/
|
|
252
|
+
readonly tonDuChargement: _angular_core.Signal<TonDeSpinner>;
|
|
222
253
|
constructor();
|
|
223
254
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StButton, never>;
|
|
224
255
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StButton, "button[stButton]", never, { "variante": { "alias": "variante"; "required": false; "isSignal": true; }; "taille": { "alias": "taille"; "required": false; "isSignal": true; }; "pleineLargeur": { "alias": "pleineLargeur"; "required": false; "isSignal": true; }; "iconeAvant": { "alias": "iconeAvant"; "required": false; "isSignal": true; }; "iconeApres": { "alias": "iconeApres"; "required": false; "isSignal": true; }; "chargement": { "alias": "chargement"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
@@ -665,5 +696,5 @@ declare class StState {
|
|
|
665
696
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StState, "st-state", never, { "etat": { "alias": "etat"; "required": true; "isSignal": true; }; "succes": { "alias": "succes"; "required": true; "isSignal": true; }; "chargement": { "alias": "chargement"; "required": false; "isSignal": true; }; "erreur": { "alias": "erreur"; "required": false; "isSignal": true; }; "vide": { "alias": "vide"; "required": false; "isSignal": true; }; "horsLigne": { "alias": "horsLigne"; "required": false; "isSignal": true; }; "squelette": { "alias": "squelette"; "required": false; "isSignal": true; }; "lignesDeSquelette": { "alias": "lignesDeSquelette"; "required": false; "isSignal": true; }; "annonces": { "alias": "annonces"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
666
697
|
}
|
|
667
698
|
|
|
668
|
-
export { CHEMIN_DU_SPRITE, ETATS_DE_BLOC, FUSEAU_PAR_DEFAUT, NOMS_DICONE, REGION_VIVANTE_PARENTE, StAvatar, StBadge, StButton, StButtonGroup, StCode, StCount, StDate, StEmpty, StError, StHeading, StIcon, StIconButton, StLink, StMasked, StMoney, StOfflineBanner, StProgress, StRelativeTime, StSkeleton, StSpinner, StState, StStatusPill, StTag, StText };
|
|
699
|
+
export { CHEMIN_DU_SPRITE, ETATS_DE_BLOC, FUSEAU_PAR_DEFAUT, NOMS_DICONE, REGION_VIVANTE_PARENTE, StAvatar, StBadge, StButton, StButtonGroup, StCode, StCount, StDate, StEmpty, StError, StHeading, StIcon, StIconButton, StLink, StMasked, StMoney, StOfflineBanner, StProgress, StRelativeTime, StSkeleton, StSpinner, StState, StStatusPill, StTag, StText, fournirCheminDuSprite };
|
|
669
700
|
export type { EtatDeBloc, FormatDeDate, GraisseDeTexte, NiveauDeTitre, NomDIcone, TailleDIcone, TailleDeBouton, TailleDeSpinner, TailleDeTitre, TonDIcone, TonDeBadge, TonDeProgression, TonDeSpinner, TonDeStatut, TypeMasque, VarianteDErreur, VarianteDeBouton, VarianteDeBoutonIcone, VarianteDeLien, VarianteDeSquelette, VarianteDeTexte };
|