@starterlib/ui 0.10.14 → 0.11.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.
Files changed (57) hide show
  1. package/README.md +140 -33
  2. package/assets/icones/catalogue.json +199 -4
  3. package/assets/icones/sprite.svg +14 -0
  4. package/fesm2022/starterlib-ui-arbre.mjs +25 -25
  5. package/fesm2022/starterlib-ui-arbre.mjs.map +1 -1
  6. package/fesm2022/starterlib-ui-donnees.mjs +760 -274
  7. package/fesm2022/starterlib-ui-donnees.mjs.map +1 -1
  8. package/fesm2022/starterlib-ui-etats.mjs +82 -82
  9. package/fesm2022/starterlib-ui-etats.mjs.map +1 -1
  10. package/fesm2022/starterlib-ui-force.mjs +18 -0
  11. package/fesm2022/starterlib-ui-force.mjs.map +1 -0
  12. package/fesm2022/starterlib-ui-formulaires.mjs +218 -218
  13. package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
  14. package/fesm2022/starterlib-ui-graphiques.mjs +934 -0
  15. package/fesm2022/starterlib-ui-graphiques.mjs.map +1 -0
  16. package/fesm2022/starterlib-ui-indicateurs.mjs +59 -59
  17. package/fesm2022/starterlib-ui-indicateurs.mjs.map +1 -1
  18. package/fesm2022/starterlib-ui-libelles-en.mjs +12 -0
  19. package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -1
  20. package/fesm2022/starterlib-ui-listes.mjs +727 -315
  21. package/fesm2022/starterlib-ui-listes.mjs.map +1 -1
  22. package/fesm2022/starterlib-ui-messagerie.mjs +45 -45
  23. package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -1
  24. package/fesm2022/starterlib-ui-mise-en-page.mjs +46 -46
  25. package/fesm2022/starterlib-ui-mise-en-page.mjs.map +1 -1
  26. package/fesm2022/starterlib-ui-navigation.mjs +201 -42
  27. package/fesm2022/starterlib-ui-navigation.mjs.map +1 -1
  28. package/fesm2022/starterlib-ui-onglets.mjs +20 -20
  29. package/fesm2022/starterlib-ui-onglets.mjs.map +1 -1
  30. package/fesm2022/starterlib-ui-parcours.mjs +632 -168
  31. package/fesm2022/starterlib-ui-parcours.mjs.map +1 -1
  32. package/fesm2022/starterlib-ui-qr.mjs +11 -11
  33. package/fesm2022/starterlib-ui-qr.mjs.map +1 -1
  34. package/fesm2022/starterlib-ui-saisie.mjs +693 -515
  35. package/fesm2022/starterlib-ui-saisie.mjs.map +1 -1
  36. package/fesm2022/starterlib-ui-selection.mjs +64 -64
  37. package/fesm2022/starterlib-ui-selection.mjs.map +1 -1
  38. package/fesm2022/starterlib-ui-sens.mjs +3 -3
  39. package/fesm2022/starterlib-ui-surfaces.mjs +246 -242
  40. package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
  41. package/fesm2022/starterlib-ui-virtuel.mjs +17 -17
  42. package/fesm2022/starterlib-ui-virtuel.mjs.map +1 -1
  43. package/fesm2022/starterlib-ui.mjs +1290 -938
  44. package/fesm2022/starterlib-ui.mjs.map +1 -1
  45. package/package.json +27 -3
  46. package/styles/amorce.css +304 -2
  47. package/types/starterlib-ui-donnees.d.ts +231 -5
  48. package/types/starterlib-ui-force.d.ts +19 -0
  49. package/types/starterlib-ui-graphiques.d.ts +421 -0
  50. package/types/starterlib-ui-indicateurs.d.ts +11 -4
  51. package/types/starterlib-ui-listes.d.ts +230 -13
  52. package/types/starterlib-ui-navigation.d.ts +82 -1
  53. package/types/starterlib-ui-parcours.d.ts +265 -5
  54. package/types/starterlib-ui-saisie.d.ts +142 -11
  55. package/types/starterlib-ui-selection.d.ts +1 -1
  56. package/types/starterlib-ui-surfaces.d.ts +10 -9
  57. package/types/starterlib-ui.d.ts +294 -32
package/README.md CHANGED
@@ -14,13 +14,15 @@ des dependances de pair : c'est l'application qui les installe, et elles doivent
14
14
  etre **identiques dans l'hote et dans chaque remote**. Deux versions du socle
15
15
  dans le meme navigateur, ce sont deux jeux de jetons d'injection.
16
16
 
17
- ## Dix-neuf points d'entree
17
+ ## 21 points d'entree
18
18
 
19
19
  Deux criteres, dans cet ordre (le douzieme, `sens`, le treizieme, `parcours`, et le
20
20
  quatorzieme, `qr`, et le quinzieme, `messagerie`, depuis la 0.9.0 : lots 228, 243, 264 et 266 ;
21
21
  `etats`, `indicateurs` et `mise-en-page` depuis la 0.10.0 : greffe 268c, ce que la coquille ne peint
22
22
  pas sort du tronc ; `virtuel` depuis la 0.10.14 : lot 267, la liste virtuelle, bonus sous condition
23
- ecrite, `packages/ui/virtuel/README.md`).
23
+ ecrite, `packages/ui/virtuel/README.md` ; `force` depuis la 0.11.0 : l'adaptateur de la jauge de force
24
+ du mot de passe, ADR web 0011, charge a la demande et jamais partage en federation ; `graphiques`
25
+ depuis la 0.11.0 : courbe et tendance en SVG ecrit a la main, sans bibliotheque, P08-07 d'Aplomb).
24
26
 
