@starterlib/ui 0.7.2 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENCES-TIERCES.md +236 -0
  2. package/README.md +163 -56
  3. package/assets/icones/catalogue.json +3296 -0
  4. package/assets/icones/sprite.svg +235 -35
  5. package/fesm2022/starterlib-ui-arbre.mjs +475 -0
  6. package/fesm2022/starterlib-ui-arbre.mjs.map +1 -0
  7. package/fesm2022/starterlib-ui-donnees.mjs +3561 -0
  8. package/fesm2022/starterlib-ui-donnees.mjs.map +1 -0
  9. package/fesm2022/starterlib-ui-formulaires.mjs +3186 -442
  10. package/fesm2022/starterlib-ui-formulaires.mjs.map +1 -1
  11. package/fesm2022/starterlib-ui-libelles-en.mjs +383 -0
  12. package/fesm2022/starterlib-ui-libelles-en.mjs.map +1 -0
  13. package/fesm2022/starterlib-ui-listes.mjs +5367 -0
  14. package/fesm2022/starterlib-ui-listes.mjs.map +1 -0
  15. package/fesm2022/starterlib-ui-messagerie.mjs +737 -0
  16. package/fesm2022/starterlib-ui-messagerie.mjs.map +1 -0
  17. package/fesm2022/starterlib-ui-navigation.mjs +509 -0
  18. package/fesm2022/starterlib-ui-navigation.mjs.map +1 -0
  19. package/fesm2022/starterlib-ui-onglets.mjs +371 -0
  20. package/fesm2022/starterlib-ui-onglets.mjs.map +1 -0
  21. package/fesm2022/starterlib-ui-parcours.mjs +2449 -0
  22. package/fesm2022/starterlib-ui-parcours.mjs.map +1 -0
  23. package/fesm2022/starterlib-ui-qr.mjs +907 -0
  24. package/fesm2022/starterlib-ui-qr.mjs.map +1 -0
  25. package/fesm2022/starterlib-ui-saisie.mjs +8609 -0
  26. package/fesm2022/starterlib-ui-saisie.mjs.map +1 -0
  27. package/fesm2022/starterlib-ui-selection.mjs +1341 -0
  28. package/fesm2022/starterlib-ui-selection.mjs.map +1 -0
  29. package/fesm2022/starterlib-ui-sens.mjs +59 -0
  30. package/fesm2022/starterlib-ui-sens.mjs.map +1 -0
  31. package/fesm2022/starterlib-ui-surfaces.mjs +5140 -1387
  32. package/fesm2022/starterlib-ui-surfaces.mjs.map +1 -1
  33. package/fesm2022/starterlib-ui.mjs +10729 -5689
  34. package/fesm2022/starterlib-ui.mjs.map +1 -1
  35. package/package.json +58 -17
  36. package/styles/amorce.css +69 -0
  37. package/styles/couches.css +178 -0
  38. package/types/starterlib-ui-arbre.d.ts +225 -0
  39. package/types/starterlib-ui-donnees.d.ts +1489 -0
  40. package/types/starterlib-ui-formulaires.d.ts +1174 -138
  41. package/types/starterlib-ui-libelles-en.d.ts +5 -0
  42. package/types/starterlib-ui-listes.d.ts +2487 -0
  43. package/types/starterlib-ui-messagerie.d.ts +317 -0
  44. package/types/starterlib-ui-navigation.d.ts +242 -0
  45. package/types/starterlib-ui-onglets.d.ts +212 -0
  46. package/types/starterlib-ui-parcours.d.ts +916 -0
  47. package/types/starterlib-ui-qr.d.ts +105 -0
  48. package/types/starterlib-ui-saisie.d.ts +3806 -0
  49. package/types/starterlib-ui-selection.d.ts +488 -0
  50. package/types/starterlib-ui-sens.d.ts +44 -0
  51. package/types/starterlib-ui-surfaces.d.ts +1899 -510
  52. package/types/starterlib-ui.d.ts +4731 -2678
  53. package/fesm2022/starterlib-ui-interactions.mjs +0 -598
  54. package/fesm2022/starterlib-ui-interactions.mjs.map +0 -1
  55. package/types/starterlib-ui-interactions.d.ts +0 -316
