@starterlib/ui 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starterlib/ui",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Bibliotheque de composants st-* du socle frontal starter, sur CDK et Aria.",
5
5
  "license": "UNLICENSED",
6
6
  "sideEffects": false,
@@ -25,8 +25,8 @@
25
25
  "@angular/forms": "^22.1.0",
26
26
  "@angular/cdk": "^22.1.0",
27
27
  "@angular/aria": "^22.1.0",
28
- "@starterlib/tokens": "^0.4.0",
29
- "@starterlib/util": "^0.4.0"
28
+ "@starterlib/tokens": "^0.5.0",
29
+ "@starterlib/util": "^0.5.0"
30
30
  },
31
31
  "peerDependenciesMeta": {
32
32
  "@angular/cdk": {
@@ -265,5 +265,52 @@ declare class StMultiselect extends ContratDeChamp implements FormValueControl<r
265
265
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<StMultiselect, "st-multiselect", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; }, { "value": "valueChange"; }, never, never, true, never>;
266
266
  }
267
267
 
268
- export { StCombobox, StMultiselect, StSidenav, StSidenavToggle, StTabContent, StTabPanel, StTabs };
269
- export type { ActivationDOnglet, FiltrageDeListe, ModeDeNavigation, Onglet, OrientationDOnglets };
268
+ /** Un noeud, decrit en donnees. */
269
+ interface NoeudDArbre {
270
+ /** Identifiant stable : il porte la selection et le depliage. */
271
+ readonly valeur: string;
272
+ readonly libelle: string;
273
+ readonly enfants?: readonly NoeudDArbre[];
274
+ readonly desactive?: boolean;
275
+ }
276
+ /**
277
+ * Arbre de donnees hierarchiques, sur `@angular/aria/tree` : dossiers, plan
278
+ * comptable, organisation.
279
+ *
280
+ * ```html
281
+ * <st-tree etiquette="Plan comptable" [noeuds]="comptes" [(selection)]="compte" [(deplies)]="ouverts" />
282
+ * ```
283
+ *
284
+ * ⚠️ **Jamais pour la navigation du site** (UX-17) : une navigation est une liste
285
+ * de liens, que le lecteur d'ecran liste et parcourt comme telle. Un arbre se
286
+ * parcourt aux fleches, un element a la fois, et ses elements ne sont pas des
287
+ * liens. Le mode « navigation » de la primitive n'est donc pas expose.
288
+ *
289
+ * ⚠️ **Les noeuds sont rendus par le composant, a partir de donnees** (FE-6) : la
290
+ * primitive relie un element a son arbre par injection, et un contenu projete
291
+ * garde l'injecteur de l'endroit ou il est ecrit — lecon de `st-menu`.
292
+ *
293
+ * Clavier de la primitive : fleches haut et bas entre les elements visibles,
294
+ * droite pour deplier ou entrer, gauche pour replier ou remonter, Debut et Fin,
295
+ * recherche a la frappe ; Espace ou Entree choisit. Selection et depliage sont des
296
+ * listes de VALEURS, lisibles et restaurables par l'application.
297
+ */
298
+ declare class StTree {
299
+ /** Nom de l'arbre, lu a l'entree. Obligatoire. */
300
+ readonly etiquette: _angular_core.InputSignal<string>;
301
+ readonly noeuds: _angular_core.InputSignal<readonly NoeudDArbre[]>;
302
+ readonly multiple: _angular_core.InputSignalWithTransform<boolean, unknown>;
303
+ readonly selection: _angular_core.ModelSignal<readonly string[]>;
304
+ readonly deplies: _angular_core.ModelSignal<readonly string[]>;
305
+ /** La primitive attend un tableau modifiable ; le modele est en lecture seule. */
306
+ protected readonly valeursChoisies: _angular_core.Signal<string[]>;
307
+ private readonly ensembleDeplie;
308
+ protected estDeplie(noeud: NoeudDArbre): boolean;
309
+ protected surDepliage(noeud: NoeudDArbre, deplie: boolean): void;
310
+ protected surSelection(valeurs: readonly string[]): void;
311
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StTree, never>;
312
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<StTree, "st-tree", never, { "etiquette": { "alias": "etiquette"; "required": true; "isSignal": true; }; "noeuds": { "alias": "noeuds"; "required": true; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "deplies": { "alias": "deplies"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "deplies": "depliesChange"; }, never, never, true, never>;
313
+ }
314
+
315
+ export { StCombobox, StMultiselect, StSidenav, StSidenavToggle, StTabContent, StTabPanel, StTabs, StTree };
316
+ export type { ActivationDOnglet, FiltrageDeListe, ModeDeNavigation, NoeudDArbre, Onglet, OrientationDOnglets };
@@ -82,7 +82,7 @@ type TonDElementDeMenu = Extract<Ton, 'neutre' | 'danger'>;
82
82
  * actions par leur libelle, donc par leur traduction.
83
83
  */
84
84
  declare class StMenuItem {
85
- readonly icone: i0.InputSignal<"boite-vide" | "calendrier" | "cercle" | "cercle-coche" | "cercle-croix" | "cercle-info" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "coche" | "copie" | "corbeille" | "croix" | "fichier" | "hors-ligne" | "lien-externe" | "menu" | "oeil" | "oeil-barre" | "plus" | "rafraichir" | "recherche" | "serveur" | "televerser" | "triangle-alerte" | "utilisateur" | null>;
85
+ readonly icone: i0.InputSignal<"boite-vide" | "calendrier" | "cercle" | "cercle-coche" | "cercle-croix" | "cercle-info" | "chevron-bas" | "chevron-droite" | "chevron-gauche" | "chevron-haut" | "coche" | "copie" | "corbeille" | "croix" | "fichier" | "hors-ligne" | "lien-externe" | "menu" | "oeil" | "oeil-barre" | "plus" | "rafraichir" | "recherche" | "serveur" | "televerser" | "tri" | "triangle-alerte" | "utilisateur" | null>;
86
86
  readonly ton: i0.InputSignal<TonDElementDeMenu>;
87
87
  static ɵfac: i0.ɵɵFactoryDeclaration<StMenuItem, never>;
88
88
  static ɵcmp: i0.ɵɵComponentDeclaration<StMenuItem, "button[stMenuItem]", never, { "icone": { "alias": "icone"; "required": false; "isSignal": true; }; "ton": { "alias": "ton"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.MenuItem; inputs: { "value": "valeur"; "disabled": "desactive"; "role": "role"; }; outputs: {}; }]>;