25
27
  1. **La dependance** (ADR 0003) : un composant sort du tronc quand il traine un
26
28
  pair lourd, et le point d'entree ou il va se choisit par ce qu'il EST pour
@@ -31,27 +33,28 @@ ecrite, `packages/ui/virtuel/README.md`).
31
33
  lui coute plein tarif au premier ecran, et ne coute RIEN au remote qui
32
34
  l'affiche, puisque le tronc y est deja charge.
33
35
 
34
- | Point d'entree | Contenu | Pairs lourds importes statiquement |
35
- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
36
- | `@starterlib/ui` | le TRONC, ce que la coquille peint : noyau, icone, titre, actions (bouton, bouton-icone, lien, segmente), etats de page (erreur, vide, attente, progression, hors ligne), retour, avatar, structure de la coquille (en-tete, pied, cartes, fil d'Ariane, titre et en-tete de page), transverses | aucun |
37
- | `@starterlib/ui/saisie` | les champs de formulaire, les groupes de cases et de radios, la matrice de cases, la rangee de champs, les consentements, les cartes de choix, le calendrier, le televersement, les etiquettes libres (`st-tag-input`), le champ d'adresse et la liste des pays (`st-address-fieldset`, `st-country-field`), la barre d'actions d'un formulaire (`st-form-actions`) | aucun (des TYPES d'`@angular/forms`) |
38
- | `@starterlib/ui/listes` | liste, liste de description, liste a verifier (`st-review-list`), table de donnees, pagination, tri, filtres, sections repliables (`st-disclosure`, `st-accordion`), documents stockes (`st-document-list`, `st-attachment`), chronologie (`st-timeline`), avant et apres (`st-value-change`, `st-change-list`), actions de masse (`st-selection-bar`), export (`st-export-action`) | aucun |
39
- | `@starterlib/ui/donnees` | montant, date, date relative, compte, nombre (`st-number`), duree (`st-duration`), valeur masquee, indicateur chiffre, recapitulatif de montants (`st-amount-summary`), jauge (`st-meter`), echeance (`st-deadline`), personnes (`st-person`, `st-avatar-group`), groupe d'indicateurs (`st-stat-group`), barres et repartition (`st-bar-list`, `st-repartition`), valeur de reference a copier (`st-code`) | aucun |
40
- | `@starterlib/ui/libelles-en` | le catalogue anglais | aucun |
41
- | `@starterlib/ui/surfaces` | ce qui se pose AU-DESSUS de la page : menu, dialogues, tiroirs, messages ephemeres, aide contextuelle (`st-help-button`), bouton scinde (`st-split-button`), menu de compte (`st-user-menu`), confirmation legere (`[stPopconfirm]`) | `@angular/cdk/{a11y,dialog,keycodes,overlay,portal}`, `@angular/aria/menu` |
42
- | `@starterlib/ui/navigation` | la navigation laterale, les onglets de navigation par routes (`st-nav-tabs`), le sommaire d'ancres (`st-page-nav`) | `@angular/cdk/layout` — et rien d'autre |
43
- | `@starterlib/ui/onglets` | les onglets et leurs panneaux | `@angular/aria/tabs` |
44
- | `@starterlib/ui/selection` | liste deroulante filtrante, choix multiple, recherche d'adresse (`st-address-search`), liste des pays filtrable (`st-country-combobox`) | `@angular/aria/{combobox,listbox}`, `@angular/cdk/overlay` |
45
- | `@starterlib/ui/arbre` | l'arborescence | `@angular/aria/tree` |
46
- | `@starterlib/ui/formulaires` | les champs qui LISENT leur saisie : montant, date, plage de dates, heure (`st-time-field`), plage de montants (`st-amount-range`), recurrence d'un virement (`st-recurrence-field`) ; bonus sous condition ecrite du lot 267 (README de chacun) : mois (`st-month-field`), date memorable (`st-memorable-date`) | le code d'`@angular/forms` (`transformedValue`) |
47
- | `@starterlib/ui/sens` | le sens d'ecriture du CDK tenu a jour avec `dir` (`provideSensDuDocument`, pose par l'hote) | `@angular/cdk/bidi` — et rien d'autre |
48
- | `@starterlib/ui/parcours` | les patrons composites d'un parcours : refus du serveur (`st-refusal`), issue d'une operation (`st-outcome`), assistant par etapes et son indicateur (`st-wizard`, `st-wizard-step`, `st-stepper`), dossier a completer (`st-task-list`), ceremonie de second facteur (`st-challenge`) et codes de secours (`st-recovery-codes`) | aucun |
49
- | `@starterlib/ui/qr` | le code QR : l'encodeur pur (`encoderQr`, ISO/IEC 18004) et son dessin (`st-qr-code`), pour l'enrolement d'un authentificateur et le virement a scanner | aucun |
50
- | `@starterlib/ui/messagerie` | les echanges d'un dossier : le fil (`st-message-thread`), le message (`st-message`), le composeur (`st-message-composer`), en texte brut ; ses libelles avec lui (AD-10) | aucun |
51
- | `@starterlib/ui/etats` | l'etat d'un bloc de donnees et ses gabarits (`st-state`, `GABARITS_D_ETAT`), le squelette de chargement (`st-skeleton`), l'ecran d'attente d'une application (`st-splash-screen`) | aucun |
52
- | `@starterlib/ui/indicateurs` | pastille de statut (`st-status-pill`), badge et compteur ancre (`st-badge`, `st-badge-ancre`), etiquettes et groupes d'etiquettes (`st-tag`, `st-tag-group`, `st-groupe-d-etiquettes`) | aucun |
53
- | `@starterlib/ui/mise-en-page` | section, separateur, texte long (`st-text`), rangee de reglage (`st-settings-row`), groupe de boutons (`st-button-group`) | aucun |
54
- | `@starterlib/ui/virtuel` | la liste virtuelle (`st-virtual-list`, `stVirtualItem`) : plusieurs milliers de lignes affichees ensemble, la fenetre seule rendue ; bonus sous condition ecrite du lot 267 (`packages/ui/virtuel/README.md`) | `@angular/cdk/scrolling` — et rien d'autre |
36
+ | Point d'entree | Contenu | Pairs lourds importes statiquement |
37
+ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
38
+ | `@starterlib/ui` | le TRONC, ce que la coquille peint : noyau, icone, titre, actions (bouton, bouton-icone, lien, segmente), etats de page (erreur, vide, attente, progression, hors ligne), retour, avatar, structure de la coquille (en-tete, pied, cartes, fil d'Ariane, titre et en-tete de page), transverses | aucun |
39
+ | `@starterlib/ui/saisie` | les champs de formulaire, les groupes de cases et de radios, la matrice de cases, la rangee de champs, les consentements, les cartes de choix, le calendrier, le televersement, les etiquettes libres (`st-tag-input`), le champ d'adresse et la liste des pays (`st-address-fieldset`, `st-country-field`), la barre d'actions d'un formulaire (`st-form-actions`) | aucun (des TYPES d'`@angular/forms`) |
40
+ | `@starterlib/ui/listes` | liste, liste de description, liste a verifier (`st-review-list`), table de donnees, pagination, tri, filtres, sections repliables (`st-disclosure`, `st-accordion`), documents stockes (`st-document-list`, `st-attachment`), chronologie (`st-timeline`), avant et apres (`st-value-change`, `st-change-list`, par sections), comparaison de versions (`st-version-compare`), actions de masse (`st-selection-bar`), export (`st-export-action`) | aucun |
41
+ | `@starterlib/ui/donnees` | montant, date, date relative, compte, nombre (`st-number`), duree (`st-duration`), valeur masquee, indicateur chiffre, recapitulatif de montants (`st-amount-summary`), jauge (`st-meter`), echeance (`st-deadline`), personnes (`st-person`, `st-avatar-group`), groupe d'indicateurs (`st-stat-group`), barres et repartition (`st-bar-list`, `st-repartition`), valeur de reference a copier (`st-code`) | aucun |
42
+ | `@starterlib/ui/libelles-en` | le catalogue anglais | aucun |
43
+ | `@starterlib/ui/surfaces` | ce qui se pose AU-DESSUS de la page : menu, dialogues, tiroirs, messages ephemeres, aide contextuelle (`st-help-button`), bouton scinde (`st-split-button`), menu de compte (`st-user-menu`), confirmation legere (`[stPopconfirm]`) | `@angular/cdk/{a11y,dialog,keycodes,overlay,portal}`, `@angular/aria/menu` |
44
+ | `@starterlib/ui/navigation` | la navigation laterale, la barre de navigation inferieure d'un petit ecran (`st-bottom-nav`), les onglets de navigation par routes (`st-nav-tabs`), le sommaire d'ancres (`st-page-nav`) | `@angular/cdk/layout` — et rien d'autre |
45
+ | `@starterlib/ui/onglets` | les onglets et leurs panneaux | `@angular/aria/tabs` |
46
+ | `@starterlib/ui/selection` | liste deroulante filtrante, choix multiple, recherche d'adresse (`st-address-search`), liste des pays filtrable (`st-country-combobox`) | `@angular/aria/{combobox,listbox}`, `@angular/cdk/overlay` |
47
+ | `@starterlib/ui/arbre` | l'arborescence | `@angular/aria/tree` |
48
+ | `@starterlib/ui/formulaires` | les champs qui LISENT leur saisie : montant, date, plage de dates, heure (`st-time-field`), plage de montants (`st-amount-range`), recurrence d'un virement (`st-recurrence-field`) ; bonus sous condition ecrite du lot 267 (README de chacun) : mois (`st-month-field`), date memorable (`st-memorable-date`) | le code d'`@angular/forms` (`transformedValue`) |
49
+ | `@starterlib/ui/sens` | le sens d'ecriture du CDK tenu a jour avec `dir` (`provideSensDuDocument`, pose par l'hote) | `@angular/cdk/bidi` — et rien d'autre |
50
+ | `@starterlib/ui/parcours` | les patrons composites d'un parcours : refus du serveur (`st-refusal`), issue d'une operation (`st-outcome`), assistant par etapes et son indicateur (`st-wizard`, `st-wizard-step`, `st-stepper`), dossier a completer (`st-task-list`), ceremonie de second facteur (`st-challenge`) et codes de secours (`st-recovery-codes`), demande de modification d'une valeur gouvernee (`st-change-request`) | aucun |
51
+ | `@starterlib/ui/qr` | le code QR : l'encodeur pur (`encoderQr`, ISO/IEC 18004) et son dessin (`st-qr-code`), pour l'enrolement d'un authentificateur et le virement a scanner | aucun |
52
+ | `@starterlib/ui/messagerie` | les echanges d'un dossier : le fil (`st-message-thread`), le message (`st-message`), le composeur (`st-message-composer`), en texte brut ; ses libelles avec lui (AD-10) | aucun |
53
+ | `@starterlib/ui/etats` | l'etat d'un bloc de donnees et ses gabarits (`st-state`, `GABARITS_D_ETAT`), le squelette de chargement (`st-skeleton`), l'ecran d'attente d'une application (`st-splash-screen`) | aucun |
54
+ | `@starterlib/ui/indicateurs` | pastille de statut (`st-status-pill`), badge et compteur ancre (`st-badge`, `st-badge-ancre`), etiquettes et groupes d'etiquettes (`st-tag`, `st-tag-group`, `st-groupe-d-etiquettes`) | aucun |
55
+ | `@starterlib/ui/mise-en-page` | section, separateur, texte long (`st-text`), rangee de reglage (`st-settings-row`), groupe de boutons (`st-button-group`) | aucun |
56
+ | `@starterlib/ui/force` | l'adaptateur de la jauge de force du mot de passe (`chargerEstimateurZxcvbn`, ADR web 0011) : jamais importe statiquement, charge a la premiere frappe par `fournirEstimateurDeForce`, jamais partage en federation | `@zxcvbn-ts/*`, pairs OPTIONNELS, par imports dynamiques |
57
+ | `@starterlib/ui/virtuel` | la liste virtuelle (`st-virtual-list`, `stVirtualItem`) : plusieurs milliers de lignes affichees ensemble, la fenetre seule rendue ; bonus sous condition ecrite du lot 267 (`packages/ui/virtuel/README.md`) | `@angular/cdk/scrolling` — et rien d'autre |
55
58
 
