@lab-anssi/ui-kit 1.1.1 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -0
- package/dist/assets/icones/CERT-FR.svg +27 -0
- package/dist/assets/icones/MAC.svg +5 -0
- package/dist/assets/icones/MSS.svg +56 -0
- package/dist/assets/icones/NIS2.svg +7 -0
- package/dist/assets/icones/bouton-accueil-msc.svg +11 -0
- package/dist/assets/icones/bouton-gauffre.svg +15 -0
- package/dist/assets/icones/chevron-bleu.svg +5 -0
- package/dist/assets/icones/chevron-noir.svg +3 -0
- package/dist/assets/icones/croix-bleu.svg +5 -0
- package/dist/assets/icones/lien-externe.svg +5 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/mes-services-cyber/bandeau/Bandeau.svelte +15 -0
- package/dist/pied-de-page/NavigationPiedDePage.svelte +17 -2
- package/dist/pied-de-page/NavigationPiedDePage.svelte.d.ts +1 -1
- package/dist/suite-cyber/navigation/AccueilMSC.svelte +95 -0
- package/dist/suite-cyber/navigation/AccueilMSC.svelte.d.ts +16 -0
- package/dist/suite-cyber/navigation/BlocLiens.svelte +140 -0
- package/dist/suite-cyber/navigation/BlocLiens.svelte.d.ts +25 -0
- package/dist/suite-cyber/navigation/Navigation.svelte +278 -0
- package/dist/suite-cyber/navigation/Navigation.svelte.d.ts +18 -0
- package/dist/webcomponents/lab-anssi-ui-kit.iife.js +7 -2
- package/dist/webcomponents/lab-anssi-ui-kit.jsx.d.ts +4 -1
- package/package.json +3 -2
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="waffle rounded">
|
|
3
|
+
<g id="Icône">
|
|
4
|
+
<path d="M7 4C7 5.65685 5.65685 7 4 7C2.34315 7 1 5.65685 1 4C1 2.34315 2.34315 1 4 1C5.65685 1 7 2.34315 7 4Z" fill="#000091"/>
|
|
5
|
+
<path d="M7 12C7 13.6569 5.65685 15 4 15C2.34315 15 1 13.6569 1 12C1 10.3431 2.34315 9 4 9C5.65685 9 7 10.3431 7 12Z" fill="#000091"/>
|
|
6
|
+
<path d="M7 20C7 21.6569 5.65685 23 4 23C2.34315 23 1 21.6569 1 20C1 18.3431 2.34315 17 4 17C5.65685 17 7 18.3431 7 20Z" fill="#000091"/>
|
|
7
|
+
<path d="M15 4C15 5.65685 13.6569 7 12 7C10.3431 7 9 5.65685 9 4C9 2.34315 10.3431 1 12 1C13.6569 1 15 2.34315 15 4Z" fill="#000091"/>
|
|
8
|
+
<path d="M15 12C15 13.6569 13.6569 15 12 15C10.3431 15 9 13.6569 9 12C9 10.3431 10.3431 9 12 9C13.6569 9 15 10.3431 15 12Z" fill="#000091"/>
|
|
9
|
+
<path d="M15 20C15 21.6569 13.6569 23 12 23C10.3431 23 9 21.6569 9 20C9 18.3431 10.3431 17 12 17C13.6569 17 15 18.3431 15 20Z" fill="#000091"/>
|
|
10
|
+
<path d="M23 4C23 5.65685 21.6569 7 20 7C18.3431 7 17 5.65685 17 4C17 2.34315 18.3431 1 20 1C21.6569 1 23 2.34315 23 4Z" fill="#000091"/>
|
|
11
|
+
<path d="M23 12C23 13.6569 21.6569 15 20 15C18.3431 15 17 13.6569 17 12C17 10.3431 18.3431 9 20 9C21.6569 9 23 10.3431 23 12Z" fill="#000091"/>
|
|
12
|
+
<path d="M23 20C23 21.6569 21.6569 23 20 23C18.3431 23 17 21.6569 17 20C17 18.3431 18.3431 17 20 17C21.6569 17 23 18.3431 23 20Z" fill="#000091"/>
|
|
13
|
+
</g>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="🚫 Chevron">
|
|
3
|
+
<path id="Icône" fill-rule="evenodd" clip-rule="evenodd" d="M7.99999 8.78145L11.3 5.48145L12.2427 6.42411L7.99999 10.6668L3.75732 6.42411L4.69999 5.48145L7.99999 8.78145Z" fill="#000091"/>
|
|
4
|
+
</g>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="close-line">
|
|
3
|
+
<path id="Icône" fill-rule="evenodd" clip-rule="evenodd" d="M7.99999 7.05733L11.3 3.75733L12.2427 4.7L8.94266 8L12.2427 11.3L11.3 12.2427L7.99999 8.94266L4.69999 12.2427L3.75732 11.3L7.05732 8L3.75732 4.7L4.69999 3.75733L7.99999 7.05733Z" fill="#000091"/>
|
|
4
|
+
</g>
|
|
5
|
+
</svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="external-link">
|
|
3
|
+
<path id="Icône" fill-rule="evenodd" clip-rule="evenodd" d="M6.66667 4V5.33333H3.33333V12.6667H10.6667V9.33333H12V13.3333C12 13.7015 11.7015 14 11.3333 14H2.66667C2.29848 14 2 13.7015 2 13.3333V4.66667C2 4.29848 2.29848 4 2.66667 4H6.66667ZM14 2V8L11.4707 5.47133L7.47133 9.47133L6.52867 8.52867L10.528 4.52867L8 2H14Z" fill="#666666"/>
|
|
4
|
+
</g>
|
|
5
|
+
</svg>
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { default as NavigationPiedDePage } from "./pied-de-page/NavigationPiedDePage.svelte";
|
|
2
1
|
export { default as MesServicesCyberBandeau } from "./mes-services-cyber/bandeau/Bandeau.svelte";
|
|
2
|
+
export { default as NavigationPiedDePage } from "./pied-de-page/NavigationPiedDePage.svelte";
|
|
3
|
+
export { default as SuiteCyberNavigation } from "./suite-cyber/navigation/Navigation.svelte";
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
export { default as NavigationPiedDePage } from "./pied-de-page/NavigationPiedDePage.svelte";
|
|
2
1
|
export { default as MesServicesCyberBandeau } from "./mes-services-cyber/bandeau/Bandeau.svelte";
|
|
2
|
+
export { default as NavigationPiedDePage } from "./pied-de-page/NavigationPiedDePage.svelte";
|
|
3
|
+
export { default as SuiteCyberNavigation } from "./suite-cyber/navigation/Navigation.svelte";
|
|
@@ -56,6 +56,21 @@ const croix = srcAsset("/icones/croix-blanche.svg");
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
.visible-desktop {
|
|
60
|
+
display: none !important;
|
|
61
|
+
}
|
|
62
|
+
@media (min-width: 932px) {
|
|
63
|
+
.visible-desktop {
|
|
64
|
+
display: unset !important;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@media (min-width: 932px) {
|
|
69
|
+
.invisible-desktop {
|
|
70
|
+
display: none !important;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
59
74
|
.largeur-totale {
|
|
60
75
|
position: relative;
|
|
61
76
|
overflow: hidden;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<svelte:options customElement="lab-anssi-navigation-pied-de-page" />
|
|
2
2
|
|
|
3
|
-
<script>export let
|
|
3
|
+
<script>export let conforme = false;
|
|
4
4
|
</script>
|
|
5
5
|
|
|
6
6
|
<div class="conteneur-navigation-pied-de-page">
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
<a href="/securite">Sécurité</a>
|
|
18
18
|
<div class="separateur"></div>
|
|
19
19
|
<a href="/accessibilite"
|
|
20
|
-
>Accessiblité: {
|
|
20
|
+
>Accessiblité: {conforme ? "conforme" : "non conforme"}</a
|
|
21
21
|
>
|
|
22
22
|
</div>
|
|
23
23
|
|
|
@@ -36,6 +36,21 @@
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
.visible-desktop {
|
|
40
|
+
display: none !important;
|
|
41
|
+
}
|
|
42
|
+
@media (min-width: 932px) {
|
|
43
|
+
.visible-desktop {
|
|
44
|
+
display: unset !important;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@media (min-width: 932px) {
|
|
49
|
+
.invisible-desktop {
|
|
50
|
+
display: none !important;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
39
54
|
.conteneur-navigation-pied-de-page {
|
|
40
55
|
font-family: "Marianne";
|
|
41
56
|
list-style: none;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
<script>import { srcAsset } from "../../mes-services-cyber/assets.js";
|
|
2
|
+
const accueilMSC = srcAsset("/icones/bouton-accueil-msc.svg");
|
|
3
|
+
const chevronDroite = srcAsset("/icones/chevron-noir.svg");
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<a
|
|
7
|
+
href="https://messervices.cyber.gouv.fr"
|
|
8
|
+
target="_blank"
|
|
9
|
+
class="accueil-msc"
|
|
10
|
+
id="mes-services-cyber"
|
|
11
|
+
>
|
|
12
|
+
<div class="icone">
|
|
13
|
+
<img src={accueilMSC} alt="MesServicesCyber" />
|
|
14
|
+
</div>
|
|
15
|
+
<label for="mes-services-cyber">
|
|
16
|
+
MesServicesCyber
|
|
17
|
+
<span>Gérer mon profil et mes services</span>
|
|
18
|
+
</label>
|
|
19
|
+
<div class="chevron">
|
|
20
|
+
<img src={chevronDroite} alt="Aller sur MesServicesCyber" />
|
|
21
|
+
</div>
|
|
22
|
+
</a>
|
|
23
|
+
|
|
24
|
+
<style>.visible-tablette {
|
|
25
|
+
display: none !important;
|
|
26
|
+
}
|
|
27
|
+
@media (min-width: 576px) {
|
|
28
|
+
.visible-tablette {
|
|
29
|
+
display: unset !important;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@media (min-width: 576px) {
|
|
34
|
+
.invisible-tablette {
|
|
35
|
+
display: none !important;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.visible-desktop {
|
|
40
|
+
display: none !important;
|
|
41
|
+
}
|
|
42
|
+
@media (min-width: 932px) {
|
|
43
|
+
.visible-desktop {
|
|
44
|
+
display: unset !important;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
@media (min-width: 932px) {
|
|
49
|
+
.invisible-desktop {
|
|
50
|
+
display: none !important;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.accueil-msc {
|
|
55
|
+
font-family: Marianne;
|
|
56
|
+
font-style: normal;
|
|
57
|
+
font-weight: normal;
|
|
58
|
+
cursor: pointer;
|
|
59
|
+
display: flex;
|
|
60
|
+
margin-top: 8px;
|
|
61
|
+
padding: 12px 16px;
|
|
62
|
+
align-items: center;
|
|
63
|
+
gap: 12px;
|
|
64
|
+
align-self: stretch;
|
|
65
|
+
text-decoration: none;
|
|
66
|
+
}
|
|
67
|
+
.accueil-msc:hover {
|
|
68
|
+
background-color: #f6f6f6;
|
|
69
|
+
}
|
|
70
|
+
.accueil-msc:active {
|
|
71
|
+
background-color: #ededed;
|
|
72
|
+
}
|
|
73
|
+
.accueil-msc label {
|
|
74
|
+
display: flex;
|
|
75
|
+
padding-bottom: 4px;
|
|
76
|
+
flex-direction: column;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
align-items: flex-start;
|
|
79
|
+
flex: 1 0 0;
|
|
80
|
+
color: #161616;
|
|
81
|
+
font-family: Marianne;
|
|
82
|
+
font-size: 18px;
|
|
83
|
+
font-style: normal;
|
|
84
|
+
font-weight: 700;
|
|
85
|
+
line-height: 28px;
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
}
|
|
88
|
+
.accueil-msc label span {
|
|
89
|
+
color: #3a3a3a;
|
|
90
|
+
font-family: Marianne;
|
|
91
|
+
font-size: 12px;
|
|
92
|
+
font-style: normal;
|
|
93
|
+
font-weight: 400;
|
|
94
|
+
line-height: 20px;
|
|
95
|
+
}</style>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: Record<string, never>;
|
|
4
|
+
events: {
|
|
5
|
+
[evt: string]: CustomEvent<any>;
|
|
6
|
+
};
|
|
7
|
+
slots: {};
|
|
8
|
+
exports?: {} | undefined;
|
|
9
|
+
bindings?: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
export type AccueilMscProps = typeof __propDef.props;
|
|
12
|
+
export type AccueilMscEvents = typeof __propDef.events;
|
|
13
|
+
export type AccueilMscSlots = typeof __propDef.slots;
|
|
14
|
+
export default class AccueilMsc extends SvelteComponent<AccueilMscProps, AccueilMscEvents, AccueilMscSlots> {
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
<script>export let titre;
|
|
2
|
+
export let services;
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="bloc">
|
|
6
|
+
<div class="titre">{titre}</div>
|
|
7
|
+
<div class="conteneur">
|
|
8
|
+
{#each services as { nom, lien, icone, labels, classeTracking }, i}
|
|
9
|
+
<a href={lien} target="_blank" class={classeTracking}>
|
|
10
|
+
<div class="defaut">
|
|
11
|
+
<div class="icone">
|
|
12
|
+
<img src={icone} alt={nom} />
|
|
13
|
+
</div>
|
|
14
|
+
<div>{nom}</div>
|
|
15
|
+
</div>
|
|
16
|
+
{#if labels}
|
|
17
|
+
<div class="labels">
|
|
18
|
+
{#each labels as label}
|
|
19
|
+
<span>{label}</span>
|
|
20
|
+
{/each}
|
|
21
|
+
</div>
|
|
22
|
+
{/if}
|
|
23
|
+
</a>
|
|
24
|
+
{#if i < services.length - 1}
|
|
25
|
+
<hr />
|
|
26
|
+
{/if}
|
|
27
|
+
{/each}
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<style>.visible-tablette {
|
|
32
|
+
display: none !important;
|
|
33
|
+
}
|
|
34
|
+
@media (min-width: 576px) {
|
|
35
|
+
.visible-tablette {
|
|
36
|
+
display: unset !important;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@media (min-width: 576px) {
|
|
41
|
+
.invisible-tablette {
|
|
42
|
+
display: none !important;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.visible-desktop {
|
|
47
|
+
display: none !important;
|
|
48
|
+
}
|
|
49
|
+
@media (min-width: 932px) {
|
|
50
|
+
.visible-desktop {
|
|
51
|
+
display: unset !important;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@media (min-width: 932px) {
|
|
56
|
+
.invisible-desktop {
|
|
57
|
+
display: none !important;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.bloc {
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
align-items: center;
|
|
65
|
+
align-self: stretch;
|
|
66
|
+
justify-content: center;
|
|
67
|
+
padding-bottom: 8px;
|
|
68
|
+
gap: 10px;
|
|
69
|
+
}
|
|
70
|
+
.bloc:last-child {
|
|
71
|
+
padding-bottom: 0;
|
|
72
|
+
}
|
|
73
|
+
.bloc .titre {
|
|
74
|
+
display: flex;
|
|
75
|
+
align-self: stretch;
|
|
76
|
+
color: #666666;
|
|
77
|
+
font-size: 12px;
|
|
78
|
+
font-weight: 700;
|
|
79
|
+
line-height: 20px;
|
|
80
|
+
text-transform: uppercase;
|
|
81
|
+
}
|
|
82
|
+
.bloc .conteneur {
|
|
83
|
+
display: flex;
|
|
84
|
+
flex-direction: column;
|
|
85
|
+
align-self: stretch;
|
|
86
|
+
border-radius: 4px;
|
|
87
|
+
border: 1px solid #dddddd;
|
|
88
|
+
background: #fff;
|
|
89
|
+
}
|
|
90
|
+
.bloc .conteneur a {
|
|
91
|
+
text-decoration: none;
|
|
92
|
+
}
|
|
93
|
+
.bloc .conteneur a:hover {
|
|
94
|
+
background-color: #f6f6f6;
|
|
95
|
+
}
|
|
96
|
+
.bloc .conteneur a:active {
|
|
97
|
+
background-color: #ededed;
|
|
98
|
+
}
|
|
99
|
+
.bloc .conteneur a .defaut {
|
|
100
|
+
display: flex;
|
|
101
|
+
padding: 12px;
|
|
102
|
+
align-items: center;
|
|
103
|
+
gap: 12px;
|
|
104
|
+
flex: 1 0 0;
|
|
105
|
+
color: #161616;
|
|
106
|
+
font-size: 16px;
|
|
107
|
+
font-weight: 500;
|
|
108
|
+
line-height: 24px;
|
|
109
|
+
}
|
|
110
|
+
.bloc .conteneur a .defaut .icone {
|
|
111
|
+
display: flex;
|
|
112
|
+
align-items: center;
|
|
113
|
+
}
|
|
114
|
+
.bloc .conteneur a .labels {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: flex-start;
|
|
117
|
+
align-content: flex-start;
|
|
118
|
+
gap: 8px;
|
|
119
|
+
align-self: stretch;
|
|
120
|
+
flex-wrap: wrap;
|
|
121
|
+
margin-left: 56px;
|
|
122
|
+
}
|
|
123
|
+
.bloc .conteneur a .labels:last-child {
|
|
124
|
+
margin-bottom: 12px;
|
|
125
|
+
margin-top: -3px;
|
|
126
|
+
}
|
|
127
|
+
.bloc .conteneur a .labels span {
|
|
128
|
+
padding: 2px 8px;
|
|
129
|
+
border-radius: 12px;
|
|
130
|
+
background: #eee;
|
|
131
|
+
color: #161616;
|
|
132
|
+
font-size: 12px;
|
|
133
|
+
font-weight: 400;
|
|
134
|
+
line-height: 20px;
|
|
135
|
+
}
|
|
136
|
+
.bloc .conteneur hr {
|
|
137
|
+
border: 0;
|
|
138
|
+
border-top: 1px solid #ddd;
|
|
139
|
+
margin: 0 16px;
|
|
140
|
+
}</style>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SvelteComponent } from "svelte";
|
|
2
|
+
declare const __propDef: {
|
|
3
|
+
props: {
|
|
4
|
+
titre: string;
|
|
5
|
+
services: {
|
|
6
|
+
nom: string;
|
|
7
|
+
lien: string;
|
|
8
|
+
icone: string;
|
|
9
|
+
labels?: string[];
|
|
10
|
+
classeTracking: string;
|
|
11
|
+
}[];
|
|
12
|
+
};
|
|
13
|
+
events: {
|
|
14
|
+
[evt: string]: CustomEvent<any>;
|
|
15
|
+
};
|
|
16
|
+
slots: {};
|
|
17
|
+
exports?: {} | undefined;
|
|
18
|
+
bindings?: string | undefined;
|
|
19
|
+
};
|
|
20
|
+
export type BlocLiensProps = typeof __propDef.props;
|
|
21
|
+
export type BlocLiensEvents = typeof __propDef.events;
|
|
22
|
+
export type BlocLiensSlots = typeof __propDef.slots;
|
|
23
|
+
export default class BlocLiens extends SvelteComponent<BlocLiensProps, BlocLiensEvents, BlocLiensSlots> {
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
<svelte:options customElement="lab-anssi-bouton-suite-cyber-navigation" />
|
|
2
|
+
|
|
3
|
+
<script>import { srcAsset } from "../../mes-services-cyber/assets.js";
|
|
4
|
+
import { slide } from "svelte/transition";
|
|
5
|
+
import AccueilMsc from "./AccueilMSC.svelte";
|
|
6
|
+
import BlocLiens from "./BlocLiens.svelte";
|
|
7
|
+
const gauffre = srcAsset("/icones/bouton-gauffre.svg");
|
|
8
|
+
const chevron = srcAsset("/icones/chevron-bleu.svg");
|
|
9
|
+
const croix = srcAsset("/icones/croix-bleu.svg");
|
|
10
|
+
const nis2 = srcAsset("/icones/NIS2.svg");
|
|
11
|
+
const certFr = srcAsset("/icones/CERT-FR.svg");
|
|
12
|
+
const mac = srcAsset("/icones/MAC.svg");
|
|
13
|
+
const mss = srcAsset("/icones/MSS.svg");
|
|
14
|
+
const lienExterne = srcAsset("/icones/lien-externe.svg");
|
|
15
|
+
export let sourceUtm = "";
|
|
16
|
+
let estOuvert = false;
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<div class="suite-cyber">
|
|
20
|
+
<div class="navigation">
|
|
21
|
+
<button
|
|
22
|
+
class:actif={estOuvert}
|
|
23
|
+
on:click={() => {
|
|
24
|
+
estOuvert = !estOuvert;
|
|
25
|
+
}}
|
|
26
|
+
>
|
|
27
|
+
<img src={gauffre} alt="La Suite cyber" />
|
|
28
|
+
<div class="avec-texte">
|
|
29
|
+
<span>La Suite cyber</span>
|
|
30
|
+
<img src={chevron} alt={estOuvert ? "ouvert" : "fermé"} class:ouvert={estOuvert} />
|
|
31
|
+
</div>
|
|
32
|
+
</button>
|
|
33
|
+
</div>
|
|
34
|
+
{#if estOuvert}
|
|
35
|
+
<div class="contenu" transition:slide>
|
|
36
|
+
<button class="fermer invisible-tablette" on:click={() => (estOuvert = false)}>
|
|
37
|
+
Fermer
|
|
38
|
+
<img src={croix} alt="Fermer" />
|
|
39
|
+
</button>
|
|
40
|
+
<AccueilMsc />
|
|
41
|
+
<div class="services-anssi">
|
|
42
|
+
<BlocLiens
|
|
43
|
+
titre="Embarquer dans NIS2"
|
|
44
|
+
services={[
|
|
45
|
+
{
|
|
46
|
+
nom: "MonEspaceNIS2",
|
|
47
|
+
lien: `https://monespacenis2.cyber.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
48
|
+
icone: nis2,
|
|
49
|
+
classeTracking: "nis2",
|
|
50
|
+
},
|
|
51
|
+
]}
|
|
52
|
+
/>
|
|
53
|
+
<BlocLiens
|
|
54
|
+
titre="S'informer"
|
|
55
|
+
services={[
|
|
56
|
+
{
|
|
57
|
+
nom: "Le portail du CERT-FR",
|
|
58
|
+
lien: `https://www.cert.ssi.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
59
|
+
icone: certFr,
|
|
60
|
+
classeTracking: "cert-fr",
|
|
61
|
+
},
|
|
62
|
+
]}
|
|
63
|
+
/>
|
|
64
|
+
<BlocLiens
|
|
65
|
+
titre="Piloter"
|
|
66
|
+
services={[
|
|
67
|
+
{
|
|
68
|
+
nom: "MonServiceSécurisé",
|
|
69
|
+
lien: `https://monservicesecurise.cyber.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
70
|
+
icone: mss,
|
|
71
|
+
labels: ["Entités publiques"],
|
|
72
|
+
classeTracking: "mss",
|
|
73
|
+
},
|
|
74
|
+
]}
|
|
75
|
+
/>
|
|
76
|
+
<BlocLiens
|
|
77
|
+
titre="Tester"
|
|
78
|
+
services={[
|
|
79
|
+
{
|
|
80
|
+
nom: "ADS",
|
|
81
|
+
lien: `https://club.ssi.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
82
|
+
icone: certFr,
|
|
83
|
+
labels: ["Entités publiques", "Entités régulées"],
|
|
84
|
+
classeTracking: "ads",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
nom: "SILENE",
|
|
88
|
+
lien: `https://club.ssi.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
89
|
+
icone: certFr,
|
|
90
|
+
labels: ["Entités publiques", "Entités régulées"],
|
|
91
|
+
classeTracking: "silene",
|
|
92
|
+
},
|
|
93
|
+
]}
|
|
94
|
+
/>
|
|
95
|
+
<BlocLiens
|
|
96
|
+
titre="Accompagner"
|
|
97
|
+
services={[
|
|
98
|
+
{
|
|
99
|
+
nom: "MonAideCyber",
|
|
100
|
+
lien: `https://monaide.cyber.gouv.fr?utm_campaign="suite-cyber"&utm_source="${sourceUtm}"`,
|
|
101
|
+
icone: mac,
|
|
102
|
+
classeTracking: "mac",
|
|
103
|
+
},
|
|
104
|
+
]}
|
|
105
|
+
/>
|
|
106
|
+
</div>
|
|
107
|
+
<a
|
|
108
|
+
class="lien-externe site-anssi"
|
|
109
|
+
href="https://cyber.gouv.fr?utm_campaign='suite-cyber'&utm_source='{sourceUtm}'"
|
|
110
|
+
target="_blank"
|
|
111
|
+
>
|
|
112
|
+
<div>
|
|
113
|
+
<span>Accéder au site de l'ANSSI</span>
|
|
114
|
+
<img src={lienExterne} alt="Accéder au site de l'ANSSI" />
|
|
115
|
+
</div>
|
|
116
|
+
</a>
|
|
117
|
+
</div>
|
|
118
|
+
{/if}
|
|
119
|
+
</div>
|
|
120
|
+
|
|
121
|
+
<style>.visible-tablette {
|
|
122
|
+
display: none !important;
|
|
123
|
+
}
|
|
124
|
+
@media (min-width: 576px) {
|
|
125
|
+
.visible-tablette {
|
|
126
|
+
display: unset !important;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
@media (min-width: 576px) {
|
|
131
|
+
.invisible-tablette {
|
|
132
|
+
display: none !important;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.visible-desktop {
|
|
137
|
+
display: none !important;
|
|
138
|
+
}
|
|
139
|
+
@media (min-width: 932px) {
|
|
140
|
+
.visible-desktop {
|
|
141
|
+
display: unset !important;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
@media (min-width: 932px) {
|
|
146
|
+
.invisible-desktop {
|
|
147
|
+
display: none !important;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.suite-cyber {
|
|
152
|
+
font-family: Marianne;
|
|
153
|
+
font-style: normal;
|
|
154
|
+
font-weight: normal;
|
|
155
|
+
position: relative;
|
|
156
|
+
}
|
|
157
|
+
.suite-cyber .navigation {
|
|
158
|
+
display: flex;
|
|
159
|
+
justify-content: center;
|
|
160
|
+
align-items: center;
|
|
161
|
+
}
|
|
162
|
+
.suite-cyber .navigation button {
|
|
163
|
+
display: flex;
|
|
164
|
+
border: none;
|
|
165
|
+
padding: 8px;
|
|
166
|
+
justify-content: center;
|
|
167
|
+
align-items: center;
|
|
168
|
+
color: #000091;
|
|
169
|
+
font-size: 14px;
|
|
170
|
+
font-weight: 500;
|
|
171
|
+
line-height: 24px;
|
|
172
|
+
cursor: pointer;
|
|
173
|
+
gap: 8px;
|
|
174
|
+
background: white;
|
|
175
|
+
}
|
|
176
|
+
.suite-cyber .navigation button:active {
|
|
177
|
+
background: rgba(0, 0, 0, 0.08);
|
|
178
|
+
}
|
|
179
|
+
.suite-cyber .navigation button:hover {
|
|
180
|
+
background: rgba(0, 0, 0, 0.04);
|
|
181
|
+
}
|
|
182
|
+
@media (min-width: 932px) {
|
|
183
|
+
.suite-cyber .navigation button img {
|
|
184
|
+
width: 16px;
|
|
185
|
+
height: 16px;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
.suite-cyber .navigation button > .avec-texte {
|
|
189
|
+
display: none;
|
|
190
|
+
}
|
|
191
|
+
.suite-cyber .navigation button > .avec-texte > span {
|
|
192
|
+
font-family: Marianne;
|
|
193
|
+
}
|
|
194
|
+
@media (min-width: 932px) {
|
|
195
|
+
.suite-cyber .navigation button > .avec-texte {
|
|
196
|
+
display: flex;
|
|
197
|
+
align-items: center;
|
|
198
|
+
justify-content: center;
|
|
199
|
+
gap: 8px;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
.suite-cyber .navigation button.actif {
|
|
203
|
+
background: #e3e3fd;
|
|
204
|
+
}
|
|
205
|
+
.suite-cyber .navigation button.actif:active {
|
|
206
|
+
background: #adadf9;
|
|
207
|
+
}
|
|
208
|
+
.suite-cyber .navigation button.actif:hover {
|
|
209
|
+
background: #c1c1fb;
|
|
210
|
+
}
|
|
211
|
+
.suite-cyber .navigation button img.ouvert {
|
|
212
|
+
transform: rotate(180deg);
|
|
213
|
+
}
|
|
214
|
+
.suite-cyber .contenu {
|
|
215
|
+
display: flex;
|
|
216
|
+
flex-direction: column;
|
|
217
|
+
background: #fff;
|
|
218
|
+
width: 100vw;
|
|
219
|
+
height: 100vh;
|
|
220
|
+
position: fixed;
|
|
221
|
+
top: 0;
|
|
222
|
+
left: 0;
|
|
223
|
+
overflow-y: scroll !important;
|
|
224
|
+
overflow-x: hidden;
|
|
225
|
+
z-index: 1000;
|
|
226
|
+
}
|
|
227
|
+
@media (min-width: 576px) {
|
|
228
|
+
.suite-cyber .contenu {
|
|
229
|
+
position: absolute;
|
|
230
|
+
top: 40px;
|
|
231
|
+
right: 0;
|
|
232
|
+
left: unset;
|
|
233
|
+
width: 360px;
|
|
234
|
+
height: 540px;
|
|
235
|
+
box-shadow: 0px 4px 12px 0px rgba(0, 0, 18, 0.16);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
.suite-cyber .contenu button.fermer {
|
|
239
|
+
border: none;
|
|
240
|
+
background: none;
|
|
241
|
+
color: #000091;
|
|
242
|
+
display: flex;
|
|
243
|
+
justify-content: center;
|
|
244
|
+
align-items: center;
|
|
245
|
+
align-self: flex-end;
|
|
246
|
+
gap: 8px;
|
|
247
|
+
padding: 4px 8px 4px 12px;
|
|
248
|
+
margin: 12px;
|
|
249
|
+
}
|
|
250
|
+
.suite-cyber .contenu .services-anssi {
|
|
251
|
+
display: flex;
|
|
252
|
+
padding: 12px 16px 0px 16px;
|
|
253
|
+
flex-direction: column;
|
|
254
|
+
align-items: flex-start;
|
|
255
|
+
gap: 12px;
|
|
256
|
+
align-self: stretch;
|
|
257
|
+
}
|
|
258
|
+
.suite-cyber .contenu .lien-externe {
|
|
259
|
+
display: flex;
|
|
260
|
+
padding: 16px;
|
|
261
|
+
align-items: center;
|
|
262
|
+
gap: 4px;
|
|
263
|
+
align-self: stretch;
|
|
264
|
+
text-decoration: none;
|
|
265
|
+
}
|
|
266
|
+
.suite-cyber .contenu .lien-externe div {
|
|
267
|
+
display: flex;
|
|
268
|
+
justify-content: center;
|
|
269
|
+
align-items: center;
|
|
270
|
+
gap: 6px;
|
|
271
|
+
color: #666666;
|
|
272
|
+
font-size: 12px;
|
|
273
|
+
font-weight: 400;
|
|
274
|
+
line-height: 20px;
|
|
275
|
+
}
|
|
276
|
+
.suite-cyber .contenu .lien-externe div img {
|
|
277
|
+
line-height: 20px;
|
|
278
|
+
}</style>
|