@lab-anssi/ui-kit 1.12.4 → 1.13.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 (34) hide show
  1. package/dist/Alerte.svelte +1 -31
  2. package/dist/CentreAide.svelte +1 -31
  3. package/dist/assets/icones/fleche-droite-blanche.svg +3 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +1 -0
  6. package/dist/lab/ResumePssi.svelte +1 -31
  7. package/dist/lab/blog/BandeauTitre.svelte +152 -0
  8. package/dist/lab/blog/BandeauTitre.svelte.d.ts +22 -0
  9. package/dist/lab/vitrines-produits/briques/Brique.svelte +1 -31
  10. package/dist/lab/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte +1 -31
  11. package/dist/lab/vitrines-produits/briques/BriqueHero.svelte +2 -31
  12. package/dist/lab/vitrines-produits/briques/BriqueTitreMultimedia.svelte +1 -31
  13. package/dist/lab/vitrines-produits/briques/CarrouselTuiles/CarrouselTuiles.svelte +15 -42
  14. package/dist/lab/vitrines-produits/briques/CarrouselTuiles/IconeFlecheDroite.svelte +1 -31
  15. package/dist/lab/vitrines-produits/briques/CarrouselTuiles/IconeFlecheGauche.svelte +1 -31
  16. package/dist/lab/vitrines-produits/briques/LecteurVideo.svelte +1 -31
  17. package/dist/lab/vitrines-produits/briques/PresentationANSSI.svelte +2 -31
  18. package/dist/lab/vitrines-produits/briques/RejoindreLaCommunaute.svelte +1 -31
  19. package/dist/lab/vitrines-produits/briques/Tuile.svelte +1 -31
  20. package/dist/lab/vitrines-produits/briques/marelle/Etape.svelte +14 -38
  21. package/dist/lab/vitrines-produits/briques/marelle/Marelle.svelte +1 -31
  22. package/dist/lab/vitrines-produits/briques/temoignages/IconeTemoignage.svelte +1 -31
  23. package/dist/lab/vitrines-produits/briques/temoignages/Temoignages.svelte +15 -35
  24. package/dist/mes-services-cyber/bandeau/Bandeau.svelte +1 -31
  25. package/dist/mes-services-cyber/lien/LienDiagnosticCyber.svelte +1 -31
  26. package/dist/pied-de-page/NavigationPiedDePage.svelte +1 -31
  27. package/dist/suite-cyber/navigation/AccueilMSC.svelte +1 -31
  28. package/dist/suite-cyber/navigation/BlocLiens.svelte +1 -31
  29. package/dist/suite-cyber/navigation/Navigation.svelte +1 -31
  30. package/dist/types.d.ts +15 -0
  31. package/dist/types.js +1 -1
  32. package/dist/webcomponents/lab-anssi-ui-kit.iife.js +35 -35
  33. package/dist/webcomponents/lab-anssi-ui-kit.jsx.d.ts +13 -26
  34. package/package.json +1 -1
@@ -17,37 +17,7 @@ let estOuvert = true;
17
17
  </div>
18
18
  {/if}
19
19
 