56
59
  ```ts
57
60
  import { StButton, StCard, StError } from '@starterlib/ui';
@@ -69,6 +72,7 @@ import { GABARITS_D_ETAT, StState } from '@starterlib/ui/etats';
69
72
  import { StStatusPill, StTag } from '@starterlib/ui/indicateurs';
70
73
  import { StSection, StText } from '@starterlib/ui/mise-en-page';
71
74
  import { StVirtualItem, StVirtualList } from '@starterlib/ui/virtuel';
75
+ import { StLineChart, StSparkline } from '@starterlib/ui/graphiques';
72
76
  ```
73
77
 
74
78
  `sens` ne porte aucun composant : il remplace le `Directionality` du CDK, qui ne lit `dir` qu'a sa
@@ -87,7 +91,8 @@ d'abord des CHAMPS ; `parcours` et `messagerie` composent le tronc, `saisie`, `l
87
91
  0.10.0, ce qui est sorti du tronc est importe la ou il se compose : `listes` importe `etats` (le
88
92
  squelette) et `indicateurs` (la pastille de statut), `saisie` et `parcours` importent
89
93
  `indicateurs`, `formulaires` et `surfaces` importent `mise-en-page`.
90
- `libelles-en`, `sens` et `virtuel` n'importent aucun autre point d'entree : le catalogue
94
+ `graphiques` compose le tronc et `listes` (le tableau equivalent d'une courbe), et aucun point
95
+ d'entree ne l'importe. `libelles-en`, `sens` et `virtuel` n'importent aucun autre point d'entree : le catalogue
91
96
  anglais ne lit du tronc que le TYPE `LibellesUi`, et la liste virtuelle ne compose que le CDK. `navigation` atteint
92
97
  `surfaces` par `import()` seulement : le dialogue du tiroir ne pese pas sur le
93
98
  premier rendu.
@@ -122,24 +127,26 @@ construit (`pnpm paquets:check`), **au specificateur exact** : `navigation` a
122
127
  droit a `@angular/cdk/layout`, et un `@angular/cdk/overlay` qui s'y glisserait
123
128
  echoue avant la publication. Une regle non outillee est une opinion.
124
129
 
125
- ⚠️ **En federation, chaque point d'entree se partage SEPAREMENT.** Ce sont dix-neuf
126
- specificateurs de module distincts : partager `@starterlib/ui` ne couvre aucun
127
- des dix-huit autres. Omis de la configuration, chaque remote en embarque sa propre
130
+ ⚠️ **En federation, chaque point d'entree se partage SEPAREMENT.** Ce sont vingt
131
+ specificateurs de module distincts (le vingt et unieme, `force`, ne se partage pas : ses pairs optionnels
132
+ feraient echouer la construction des SPA qui ne l'emploient pas, ADR web 0011) : partager
133
+ `@starterlib/ui` ne couvre aucun des dix-neuf autres. Omis de la configuration, chaque remote en embarque sa propre
128
134
  copie — et la regle `singleton: true, strictVersion: true` qui protege le tronc
129
135
  ne protege plus rien au-dessus. Le decoupage achete l'independance de
130
- CHARGEMENT, jamais celle de VERSION : les dix-neuf portent le numero de leur paquet.
136
+ CHARGEMENT, jamais celle de VERSION : les vingt portent le numero de leur paquet.
131
137
 
132
138
  ```js
133
139
  // federation.config.mjs de l'hote ET de chaque remote
134
140
  import { partageAngular, partageDuSocle } from '@starterlib/core/federation';
135
141
 
136
- shared: { ...share({ ...partageAngular('22.2', '7.8'), ...partageDuSocle('0.10') }) }
142
+ shared: { ...share({ ...partageAngular('22.2', '7.8'), ...partageDuSocle('0.11') }) }
137
143
  ```
138
144
 
139
145
  ⚠️ **Cette liste ne se recopie plus.** Depuis la 0.8.0 elle est publiee par
140
- `@starterlib/core/federation` : `partageDuSocle(train)` rend les **vingt-huit**
141
- specificateurs du socle — les dix-neuf de `ui`, `tokens`, `tokens/moteur`, `util`,
142
- `util/valeurs`, `core`, `core/federation`, `core/adresses`, `core/fichiers` et `core/navigateur` —,
146
+ `@starterlib/core/federation` : `partageDuSocle(train)` rend les **trente**
147
+ specificateurs du socle — les vingt de `ui`, `tokens`, `tokens/moteur`, `util`,
148
+ `util/valeurs`, `util/graduations`, `core`, `core/federation`, `core/adresses`, `core/fichiers` et
149
+ `core/navigateur` —,
143
150
  chacun en `singleton: true, strictVersion: true,
144
151
  includeSecondaries: false`. La raison n'est pas la commodite : une ligne oubliee
145
152
  **n'est pas une erreur de construction**, le specificateur se duplique simplement
@@ -373,7 +380,9 @@ S17) — ce que la coquille et les remotes assemblent :
373
380
  zone sure), `st-footer` (mentions, version, statut), `stNavLink`