@@ -0,0 +1,371 @@
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, Directive, ElementRef, afterRenderEffect, booleanAttribute, computed, effect, inject, input, isDevMode, model } from "@angular/core";
3
+ import * as i1 from "@angular/aria/tabs";
4
+ import { Tab, TabContent, TabList, TabPanel, Tabs } from "@angular/aria/tabs";
5
+ import { ST_LOCALE, StIcon, StIdentifiants } from "@starterlib/ui";
6
+ var StTabs = class StTabs {
7
+ hote = inject(ElementRef).nativeElement;
8
+ locale = inject(ST_LOCALE);
9
+ baseParDefaut = inject(StIdentifiants).prochain("st-tabs");
10
+ onglets = input.required(...ngDevMode ? [{ debugName: "onglets" }] : /* istanbul ignore next */ []);
11
+ etiquette = input.required(...ngDevMode ? [{ debugName: "etiquette" }] : /* istanbul ignore next */ []);
12
+ activation = input("manuelle", ...ngDevMode ? [{ debugName: "activation" }] : /* istanbul ignore next */ []);
13
+ orientation = input("horizontale", ...ngDevMode ? [{ debugName: "orientation" }] : /* istanbul ignore next */ []);
14
+ identifiant = input(void 0, ...ngDevMode ? [{ debugName: "identifiant" }] : /* istanbul ignore next */ []);
15
+ selection = model(void 0, ...ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []);
16
+ selectionEffective = computed(() => {
17
+ const onglets = this.onglets();
18
+ const demandee = this.selection();
19
+ return onglets.some((o) => o.valeur === demandee && o.desactive !== true) ? demandee : onglets.find((o) => o.desactive !== true)?.valeur;
20
+ }, ...ngDevMode ? [{ debugName: "selectionEffective" }] : /* istanbul ignore next */ []);
21
+ modeAria = computed(() => this.activation() === "automatique" ? "follow" : "explicit", ...ngDevMode ? [{ debugName: "modeAria" }] : /* istanbul ignore next */ []);
22
+ orientationAria = computed(() => this.orientation() === "verticale" ? "vertical" : "horizontal", ...ngDevMode ? [{ debugName: "orientationAria" }] : /* istanbul ignore next */ []);
23
+ formatDesComptes = computed(() => new Intl.NumberFormat(this.locale()), ...ngDevMode ? [{ debugName: "formatDesComptes" }] : /* istanbul ignore next */ []);
24
+ constructor() {
25
+ effect(() => {
26
+ const demandee = this.selection();
27
+ const effective = this.selectionEffective();
28
+ if (effective === demandee) return;
29
+ if (demandee !== void 0 && isDevMode()) console.warn(`[st-tabs] selection "${demandee}" : aucun onglet selectionnable de cette valeur (inconnue ou desactivee) ; ${effective === void 0 ? "aucun onglet disponible" : `repli sur "${effective}"`}.`);
30
+ this.selection.set(effective);
31
+ });
32
+ afterRenderEffect({
33
+ earlyRead: () => {
34
+ const valeur = this.selectionEffective();
35
+ if (valeur === void 0 || this.orientation() === "verticale") return 0;
36
+ const liste = this.hote.querySelector(".st-tabs__liste");
37
+ const onglet = this.hote.ownerDocument.getElementById(this.idDOnglet(valeur));
38
+ if (liste === null || onglet === null) return 0;
39
+ const cadre = liste.getBoundingClientRect();
40
+ const boite = onglet.getBoundingClientRect();
41
+ const calcule = this.hote.ownerDocument.defaultView?.getComputedStyle(liste);
42
+ const avant = cadre.left + (Number.parseFloat(calcule?.scrollPaddingLeft ?? "") || 0);
43
+ const apres = cadre.right - (Number.parseFloat(calcule?.scrollPaddingRight ?? "") || 0);
44
+ if (boite.left < avant) return boite.left - avant;
45
+ if (boite.right > apres) return Math.min(boite.right - apres, boite.left - avant);
46
+ return 0;
47
+ },
48
+ write: (ecart) => {
49
+ const decalage = ecart();
50
+ const liste = this.hote.querySelector(".st-tabs__liste");
51
+ if (decalage !== 0 && liste !== null) liste.scrollLeft += decalage;
52
+ }
53
+ });
54
+ }
55
+ idDOnglet(valeur) {
56
+ return `${this.identifiant() ?? this.baseParDefaut}-onglet-${valeur}`;
57
+ }
58
+ compteDe(compte) {
59
+ return this.formatDesComptes().format(compte);
60
+ }
61
+ static ɵfac = i0.ɵɵngDeclareFactory({
62
+ minVersion: "12.0.0",
63
+ version: "22.2.0",
64
+ ngImport: i0,
65
+ type: StTabs,
66
+ deps: [],
67
+ target: i0.ɵɵFactoryTarget.Component
68
+ });
69
+ static ɵcmp = i0.ɵɵngDeclareComponent({
70
+ minVersion: "17.0.0",
71
+ version: "22.2.0",
72
+ type: StTabs,
73
+ isStandalone: true,
74
+ selector: "st-tabs",
75
+ inputs: {
76
+ onglets: {
77
+ classPropertyName: "onglets",
78
+ publicName: "onglets",
79
+ isSignal: true,
80
+ isRequired: true,
81
+ transformFunction: null
82
+ },
83
+ etiquette: {
84
+ classPropertyName: "etiquette",
85
+ publicName: "etiquette",
86
+ isSignal: true,
87
+ isRequired: true,
88
+ transformFunction: null
89
+ },
90
+ activation: {
91
+ classPropertyName: "activation",
92
+ publicName: "activation",
93
+ isSignal: true,
94
+ isRequired: false,
95
+ transformFunction: null
96
+ },
97
+ orientation: {
98
+ classPropertyName: "orientation",
99
+ publicName: "orientation",
100
+ isSignal: true,
101
+ isRequired: false,
102
+ transformFunction: null
103
+ },
104
+ identifiant: {
105
+ classPropertyName: "identifiant",
106
+ publicName: "identifiant",
107
+ isSignal: true,
108
+ isRequired: false,
109
+ transformFunction: null
110
+ },
111
+ selection: {
112
+ classPropertyName: "selection",
113
+ publicName: "selection",
114
+ isSignal: true,
115
+ isRequired: false,
116
+ transformFunction: null
117
+ }
118
+ },
119
+ outputs: { selection: "selectionChange" },
120
+ host: {
121
+ properties: { "attr.data-orientation": "orientation()" },
122
+ classAttribute: "st-tabs"
123
+ },
124
+ hostDirectives: [{ directive: i1.Tabs }],
125
+ ngImport: i0,
126
+ template: "<div\n class=\"st-tabs__liste\"\n ngTabList\n [attr.aria-label]=\"etiquette()\"\n [selectionMode]=\"modeAria()\"\n [orientation]=\"orientationAria()\"\n [selectedTab]=\"selectionEffective()\"\n (selectedTabChange)=\"selection.set($event)\"\n>\n @for (onglet of onglets(); track onglet.valeur) {\n <button\n class=\"st-tabs__onglet\"\n type=\"button\"\n ngTab\n [id]=\"idDOnglet(onglet.valeur)\"\n [value]=\"onglet.valeur\"\n [disabled]=\"onglet.desactive === true\"\n >\n @if (onglet.icone; as icone) {\n <st-icon [icone]=\"icone\" taille=\"18\" />\n }\n <span class=\"st-tabs__libelle\">{{ onglet.libelle }}</span>\n <!-- Compte et complement entrent dans le NOM par un texte lecteur-seul (« Operations, 42 ») ;\n ce que l'on voit est muet : lu tel quel, « Operations42 » colle au libelle. -->\n @if (onglet.compte !== undefined) {\n <span class=\"st-vh\">, {{ compteDe(onglet.compte) }}</span>\n <span class=\"st-tabs__compte\" aria-hidden=\"true\">{{ compteDe(onglet.compte) }}</span>\n }\n @if (onglet.complement) {\n <span class=\"st-vh\">, {{ onglet.complement }}</span>\n <span class=\"st-tabs__complement\" aria-hidden=\"true\">{{ onglet.complement }}</span>\n }\n @if (onglet.valeur === selectionEffective()) {\n <span class=\"st-tabs__marqueur\" aria-hidden=\"true\"></span>\n }\n </button>\n }\n</div>\n\n<div class=\"st-tabs__panneaux\">\n <ng-content />\n</div>\n",
127
+ 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([hidden]){display:none!important}:host{display:block}:host([data-orientation=verticale]){display:flex;gap:var(--st-espacement-4)}.st-tabs__liste{display:flex;gap:var(--st-espacement-4);align-items:center;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--st-espacement-4);scrollbar-width:thin;background:linear-gradient(to right,var(--st-couleur-surface) 30%,transparent) left center/var(--st-espacement-10) 100% no-repeat local,linear-gradient(to left,var(--st-couleur-surface) 30%,transparent) right center/var(--st-espacement-10) 100% no-repeat local,radial-gradient(farthest-side at 0 50%,var(--st-couleur-ombre),transparent) left center/var(--st-espacement-3) 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,var(--st-couleur-ombre),transparent) right center/var(--st-espacement-3) 100% no-repeat scroll;box-shadow:inset 0 calc(-1 * var(--st-epaisseur-capillaire)) 0 0 var(--st-couleur-bordure)}:host([data-orientation=verticale]) .st-tabs__liste{flex-direction:column;gap:0;align-items:stretch;overflow:visible;scroll-snap-type:none;background:none;border-inline-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure);box-shadow:none}.st-tabs__panneaux{flex:1 1 auto;min-inline-size:0}.st-tabs__onglet:focus-visible{outline:var(--st-focus-epaisseur) solid var(--st-couleur-anneau-focus);outline-offset:calc(-1 * var(--st-focus-epaisseur))}.st-tabs__onglet{font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-normal);position:relative;display:flex;flex:none;gap:var(--st-espacement-1);align-items:center;block-size:var(--st-hauteur-commande-defaut);min-inline-size:var(--st-cible-tactile-min);padding-block:0;padding-inline:var(--st-espacement-4);font-family:inherit;color:var(--st-couleur-texte-discret);white-space:nowrap;cursor:pointer;background-color:transparent;border:0;border-radius:0;scroll-snap-align:start;transition:color var(--st-duree-rapide) var(--st-courbe-standard),background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host([data-orientation=verticale]) .st-tabs__onglet{gap:var(--st-espacement-2);text-align:start}.st-tabs__complement{margin-inline-start:auto;padding-inline-start:var(--st-espacement-2);font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);font-variant-numeric:var(--st-chiffres-alignes);letter-spacing:var(--st-interlettrage-capitales);color:var(--st-couleur-texte-attenue)}.st-tabs__compte{margin-inline-start:var(--st-espacement-1-5);padding-block:var(--st-espacement-demi);padding-inline:var(--st-espacement-2);font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);font-variant-numeric:var(--st-chiffres-alignes);letter-spacing:var(--st-interlettrage-capitales);color:var(--st-couleur-texte-discret);background-color:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-tabs__marqueur{position:absolute;inset-inline:0;inset-block-end:calc(-1 * var(--st-epaisseur-capillaire));block-size:var(--st-epaisseur-forte);background-color:var(--st-couleur-bordure-selection);forced-color-adjust:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([data-orientation=verticale]) .st-tabs__marqueur{inset-block:0;inset-inline:auto calc(-1 * var(--st-epaisseur-capillaire));inline-size:var(--st-epaisseur-forte);block-size:auto}.st-tabs__onglet:active:not([aria-disabled=true]){color:var(--st-couleur-texte);background-color:var(--st-couleur-surface-active);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}@media(hover:hover){.st-tabs__onglet:hover:not([aria-selected=true],[aria-disabled=true],:active){color:var(--st-couleur-texte);background-color:color-mix(in srgb,var(--st-couleur-surface-conteneur-bas) 70%,transparent);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}}.st-tabs__onglet[aria-selected=true]{font-weight:var(--st-graisse-semi);color:var(--st-couleur-texte-primaire);background-color:var(--st-couleur-surface-conteneur-bas);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}:host([data-orientation=verticale]) .st-tabs__onglet{border-radius:0}.st-tabs__onglet[aria-disabled=true]{color:var(--st-couleur-texte-desactive);cursor:not-allowed}@media(forced-colors:active){:host(:not([data-orientation=verticale])) .st-tabs__liste{border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure)}}@media print{.st-tabs__liste{flex-wrap:wrap;overflow:visible;background:none;border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure);box-shadow:none}:host([data-orientation=verticale]) .st-tabs__liste{border-block-end:0}}\n"],
128
+ dependencies: [
129
+ {
130
+ kind: "directive",
131
+ type: TabList,
132
+ selector: "[ngTabList]",
133
+ inputs: [
134
+ "orientation",
135
+ "wrap",
136
+ "softDisabled",
137
+ "focusMode",
138
+ "selectionMode",
139
+ "selectedTab",
140
+ "disabled"
141
+ ],
142
+ outputs: ["selectedTabChange"],
143
+ exportAs: ["ngTabList"]
144
+ },
145
+ {
146
+ kind: "directive",
147
+ type: Tab,
148
+ selector: "[ngTab]",
149
+ inputs: [
150
+ "id",
151
+ "disabled",
152
+ "value"
153
+ ],
154
+ exportAs: ["ngTab"]
155
+ },
156
+ {
157
+ kind: "component",
158
+ type: StIcon,
159
+ selector: "st-icon",
160
+ inputs: [
161
+ "icone",
162
+ "nom",
163
+ "variante",
164
+ "sprite",
165
+ "nomMetier",
166
+ "taille",
167
+ "ton",
168
+ "etiquette",
169
+ "miroir"
170
+ ]
171
+ }
172
+ ],
173
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
174
+ });
175
+ };
176
+ i0.ɵɵngDeclareClassMetadata({
177
+ minVersion: "12.0.0",
178
+ version: "22.2.0",
179
+ ngImport: i0,
180
+ type: StTabs,
181
+ decorators: [{
182
+ type: Component,
183
+ args: [{
184
+ selector: "st-tabs",
185
+ changeDetection: ChangeDetectionStrategy.OnPush,
186
+ imports: [
187
+ TabList,
188
+ Tab,
189
+ StIcon
190
+ ],
191
+ hostDirectives: [Tabs],
192
+ host: {
193
+ class: "st-tabs",
194
+ "[attr.data-orientation]": "orientation()"
195
+ },
196
+ template: "<div\n class=\"st-tabs__liste\"\n ngTabList\n [attr.aria-label]=\"etiquette()\"\n [selectionMode]=\"modeAria()\"\n [orientation]=\"orientationAria()\"\n [selectedTab]=\"selectionEffective()\"\n (selectedTabChange)=\"selection.set($event)\"\n>\n @for (onglet of onglets(); track onglet.valeur) {\n <button\n class=\"st-tabs__onglet\"\n type=\"button\"\n ngTab\n [id]=\"idDOnglet(onglet.valeur)\"\n [value]=\"onglet.valeur\"\n [disabled]=\"onglet.desactive === true\"\n >\n @if (onglet.icone; as icone) {\n <st-icon [icone]=\"icone\" taille=\"18\" />\n }\n <span class=\"st-tabs__libelle\">{{ onglet.libelle }}</span>\n <!-- Compte et complement entrent dans le NOM par un texte lecteur-seul (« Operations, 42 ») ;\n ce que l'on voit est muet : lu tel quel, « Operations42 » colle au libelle. -->\n @if (onglet.compte !== undefined) {\n <span class=\"st-vh\">, {{ compteDe(onglet.compte) }}</span>\n <span class=\"st-tabs__compte\" aria-hidden=\"true\">{{ compteDe(onglet.compte) }}</span>\n }\n @if (onglet.complement) {\n <span class=\"st-vh\">, {{ onglet.complement }}</span>\n <span class=\"st-tabs__complement\" aria-hidden=\"true\">{{ onglet.complement }}</span>\n }\n @if (onglet.valeur === selectionEffective()) {\n <span class=\"st-tabs__marqueur\" aria-hidden=\"true\"></span>\n }\n </button>\n }\n</div>\n\n<div class=\"st-tabs__panneaux\">\n <ng-content />\n</div>\n",
197
+ 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([hidden]){display:none!important}:host{display:block}:host([data-orientation=verticale]){display:flex;gap:var(--st-espacement-4)}.st-tabs__liste{display:flex;gap:var(--st-espacement-4);align-items:center;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:var(--st-espacement-4);scrollbar-width:thin;background:linear-gradient(to right,var(--st-couleur-surface) 30%,transparent) left center/var(--st-espacement-10) 100% no-repeat local,linear-gradient(to left,var(--st-couleur-surface) 30%,transparent) right center/var(--st-espacement-10) 100% no-repeat local,radial-gradient(farthest-side at 0 50%,var(--st-couleur-ombre),transparent) left center/var(--st-espacement-3) 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,var(--st-couleur-ombre),transparent) right center/var(--st-espacement-3) 100% no-repeat scroll;box-shadow:inset 0 calc(-1 * var(--st-epaisseur-capillaire)) 0 0 var(--st-couleur-bordure)}:host([data-orientation=verticale]) .st-tabs__liste{flex-direction:column;gap:0;align-items:stretch;overflow:visible;scroll-snap-type:none;background:none;border-inline-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure);box-shadow:none}.st-tabs__panneaux{flex:1 1 auto;min-inline-size:0}.st-tabs__onglet:focus-visible{outline:var(--st-focus-epaisseur) solid var(--st-couleur-anneau-focus);outline-offset:calc(-1 * var(--st-focus-epaisseur))}.st-tabs__onglet{font-size:var(--st-taille-sm);line-height:var(--st-interligne-sm);font-weight:var(--st-graisse-moyenne);letter-spacing:var(--st-interlettrage-normal);position:relative;display:flex;flex:none;gap:var(--st-espacement-1);align-items:center;block-size:var(--st-hauteur-commande-defaut);min-inline-size:var(--st-cible-tactile-min);padding-block:0;padding-inline:var(--st-espacement-4);font-family:inherit;color:var(--st-couleur-texte-discret);white-space:nowrap;cursor:pointer;background-color:transparent;border:0;border-radius:0;scroll-snap-align:start;transition:color var(--st-duree-rapide) var(--st-courbe-standard),background-color var(--st-duree-rapide) var(--st-courbe-standard)}:host([data-orientation=verticale]) .st-tabs__onglet{gap:var(--st-espacement-2);text-align:start}.st-tabs__complement{margin-inline-start:auto;padding-inline-start:var(--st-espacement-2);font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);font-variant-numeric:var(--st-chiffres-alignes);letter-spacing:var(--st-interlettrage-capitales);color:var(--st-couleur-texte-attenue)}.st-tabs__compte{margin-inline-start:var(--st-espacement-1-5);padding-block:var(--st-espacement-demi);padding-inline:var(--st-espacement-2);font-size:var(--st-taille-2xs);line-height:var(--st-interligne-2xs);font-weight:var(--st-graisse-semi);font-variant-numeric:var(--st-chiffres-alignes);letter-spacing:var(--st-interlettrage-capitales);color:var(--st-couleur-texte-discret);background-color:var(--st-couleur-surface-enfoncee);border-radius:var(--st-rayon-pleine)}.st-tabs__marqueur{position:absolute;inset-inline:0;inset-block-end:calc(-1 * var(--st-epaisseur-capillaire));block-size:var(--st-epaisseur-forte);background-color:var(--st-couleur-bordure-selection);forced-color-adjust:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}:host([data-orientation=verticale]) .st-tabs__marqueur{inset-block:0;inset-inline:auto calc(-1 * var(--st-epaisseur-capillaire));inline-size:var(--st-epaisseur-forte);block-size:auto}.st-tabs__onglet:active:not([aria-disabled=true]){color:var(--st-couleur-texte);background-color:var(--st-couleur-surface-active);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}@media(hover:hover){.st-tabs__onglet:hover:not([aria-selected=true],[aria-disabled=true],:active){color:var(--st-couleur-texte);background-color:color-mix(in srgb,var(--st-couleur-surface-conteneur-bas) 70%,transparent);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}}.st-tabs__onglet[aria-selected=true]{font-weight:var(--st-graisse-semi);color:var(--st-couleur-texte-primaire);background-color:var(--st-couleur-surface-conteneur-bas);border-start-start-radius:var(--st-rayon-sm);border-start-end-radius:var(--st-rayon-sm)}:host([data-orientation=verticale]) .st-tabs__onglet{border-radius:0}.st-tabs__onglet[aria-disabled=true]{color:var(--st-couleur-texte-desactive);cursor:not-allowed}@media(forced-colors:active){:host(:not([data-orientation=verticale])) .st-tabs__liste{border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure)}}@media print{.st-tabs__liste{flex-wrap:wrap;overflow:visible;background:none;border-block-end:var(--st-epaisseur-capillaire) solid var(--st-couleur-bordure);box-shadow:none}:host([data-orientation=verticale]) .st-tabs__liste{border-block-end:0}}\n"]
198
+ }]
199
+ }],
200
+ ctorParameters: () => [],
201
+ propDecorators: {
202
+ onglets: [{
203
+ type: i0.Input,
204
+ args: [{
205
+ isSignal: true,
206
+ alias: "onglets",
207
+ required: true
208
+ }]
209
+ }],
210
+ etiquette: [{
211
+ type: i0.Input,
212
+ args: [{
213
+ isSignal: true,
214
+ alias: "etiquette",
215
+ required: true
216
+ }]
217
+ }],
218
+ activation: [{
219
+ type: i0.Input,
220
+ args: [{
221
+ isSignal: true,
222
+ alias: "activation",
223
+ required: false
224
+ }]
225
+ }],
226
+ orientation: [{
227
+ type: i0.Input,
228
+ args: [{
229
+ isSignal: true,
230
+ alias: "orientation",
231
+ required: false
232
+ }]
233
+ }],
234
+ identifiant: [{
235
+ type: i0.Input,
236
+ args: [{
237
+ isSignal: true,
238
+ alias: "identifiant",
239
+ required: false
240
+ }]
241
+ }],
242
+ selection: [{
243
+ type: i0.Input,
244
+ args: [{
245
+ isSignal: true,
246
+ alias: "selection",
247
+ required: false
248
+ }]
249
+ }, {
250
+ type: i0.Output,
251
+ args: ["selectionChange"]
252
+ }]
253
+ }
254
+ });
255
+ var StTabPanel = class StTabPanel {
256
+ contenuConserve = input(false, {
257
+ ...ngDevMode ? { debugName: "contenuConserve" } : /* istanbul ignore next */ {},
258
+ transform: booleanAttribute
259
+ });
260
+ onglets = inject(StTabs, { optional: true });
261
+ constructor() {
262
+ relayerLaConservation(this.contenuConserve);
263
+ }
264
+ static ɵfac = i0.ɵɵngDeclareFactory({
265
+ minVersion: "12.0.0",
266
+ version: "22.2.0",
267
+ ngImport: i0,
268
+ type: StTabPanel,
269
+ deps: [],
270
+ target: i0.ɵɵFactoryTarget.Component
271
+ });
272
+ static ɵcmp = i0.ɵɵngDeclareComponent({
273
+ minVersion: "17.1.0",
274
+ version: "22.2.0",
275
+ type: StTabPanel,
276
+ isStandalone: true,
277
+ selector: "st-tab-panel",
278
+ inputs: { contenuConserve: {
279
+ classPropertyName: "contenuConserve",
280
+ publicName: "contenuConserve",
281
+ isSignal: true,
282
+ isRequired: false,
283
+ transformFunction: null
284
+ } },
285
+ host: {
286
+ properties: { "attr.data-orientation": "onglets?.orientation() ?? null" },
287
+ classAttribute: "st-tab-panel"
288
+ },
289
+ hostDirectives: [{
290
+ directive: i1.TabPanel,
291
+ inputs: ["value", "valeur"]
292
+ }],
293
+ ngImport: i0,
294
+ template: "<ng-content />\n",
295
+ 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([hidden]){display:none!important}:host:focus-visible{outline:var(--st-focus-epaisseur) solid var(--st-couleur-anneau-focus);outline-offset:var(--st-focus-decalage);box-shadow:0 0 0 var(--st-focus-lisere) var(--st-couleur-lisere-focus)}:host{display:block;padding-block:var(--st-espacement-4)}:host([data-orientation=verticale]){padding-block:0}:host([inert]){display:none}\n"],
296
+ changeDetection: i0.ChangeDetectionStrategy.OnPush
297
+ });
298
+ };
299
+ i0.ɵɵngDeclareClassMetadata({
300
+ minVersion: "12.0.0",
301
+ version: "22.2.0",
302
+ ngImport: i0,
303
+ type: StTabPanel,
304
+ decorators: [{
305
+ type: Component,
306
+ args: [{
307
+ selector: "st-tab-panel",
308
+ changeDetection: ChangeDetectionStrategy.OnPush,
309
+ hostDirectives: [{
310
+ directive: TabPanel,
311
+ inputs: ["value: valeur"]
312
+ }],
313
+ host: {
314
+ class: "st-tab-panel",
315
+ "[attr.data-orientation]": "onglets?.orientation() ?? null"
316
+ },
317
+ template: "<ng-content />\n",
318
+ 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([hidden]){display:none!important}:host:focus-visible{outline:var(--st-focus-epaisseur) solid var(--st-couleur-anneau-focus);outline-offset:var(--st-focus-decalage);box-shadow:0 0 0 var(--st-focus-lisere) var(--st-couleur-lisere-focus)}:host{display:block;padding-block:var(--st-espacement-4)}:host([data-orientation=verticale]){padding-block:0}:host([inert]){display:none}\n"]
319
+ }]
320
+ }],
321
+ ctorParameters: () => [],
322
+ propDecorators: { contenuConserve: [{
323
+ type: i0.Input,
324
+ args: [{
325
+ isSignal: true,
326
+ alias: "contenuConserve",
327
+ required: false
328
+ }]
329
+ }] }
330
+ });
331
+ function relayerLaConservation(conserve) {
332
+ const primitive = inject(i1["ɵɵDeferredContentAware"]);
333
+ effect(() => {
334
+ primitive.preserveContent.set(conserve());
335
+ });
336
+ }
337
+ var StTabContent = class StTabContent {
338
+ static ɵfac = i0.ɵɵngDeclareFactory({
339
+ minVersion: "12.0.0",
340
+ version: "22.2.0",
341
+ ngImport: i0,
342
+ type: StTabContent,
343
+ deps: [],
344
+ target: i0.ɵɵFactoryTarget.Directive
345
+ });
346
+ static ɵdir = i0.ɵɵngDeclareDirective({
347
+ minVersion: "14.0.0",
348
+ version: "22.2.0",
349
+ type: StTabContent,
350
+ isStandalone: true,
351
+ selector: "ng-template[stTabContent]",
352
+ hostDirectives: [{ directive: i1.TabContent }],
353
+ ngImport: i0
354
+ });
355
+ };
356
+ i0.ɵɵngDeclareClassMetadata({
357
+ minVersion: "12.0.0",
358
+ version: "22.2.0",
359
+ ngImport: i0,
360
+ type: StTabContent,
361
+ decorators: [{
362
+ type: Directive,
363
+ args: [{
364
+ selector: "ng-template[stTabContent]",
365
+ hostDirectives: [TabContent]
366
+ }]
367
+ }]
368
+ });
369
+ export { StTabContent, StTabPanel, StTabs };
370
+
371
+ //# sourceMappingURL=starterlib-ui-onglets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starterlib-ui-onglets.mjs","names":[],"sources":["../../../../packages/ui/onglets/src/lib/st-tabs.ts","../../../../packages/ui/onglets/src/lib/st-tabs.html","../../../../packages/ui/onglets/src/lib/st-tab-panel.ts","../../../../packages/ui/onglets/src/lib/st-tab-panel.html","../../../../packages/ui/onglets/src/lib/st-tab-content.ts"],"mappings":"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"}