20
- <style>.visible-tablette {
21
- display: none !important;
22
- }
23
- @media (min-width: 576px) {
24
- .visible-tablette {
25
- display: unset !important;
26
- }
27
- }
28
-
29
- @media (min-width: 576px) {
30
- .invisible-tablette {
31
- display: none !important;
32
- }
33
- }
34
-
35
- .visible-desktop {
36
- display: none !important;
37
- }
38
- @media (min-width: 932px) {
39
- .visible-desktop {
40
- display: unset !important;
41
- }
42
- }
43
-
44
- @media (min-width: 932px) {
45
- .invisible-desktop {
46
- display: none !important;
47
- }
48
- }
49
-
50
- .alerte {
20
+ <style>.alerte {
51
21
  display: flex;
52
22
  border: 1px solid #0163cb;
53
23
  min-width: 200px;
@@ -83,37 +83,7 @@ let ouvert = false;
83
83
  </div>
84
84
  {/if}
85
85
 
86
- <style>.visible-tablette {
87
- display: none !important;
88
- }
89
- @media (min-width: 576px) {
90
- .visible-tablette {
91
- display: unset !important;
92
- }
93
- }
94
-
95
- @media (min-width: 576px) {
96
- .invisible-tablette {
97
- display: none !important;
98
- }
99
- }
100
-
101
- .visible-desktop {
102
- display: none !important;
103
- }
104
- @media (min-width: 932px) {
105
- .visible-desktop {
106
- display: unset !important;
107
- }
108
- }
109
-
110
- @media (min-width: 932px) {
111
- .invisible-desktop {
112
- display: none !important;
113
- }
114
- }
115
-
116
- .declencheur-centre-aide {
86
+ <style>.declencheur-centre-aide {
117
87
  position: fixed;
118
88
  bottom: 24px;
119
89
  right: 24px;
@@ -0,0 +1,3 @@
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M8.78145 7.99999L5.48145 4.69999L6.42411 3.75732L10.6668 7.99999L6.42411 12.2427L5.48145 11.3L8.78145 7.99999Z" fill="white"/>
3
+ </svg>
package/dist/index.d.ts CHANGED
@@ -13,3 +13,4 @@ export { default as Temoignages } from "./lab/vitrines-produits/briques/temoigna
13
13
  export { default as BriqueContenuADeuxColonnes } from "./lab/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte";
14
14
  export { default as PresentationANSSI } from "./lab/vitrines-produits/briques/PresentationANSSI.svelte";
15
15
  export { default as RejoindreLaCommunaute } from "./lab/vitrines-produits/briques/RejoindreLaCommunaute.svelte";
16
+ export { default as BandeauTitre } from "./lab/blog/BandeauTitre.svelte";
package/dist/index.js CHANGED
@@ -13,3 +13,4 @@ export { default as Temoignages } from "./lab/vitrines-produits/briques/temoigna
13
13
  export { default as BriqueContenuADeuxColonnes } from "./lab/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte";
14
14
  export { default as PresentationANSSI } from "./lab/vitrines-produits/briques/PresentationANSSI.svelte";
15
15
  export { default as RejoindreLaCommunaute } from "./lab/vitrines-produits/briques/RejoindreLaCommunaute.svelte";
16
+ export { default as BandeauTitre } from "./lab/blog/BandeauTitre.svelte";
@@ -82,37 +82,7 @@
82
82
  production dans un délai très court.
83
83
  </p>
84
84
 
85
- <style>.visible-tablette {
86
- display: none !important;
87
- }
88
- @media (min-width: 576px) {
89
- .visible-tablette {
90
- display: unset !important;
91
- }
92
- }
93
-
94
- @media (min-width: 576px) {
95
- .invisible-tablette {
96
- display: none !important;
97
- }
98
- }
99
-
100
- .visible-desktop {
101
- display: none !important;
102
- }
103
- @media (min-width: 932px) {
104
- .visible-desktop {
105
- display: unset !important;
106
- }
107
- }
108
-
109
- @media (min-width: 932px) {
110
- .invisible-desktop {
111
- display: none !important;
112
- }
113
- }
114
-
115
- a {
85
+ <style>a {
116
86
  display: inline-flex;
117
87
  color: #000091;
118
88
  border: none;
@@ -0,0 +1,152 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "lab-anssi-bandeau-titre",
4
+ props: {
5
+ titre: { reflect: false, type: "String", attribute: "titre" },
6
+ description: { reflect: false, type: "String", attribute: "description" },
7
+ filAriane: { reflect: false, type: "Array", attribute: "fil-ariane" },
8
+ tag: { reflect: false, type: "Object", attribute: "tag" },
9
+ },
10
+ }}
11
+ />
12
+
13
+ <script>import { estLien } from "../../types.js";
14
+ export let titre;
15
+ export let description = "";
16
+ export let filAriane = [];
17
+ export let tag = null;
18
+ let filArianeVisible = window.matchMedia("(min-width: 576px)").matches;
19
+ </script>
20
+
21
+ <div class="conteneur-bandeau-entete">
22
+ <div class="contenu-bandeau-entete">
23
+ {#if filAriane.length}
24
+ <div class="fil-ariane">
25
+ {#if !filArianeVisible}
26
+ <button on:click={() => (filArianeVisible = true)}>Voir le fil d'Ariane</button>
27
+ {:else}
28
+ {#each filAriane as noeud, index (index)}
29
+ {#if estLien(noeud)}
30
+ <a href={noeud.href}>{noeud.label}</a>
31
+ {:else}
32
+ <span>{noeud.label}</span>
33
+ {/if}
34
+ {/each}
35
+ {/if}
36
+ </div>
37
+ {/if}
38
+ <div class="conteneur-texte">
39
+ {#if tag}
40
+ <div class="conteneur-tag">
41
+ <span class="tag" style="background: {tag.couleurFond}; color: {tag.couleurTexte};"
42
+ >{tag.label}</span
43
+ >
44
+ </div>
45
+ {/if}
46
+ <div class="conteneur-corps">
47
+ <h1>{titre}</h1>
48
+ {#if description}
49
+ <span>{description}</span>
50
+ {/if}
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+
56
+ <style>.conteneur-bandeau-entete {
57
+ background: var(--bandeau-titre-background);
58
+ }
59
+ .conteneur-bandeau-entete .contenu-bandeau-entete {
60
+ padding: 16px;
61
+ color: white;
62
+ display: flex;
63
+ flex-direction: column;
64
+ align-items: flex-start;
65
+ font-family: Marianne;
66
+ max-width: 1200px;
67
+ margin: 0 auto;
68
+ text-align: left;
69
+ }
70
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte {
71
+ display: flex;
72
+ padding: 8px 0 12px 0;
73
+ flex-direction: column;
74
+ align-items: flex-start;
75
+ gap: 4px;
76
+ }
77
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-tag {
78
+ padding-top: 8px;
79
+ }
80
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-tag .tag {
81
+ padding: 2px 8px;
82
+ border-radius: 12px;
83
+ font-family: Marianne;
84
+ font-size: 0.75rem;
85
+ font-weight: 400;
86
+ line-height: 1.25rem;
87
+ }
88
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-corps {
89
+ display: flex;
90
+ flex-direction: column;
91
+ align-items: flex-start;
92
+ gap: 8px;
93
+ }
94
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-corps h1 {
95
+ font-family: Marianne;
96
+ font-size: 2rem;
97
+ font-weight: 700;
98
+ line-height: 2.5rem;
99
+ margin: 0;
100
+ }
101
+ @media (min-width: 576px) {
102
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-corps h1 {
103
+ font-size: 2.5rem;
104
+ line-height: 3rem;
105
+ }
106
+ }
107
+ .conteneur-bandeau-entete .contenu-bandeau-entete .conteneur-texte .conteneur-corps span {
108
+ font-family: Marianne;
109
+ font-size: 1.125rem;
110
+ font-weight: 400;
111
+ line-height: 1.75rem;
112
+ margin: 0;
113
+ }
114
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane {
115
+ display: flex;
116
+ flex-direction: row;
117
+ gap: 4px;
118
+ flex-wrap: wrap;
119
+ }
120
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane a,
121
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane span,
122
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane button {
123
+ color: white;
124
+ font-family: Marianne;
125
+ font-size: 0.75rem;
126
+ font-weight: 400;
127
+ line-height: 1.25rem;
128
+ }
129
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane button {
130
+ border: none;
131
+ background: none;
132
+ margin: 0;
133
+ padding: 0;
134
+ }
135
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane button,
136
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane a {
137
+ text-decoration: underline;
138
+ text-underline-offset: 2px;
139
+ }
140
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane a {
141
+ display: flex;
142
+ flex-direction: row;
143
+ gap: 4px;
144
+ align-items: center;
145
+ white-space: nowrap;
146
+ }
147
+ .conteneur-bandeau-entete .contenu-bandeau-entete .fil-ariane a:after {
148
+ content: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/fleche-droite-blanche.svg");
149
+ width: 16px;
150
+ height: 16px;
151
+ display: flex;
152
+ }</style>
@@ -0,0 +1,22 @@
1
+ import { SvelteComponent } from "svelte";
2
+ import { type NoeudFilAriane, type Tag } from "../../types.js";
3
+ declare const __propDef: {
4
+ props: {
5
+ titre: string;
6
+ description?: string;
7
+ filAriane?: NoeudFilAriane[];
8
+ tag?: Tag | null;
9
+ };
10
+ events: {
11
+ [evt: string]: CustomEvent<any>;
12
+ };
13
+ slots: {};
14
+ exports?: {} | undefined;
15
+ bindings?: string | undefined;
16
+ };
17
+ export type BandeauTitreProps = typeof __propDef.props;
18
+ export type BandeauTitreEvents = typeof __propDef.events;
19
+ export type BandeauTitreSlots = typeof __propDef.slots;
20
+ export default class BandeauTitre extends SvelteComponent<BandeauTitreProps, BandeauTitreEvents, BandeauTitreSlots> {
21
+ }
22
+ export {};
@@ -13,37 +13,7 @@ export let sansMargeLaterale = false;
13
13
  </div>
14
14
  </section>
15
15
 
16
- <style>.visible-tablette {
17
- display: none !important;
18
- }
19
- @media (min-width: 576px) {
20
- .visible-tablette {
21
- display: unset !important;
22
- }
23
- }
24
-
25
- @media (min-width: 576px) {
26
- .invisible-tablette {
27
- display: none !important;
28
- }
29
- }
30
-
31
- .visible-desktop {
32
- display: none !important;
33
- }
34
- @media (min-width: 932px) {
35
- .visible-desktop {
36
- display: unset !important;
37
- }
38
- }
39
-
40
- @media (min-width: 932px) {
41
- .invisible-desktop {
42
- display: none !important;
43
- }
44
- }
45
-
46
- section {
16
+ <style>section {
47
17
  font-family: Marianne;
48
18
  padding: 48px 16px;
49
19
  box-sizing: border-box;
@@ -38,37 +38,7 @@ export let illustration;
38
38
  </div>
39
39
  </Brique>
40
40
 
41
- <style>.visible-tablette {
42
- display: none !important;
43
- }
44
- @media (min-width: 576px) {
45
- .visible-tablette {
46
- display: unset !important;
47
- }
48
- }
49
-
50
- @media (min-width: 576px) {
51
- .invisible-tablette {
52
- display: none !important;
53
- }
54
- }
55
-
56
- .visible-desktop {
57
- display: none !important;
58
- }
59
- @media (min-width: 932px) {
60
- .visible-desktop {
61
- display: unset !important;
62
- }
63
- }
64
-
65
- @media (min-width: 932px) {
66
- .invisible-desktop {
67
- display: none !important;
68
- }
69
- }
70
-
71
- .grille-contenu {
41
+ <style>.grille-contenu {
72
42
  display: grid;
73
43
  grid-template-columns: 1fr;
74
44
  grid-template-areas: "illustration" "contenu";
@@ -79,37 +79,7 @@ export let partenaires = [];
79
79
  </div>
80
80
  </Brique>
81
81
 
82
- <style>.visible-tablette {
83
- display: none !important;
84
- }
85
- @media (min-width: 576px) {
86
- .visible-tablette {
87
- display: unset !important;
88
- }
89
- }
90
-
91
- @media (min-width: 576px) {
92
- .invisible-tablette {
93
- display: none !important;
94
- }
95
- }
96
-
97
- .visible-desktop {
98
- display: none !important;
99
- }
100
- @media (min-width: 932px) {
101
- .visible-desktop {
102
- display: unset !important;
103
- }
104
- }
105
-
106
- @media (min-width: 932px) {
107
- .invisible-desktop {
108
- display: none !important;
109
- }
110
- }
111
-
112
- .hero {
82
+ <style>.hero {
113
83
  display: grid;
114
84
  grid-template-columns: 1fr;
115
85
  grid-template-areas: "contenu" "image" "partenaires";
@@ -239,6 +209,7 @@ export let partenaires = [];
239
209
  line-height: 24px;
240
210
  border-radius: 4px;
241
211
  display: flex;
212
+ justify-content: center;
242
213
  align-items: center;
243
214
  gap: 8px;
244
215
  }
@@ -27,37 +27,7 @@ export let multimedia;
27
27
  </div>
28
28
  </Brique>
29
29
 
30
- <style>.visible-tablette {
31
- display: none !important;
32
- }
33
- @media (min-width: 576px) {
34
- .visible-tablette {
35
- display: unset !important;
36
- }
37
- }
38
-
39
- @media (min-width: 576px) {
40
- .invisible-tablette {
41
- display: none !important;
42
- }
43
- }
44
-
45
- .visible-desktop {
46
- display: none !important;
47
- }
48
- @media (min-width: 932px) {
49
- .visible-desktop {
50
- display: unset !important;
51
- }
52
- }
53
-
54
- @media (min-width: 932px) {
55
- .invisible-desktop {
56
- display: none !important;
57
- }
58
- }
59
-
60
- .bloc-multimedia {
30
+ <style>.bloc-multimedia {
61
31
  display: flex;
62
32
  flex-direction: column;
63
33
  align-items: center;
@@ -51,37 +51,7 @@ const suivant = () => versDirection(1);
51
51
  </Brique>
52
52
  </div>
53
53
 
54
- <style>.visible-tablette {
55
- display: none !important;
56
- }
57
- @media (min-width: 576px) {
58
- .visible-tablette {
59
- display: unset !important;
60
- }
61
- }
62
-
63
- @media (min-width: 576px) {
64
- .invisible-tablette {
65
- display: none !important;
66
- }
67
- }
68
-
69
- .visible-desktop {
70
- display: none !important;
71
- }
72
- @media (min-width: 932px) {
73
- .visible-desktop {
74
- display: unset !important;
75
- }
76
- }
77
-
78
- @media (min-width: 932px) {
79
- .invisible-desktop {
80
- display: none !important;
81
- }
82
- }
83
-
84
- .carrousel-tuiles {
54
+ <style>.carrousel-tuiles {
85
55
  --espacement: 16px;
86
56
  padding: 0;
87
57
  }
@@ -114,6 +84,7 @@ const suivant = () => versDirection(1);
114
84
  }
115
85
 
116
86
  .conteneur-actions button {
87
+ position: relative;
117
88
  background: none;
118
89
  border: none;
119
90
  color: var(--brique-carrousel-bouton-action-texte-couleur);
@@ -124,7 +95,19 @@ const suivant = () => versDirection(1);
124
95
  display: flex;
125
96
  align-items: center;
126
97
  gap: 8px;
127
- box-shadow: inset 0 -1px 0 var(--brique-carrousel-bouton-action-texte-couleur);
98
+ }
99
+ .conteneur-actions button:hover:after {
100
+ bottom: -1px;
101
+ height: 2px;
102
+ }
103
+ .conteneur-actions button:after {
104
+ position: absolute;
105
+ left: 0;
106
+ bottom: 0;
107
+ content: "";
108
+ width: 100%;
109
+ height: 1px;
110
+ background: var(--brique-carrousel-bouton-action-texte-couleur);
128
111
  }
129
112
 
130
113
  .conteneur-actions .precedent > .icone,
@@ -133,10 +116,6 @@ const suivant = () => versDirection(1);
133
116
  align-items: center;
134
117
  }
135
118
 
136
- .conteneur-actions button:hover {
137
- box-shadow: inset 0 -2px 0 var(--brique-carrousel-bouton-action-texte-couleur);
138
- }
139
-
140
119
  @media (min-width: 932px) {
141
120
  .carrousel-tuiles {
142
121
  --espacement: 24px;
@@ -144,10 +123,4 @@ const suivant = () => versDirection(1);
144
123
  .carrousel-tuiles .conteneur-actions {
145
124
  display: none;
146
125
  }
147
- .carrousel-tuiles .tuile-presentation:first-of-type {
148
- margin-left: 0;
149
- }
150
- .carrousel-tuiles .tuile-presentation:last-of-type {
151
- margin-right: 0;
152
- }
153
126
  }</style>
@@ -7,37 +7,7 @@
7
7
  />
8
8
  </svg>
9
9
 
10
- <style>.visible-tablette {
11
- display: none !important;
12
- }
13
- @media (min-width: 576px) {
14
- .visible-tablette {
15
- display: unset !important;
16
- }
17
- }
18
-
19
- @media (min-width: 576px) {
20
- .invisible-tablette {
21
- display: none !important;
22
- }
23
- }
24
-
25
- .visible-desktop {
26
- display: none !important;
27
- }
28
- @media (min-width: 932px) {
29
- .visible-desktop {
30
- display: unset !important;
31
- }
32
- }
33
-
34
- @media (min-width: 932px) {
35
- .invisible-desktop {
36
- display: none !important;
37
- }
38
- }
39
-
40
- svg {
10
+ <style>svg {
41
11
  transform: rotate(180deg);
42
12
  }
43
13
 
@@ -7,36 +7,6 @@
7
7
  />
8
8
  </svg>
9
9
 
10
- <style>.visible-tablette {
11
- display: none !important;
12
- }
13
- @media (min-width: 576px) {
14
- .visible-tablette {
15
- display: unset !important;
16
- }
17
- }
18
-
19
- @media (min-width: 576px) {
20
- .invisible-tablette {
21
- display: none !important;
22
- }
23
- }
24
-
25
- .visible-desktop {
26
- display: none !important;
27
- }
28
- @media (min-width: 932px) {
29
- .visible-desktop {
30
- display: unset !important;
31
- }
32
- }
33
-
34
- @media (min-width: 932px) {
35
- .invisible-desktop {
36
- display: none !important;
37
- }
38
- }
39
-
40
- svg path {
10
+ <style>svg path {
41
11
  fill: var(--brique-carrousel-bouton-action-texte-couleur);
42
12
  }</style>
@@ -10,37 +10,7 @@ export let classe = "";
10
10
  Votre navigateur ne supporte pas la fonctionnalité de lecture de vidéos.
11
11
  </video>
12
12
 
13
- <style>.visible-tablette {
14
- display: none !important;
15
- }
16
- @media (min-width: 576px) {
17
- .visible-tablette {
18
- display: unset !important;
19
- }
20
- }
21
-
22
- @media (min-width: 576px) {
23
- .invisible-tablette {
24
- display: none !important;
25
- }
26
- }
27
-
28
- .visible-desktop {
29
- display: none !important;
30
- }
31
- @media (min-width: 932px) {
32
- .visible-desktop {
33
- display: unset !important;
34
- }
35
- }
36
-
37
- @media (min-width: 932px) {
38
- .invisible-desktop {
39
- display: none !important;
40
- }
41
- }
42
-
43
- video {
13
+ <style>video {
44
14
  width: 100%;
45
15
  max-width: 792px;
46
16
  max-height: 446px;