374
381
  (`routerLink` + `aria-current="page"`, icone et pastille), `st-page-header`
375
382
  (fil, `h1`, actions, onglets), `st-route-progress` (barre fine, rien avant
376
- 200 ms), `st-auth-shell` (gabarit pleine page, carte de 450 px des `md`),
383
+ 200 ms), `st-auth-shell` (gabarit pleine page, carte de 450 px des `md` ;
384
+ emplacements `banniere`, `sousLaCarte` et, au pied, `mention` puis les liens ;
385
+ `bandeaux` : en-tete et pied pleine largeur, page unie),
377
386
  `st-splash-screen` (ecran de demarrage `clair` ou `marque`, statut differe ;
378
387
  amorce statique `styles/amorce.css` avant le JavaScript), `st-stepper` (`ol`,
379
388
  `aria-current="step"`), `st-settings-row` (groupe nomme et decrit).
@@ -390,6 +399,104 @@ S17) — ce que la coquille et les remotes assemblent :
390
399
  rupture lus dans le partiel `_ruptures.scss` de `@starterlib/tokens`
391
400
  (`@include st.depuis('lg')`), gardes dans `styles/gardes-de-feuille.spec.ts`.
392
401
 
402
+ Environnement d'essai (0.11.0, P08-04) — un marqueur qu'on ne peut ni oublier ni fermer, sur
403
+ demande seulement :
404
+
405
+ - **ton `essai`** de `st-banner` (jamais fermable, son mot en titre), `st-status-pill`, `st-tag`
406
+ et `st-icon` : la couleur `essai` (famille violette des jetons) et la fiole `essai` ;
407
+ - **`st-app-shell variante="essai"`** : liseret sur le pourtour de la fenetre, banniere
408
+ permanente en tete des bannieres (`titreDEssai`, `messageDEssai`), `data-environnement="essai"`
409
+ sur `<html>`, annonce polie a l'entree et a la sortie ;
410
+ - **`st-watermark`** (`ui/donnees`) : le filigrane des resultats d'essai et des dossiers
411
+ imprimables, absent de l'arbre d'accessibilite.
412
+
413
+ Recette : `docs/recettes/environnement-d-essai.md`.
414
+
415
+ Barre de navigation inferieure (0.11.0, P08-05) — `st-bottom-nav` (`ui/navigation`), posee dans
416
+ l'emplacement `navigationBasse` de `st-app-shell` : la navigation d'un petit ecran, sans tiroir.
417
+ Cinq entrees au plus (`{ libelle, icone, lien, pastille? }` ; une sixieme leve une erreur en
418
+ developpement), des liens `a[stNavLink]` (`aria-current="page"`), icone ET libelle toujours
419
+ visibles, une region nommee (« Navigation principale » par defaut), une pastille d'elements a
420
+ traiter dite en mots. Sous `md` seulement : au-dessus, elle se retire et `st-sidenav` prend le
421
+ relais. Elle publie sa hauteur, zone sure comprise, sur `<html>` (`--st-hauteur-pied`) : la feuille
422
+ des jetons la lit dans `scroll-padding-block-end` (le focus ne passe jamais dessous) et la
423
+ coquille la reserve sous son contenu. Ses cibles suivent `--st-commande-hauteur`, jamais sous
424
+ 44 px ; a 320 px, un libelle d'une dizaine de caracteres tient (au-dela, une ellipse, le nom
425
+ accessible restant entier).
426
+
427
+ Action critique permanente (0.11.0, P08-06) — l'emplacement `actionPermanente` de `st-app-shell` :
428
+ une action atteinte de partout (l'arret d'urgence d'une application), jamais dans un tiroir ni un
429
+ menu, premier arret de tabulation apres le lien d'evitement. Au-dessus de `md`, au bout de
430
+ l'en-tete ; en dessous, elle flotte au bout de la ligne, au-dessus de la barre inferieure ou de la
431
+ zone sure, et la coquille publie la hauteur qu'elle couvre (`--st-hauteur-action`), lue par la
432
+ feuille des jetons (`scroll-padding-block-end`) : le focus ne passe jamais dessous. `st-skip-link`
433
+ gagne une seconde cible (`secondeCible`, `CibleDEvitement`), rendue en premier sur demande
434
+ (`secondeEnPremier`) ; la coquille la recoit par `lienVersLAction` et `lienVersLActionEnPremier`.
435
+ Le raccourci se declare sur l'action (`stRaccourci`, `@starterlib/core`, Alt+Maj+U par defaut).
436
+ Recette : `docs/recettes/action-critique.md`.
437
+
438
+ Fraicheur d'une donnee (0.11.0, P08-12) — `st-freshness` (`ui/donnees`) : « A jour, il y a 12 s » ou
439
+ « Perimee depuis 2 min 05 s », en mot et en forme (coche, triangle), jamais par la couleur seule ;
440
+ entrees `instant` (la `lueA()` d'une `ressourceRafraichie` de `@starterlib/core`), `seuil` (secondes,
441
+ fourni par le serveur ou l'application), `libelle`. L'age se relit chaque seconde, onglet visible
442
+ seulement, sans region vivante ; la sortie `perimee` est emise a chaque franchissement du seuil.
443
+
444
+ Lu jusqu'au bout (0.11.0, P08-08) — `stLuJusquAuBout` (`ui/donnees`), pose sur le conteneur d'un
445
+ document (`section`, `div`) : une sentinelle focalisable « Fin du document » suit le contenu
446
+ (`libelleDeFin`), et la fin est atteinte au defilement (observateur d'intersection, au-dessus de la
447
+ barre inferieure et de l'action flottante), a la tabulation ou au curseur du lecteur d'ecran. Une
448
+ seule emission de `atteint` ; `lu()` compose l'indisponibilite du bouton qui suit et sa raison
449
+ (`raisonIndisponible`). Aucun acces global, rien d'observe en prerendu. Premier catalogue de
450
+ libelles du point d'entree (`LibellesDonnees`, `fournirLibellesDonnees`). Recette :
451
+ `docs/recettes/accepter-apres-lecture.md`.
452
+
453
+ Courbe et tendance (0.11.0, P08-07) — `@starterlib/ui/graphiques`, point d'entree OPTIONNEL (12 000
454
+ octets en brotli au plus, `BUDGET_BR`), du SVG ecrit a la main sans bibliotheque. `st-line-chart` :
455
+ une a quatre `series` (`{ libelle, points: [{ instant, valeur }], trait? }`, valeurs en CHAINE
456
+ decimale, instants ISO 8601, un jour seul a minuit dans le fuseau), `zonePerte` (l'aire « perte
457
+ depuis le sommet » sous un plafond FOURNI, hachuree), `marqueurs` (evenements dates, numerotes dans
458
+ le trace et dits en texte), `devise` ou `pourcentage`, `fuseau`, `etiquette` et `resume` (le nom et
459
+ la description du `svg` `role="img"`, le resume visible), `pariteEchelle` (graduations
460
+ symetriques autour de zero : un gain et une perte de meme ampleur a la meme taille), `hauteur`.
461
+ Chaque serie a son trait (plein, tirets, points, mixte), que le contraste force garde ; la legende
462
+ est du texte ; « Voir les donnees » bascule, au clavier, vers un `st-data-table` equivalent, et la
463
+ bascule s'annonce. Largeur mesuree (a 320 px, rien ne deborde), un calcul par changement des
464
+ donnees ou de la largeur, aucune animation ; 500 points par serie recommandes, au-dela la
465
+ reduction se fait cote serveur (avertissement en developpement). `st-sparkline` : une serie sans
466
+ axe, decorative et accompagnee de son texte (derniere valeur, variation exacte depuis le premier
467
+ point, lue en phrase), ou etiquetee. Graduations : `@starterlib/util/graduations`. Series de la
468
+ palette : jetons `--st-couleur-serie1` a `4` (D166). Recette : `docs/recettes/courbe-de-capital.md`.
469
+
470
+ Demande de modification d'une valeur gouvernee (0.11.0, P08-13) — `st-change-request`
471
+ (`ui/parcours`) : un plafond, un seuil, une duree, demandes dans un formulaire Signal Forms de
472
+ l'application (`form[stForm]`). Les champs sont PROJETES et lies par `[formField]` : la valeur
473
+ proposee (`[champ]`) et le motif (`[motif]`) ; la valeur actuelle (`[actuelle]`) et l'effet calcule
474
+ par le serveur (`[previsualisation]`) aussi. Entrees : `titre`, `niveauDuTitre`, `etat` (sept, du
475
+ serveur, chacun en mot et en forme sur sa pastille), `effet` (immediat ou differe, son sens, sa
476
+ date par `st-deadline`), `plage` (la plage de surete, ecrite par l'application), `refus`
477
+ (`st-refusal` a l'etat `refuse`) ; sorties `modification` et `annulation`. Le recapitulatif
478
+ d'erreurs est le sien ; l'action principale ENVOIE le formulaire (« Previsualiser », puis
479
+ « Soumettre la demande »), double clic avale ; la saisie se fige des que l'effet est montre, la
480
+ raison dite en aide ; un changement d'etat s'annonce. Regles du schema : `min()` et `max()`, ou
481
+ `erreurHorsPlage` pour un montant en unites mineures (le message cite la borne), et
482
+ `erreurDeMotif` (motif obligatoire, longueur minimale sans les blancs). Le composant ne calcule
483
+ rien de metier. Premier catalogue du point d'entree (`LibellesParcours`, `fournirLibellesParcours`).
484
+ Recette : `docs/recettes/valeur-gouvernee.md`.
485
+
486
+ Versions et journal (0.11.0, P08-14, `ui/listes`) — `st-change-list` range une configuration
487
+ imbriquee par sections (`Changement.chemin`, un groupe de lignes nomme « Limites › Retraits »),
488
+ dit « Aucune difference » quand chaque champ est identique (ou `aucuneDifference`), et ne montre
489
+ jamais en clair une valeur `sensible` sans son gabarit `st-masked` (« Valeur masquee », erreur en
490
+ developpement). `st-version-compare` : deux choix de version (date dans le fuseau de
491
+ l'application, auteur, motif ; `[(avant)]`, `[(apres)]`), les differences que le serveur calcule
492
+ (`changements`, gabarits de valeur relayes), la meme version choisie deux fois sans difference, et
493
+ le lien vers l'entree du journal d'audit (`lienDAudit`). `st-timeline` : `suiteDisponible` montre
494
+ « Afficher les evenements plus anciens » (plus recents dans l'ordre chronologique), qui emet
495
+ `suite` ; l'application lit la page suivante par curseur et l'ajoute ; le focus va au premier
496
+ evenement ajoute et le nombre s'annonce une fois. Un filtre de categories passe par `st-filter-bar`
497
+ et ses puces : la barre annonce le retrait avec le nombre, la chronologie se tait. Les pages
498
+ chargees restent en memoire : au-dela de 500 evenements, `st-virtual-list`.
499
+
393
500
  Inventaire et regles de la suite : `docs/plan-librairie.md` et les audits de
394
501
  vague (`docs/audit-vague-2-…`, `-3-…`, `-4-2026-09-17.md`) du depot.
395
502
 
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "paquet": "@starterlib/ui",
3
- "version": "0.10.14",
3
+ "version": "0.11.1",
4
4
  "sprite": {
5
5
  "fichier": "sprite.svg",
6
- "empreinte": "A5A8196C",
7
- "sha256": "a5a8196c9e2910d0cbf2b3c17ef502364a53f4afee8100328169b366a12943e4",
8
- "octets": 82007
6
+ "empreinte": "67749CA7",
7
+ "sha256": "67749ca7c530b4dcf6231dede644973830b103ba88fa09aed4bda8f945378d52",
8
+ "octets": 87745
9
9
  },
10
10
  "source": {
11
11
  "famille": "Material Symbols Outlined",
@@ -37,6 +37,36 @@
37
37
  "nom": "accessibility_new"
38
38
  }
39
39
  },
40
+ {
41
+ "nom": "alimentation",
42
+ "groupe": "actions",
43
+ "sens": {
44
+ "fr": "Marche, arret",
45
+ "en": "Power, on and off"
46
+ },
47
+ "miroir": false,
48
+ "marque": false,
49
+ "plein": false,
50
+ "origine": {
51
+ "famille": "material-symbols",
52
+ "nom": "power_settings_new"
53
+ }
54
+ },
55
+ {
56
+ "nom": "appareil-photo",
57
+ "groupe": "fichiers",
58
+ "sens": {
59
+ "fr": "Appareil photo, capture",
60
+ "en": "Camera, capture"
61
+ },
62
+ "miroir": false,
63
+ "marque": false,
64
+ "plein": false,
65
+ "origine": {
66
+ "famille": "material-symbols",
67
+ "nom": "photo_camera"
68
+ }
69
+ },
40
70
  {
41
71
  "nom": "appareils",
42
72
  "groupe": "communication",
@@ -97,6 +127,21 @@
97
127
  "nom": "verified"
98
128
  }
99
129
  },
130
+ {
131
+ "nom": "balance",
132
+ "groupe": "donnees",
133
+ "sens": {
134
+ "fr": "Equilibre, ponderation",
135
+ "en": "Balance, weighting"
136
+ },
137
+ "miroir": false,
138
+ "marque": false,
139
+ "plein": false,
140
+ "origine": {
141
+ "famille": "material-symbols",
142
+ "nom": "balance"
143
+ }
144
+ },
100
145
  {
101
146
  "nom": "banque",
102
147
  "groupe": "banque",
@@ -952,6 +997,21 @@
952
997
  "nom": "unfold_more"
953
998
  }
954
999
  },
1000
+ {
1001
+ "nom": "cible",
1002
+ "groupe": "navigation",
1003
+ "sens": {
1004
+ "fr": "Cible, position",
1005
+ "en": "Target, location"
1006
+ },
1007
+ "miroir": false,
1008
+ "marque": false,
1009
+ "plein": false,
1010
+ "origine": {
1011
+ "famille": "material-symbols",
1012
+ "nom": "my_location"
1013
+ }
1014
+ },
955
1015
  {
956
1016
  "nom": "cle",
957
1017
  "groupe": "securite",
@@ -1087,6 +1147,21 @@
1087
1147
  "nom": "view_column"
1088
1148
  }
1089
1149
  },
1150
+ {
1151
+ "nom": "comparer",
1152
+ "groupe": "actions",
1153
+ "sens": {
1154
+ "fr": "Comparer",
1155
+ "en": "Compare"
1156
+ },
1157
+ "miroir": false,
1158
+ "marque": false,
1159
+ "plein": false,
1160
+ "origine": {
1161
+ "famille": "material-symbols",
1162
+ "nom": "compare_arrows"
1163
+ }
1164
+ },
1090
1165
  {
1091
1166
  "nom": "connexion",
1092
1167
  "groupe": "navigation",
@@ -1342,6 +1417,21 @@
1342
1417
  "nom": "done_all"
1343
1418
  }
1344
1419
  },
1420
+ {
1421
+ "nom": "drapeau",
1422
+ "groupe": "actions",
1423
+ "sens": {
1424
+ "fr": "Drapeau, signaler",
1425
+ "en": "Flag, report"
1426
+ },
1427
+ "miroir": false,
1428
+ "marque": false,
1429
+ "plein": false,
1430
+ "origine": {
1431
+ "famille": "material-symbols",
1432
+ "nom": "flag"
1433
+ }
1434
+ },
1345
1435
  {
1346
1436
  "nom": "echange",
1347
1437
  "groupe": "navigation",
@@ -1462,6 +1552,21 @@
1462
1552
  "nom": "push_pin"
1463
1553
  }
1464
1554
  },
1555
+ {
1556
+ "nom": "essai",
1557
+ "groupe": "etats",
1558
+ "sens": {
1559
+ "fr": "Essai, donnees fictives",
1560
+ "en": "Trial, sample data"
1561
+ },
1562
+ "miroir": false,
1563
+ "marque": false,
1564
+ "plein": true,
1565
+ "origine": {
1566
+ "famille": "material-symbols",
1567
+ "nom": "science"
1568
+ }
1569
+ },
1465
1570
  {
1466
1571
  "nom": "etoile",
1467
1572
  "groupe": "actions",
@@ -2062,6 +2167,21 @@
2062
2167
  "nom": "speed"
2063
2168
  }
2064
2169
  },
2170
+ {
2171
+ "nom": "lecture",
2172
+ "groupe": "actions",
2173
+ "sens": {
2174
+ "fr": "Lecture, reprendre",
2175
+ "en": "Play, resume"
2176
+ },
2177
+ "miroir": false,
2178
+ "marque": false,
2179
+ "plein": false,
2180
+ "origine": {
2181
+ "famille": "material-symbols",
2182
+ "nom": "play_arrow"
2183
+ }
2184
+ },
2065
2185
  {
2066
2186
  "nom": "lien",
2067
2187
  "groupe": "actions",
@@ -2497,6 +2617,36 @@
2497
2617
  "nom": "history_edu"
2498
2618
  }
2499
2619
  },
2620
+ {
2621
+ "nom": "passerelle",
2622
+ "groupe": "exploitation",
2623
+ "sens": {
2624
+ "fr": "Passerelle, reseau local",
2625
+ "en": "Gateway, local network"
2626
+ },
2627
+ "miroir": false,
2628
+ "marque": false,
2629
+ "plein": false,
2630
+ "origine": {
2631
+ "famille": "material-symbols",
2632
+ "nom": "lan"
2633
+ }
2634
+ },
2635
+ {
2636
+ "nom": "pause",
2637
+ "groupe": "actions",
2638
+ "sens": {
2639
+ "fr": "Pause, suspendre",
2640
+ "en": "Pause, suspend"
2641
+ },
2642
+ "miroir": false,
2643
+ "marque": false,
2644
+ "plein": false,
2645
+ "origine": {
2646
+ "famille": "material-symbols",
2647
+ "nom": "pause"
2648
+ }
2649
+ },
2500
2650
  {
2501
2651
  "nom": "pieces",
2502
2652
  "groupe": "banque",
@@ -2782,6 +2932,21 @@
2782
2932
  "nom": "straighten"
2783
2933
  }
2784
2934
  },
2935
+ {
2936
+ "nom": "reseau",
2937
+ "groupe": "exploitation",
2938
+ "sens": {
2939
+ "fr": "Reseau, connexions",
2940
+ "en": "Network, hub"
2941
+ },
2942
+ "miroir": false,
2943
+ "marque": false,
2944
+ "plein": false,
2945
+ "origine": {
2946
+ "famille": "material-symbols",
2947
+ "nom": "hub"
2948
+ }
2949
+ },
2785
2950
  {
2786
2951
  "nom": "reseau-jauge",
2787
2952
  "groupe": "exploitation",
@@ -2797,6 +2962,21 @@
2797
2962
  "nom": "network_check"
2798
2963
  }
2799
2964
  },
2965
+ {
2966
+ "nom": "robot",
2967
+ "groupe": "exploitation",
2968
+ "sens": {
2969
+ "fr": "Robot, automate",
2970
+ "en": "Bot, automaton"
2971
+ },
2972
+ "miroir": false,
2973
+ "marque": false,
2974
+ "plein": false,
2975
+ "origine": {
2976
+ "famille": "material-symbols",
2977
+ "nom": "smart_toy"
2978
+ }
2979
+ },
2800
2980
  {
2801
2981
  "nom": "rotation-arriere",
2802
2982
  "groupe": "actions",
@@ -3262,6 +3442,21 @@
3262
3442
  "nom": "supervisor_account"
3263
3443
  }
3264
3444
  },
3445
+ {
3446
+ "nom": "visage",
3447
+ "groupe": "utilisateurs",
3448
+ "sens": {
3449
+ "fr": "Visage, verification d identite",
3450
+ "en": "Face, identity check"
3451
+ },
3452
+ "miroir": false,
3453
+ "marque": false,
3454
+ "plein": false,
3455
+ "origine": {
3456
+ "famille": "material-symbols",
3457
+ "nom": "face"
3458
+ }
3459
+ },
3265
3460
  {
3266
3461
  "nom": "wifi",
3267
3462
  "groupe": "exploitation",