@lab-anssi/ui-kit 1.61.3 → 1.62.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 (221) hide show
  1. package/README.md +102 -21
  2. package/dist/assets/assets.d.ts +1 -0
  3. package/dist/assets/assets.js +1 -0
  4. package/dist/assets/dsfr-icons.css +1 -0
  5. package/dist/composants/Alerte.svelte +83 -0
  6. package/dist/composants/Alerte.svelte.d.ts +32 -0
  7. package/dist/composants/AncresParcours.svelte +132 -0
  8. package/dist/composants/AncresParcours.svelte.d.ts +11 -0
  9. package/dist/composants/BandeauPage.svelte +218 -0
  10. package/dist/composants/BandeauPage.svelte.d.ts +58 -0
  11. package/dist/composants/BlocFonctionnalites.svelte +570 -0
  12. package/dist/composants/BlocFonctionnalites.svelte.d.ts +105 -0
  13. package/dist/composants/Bouton.svelte +156 -0
  14. package/dist/composants/Bouton.svelte.d.ts +36 -0
  15. package/dist/composants/CentreAide.svelte +223 -0
  16. package/dist/composants/CentreAide.svelte.d.ts +41 -0
  17. package/dist/composants/FiltresCatalogue.svelte +147 -0
  18. package/dist/composants/FiltresCatalogue.svelte.d.ts +15 -0
  19. package/dist/composants/Icone.svelte +42 -0
  20. package/dist/composants/Icone.svelte.d.ts +7 -0
  21. package/dist/composants/Lien.svelte +233 -0
  22. package/dist/composants/Lien.svelte.d.ts +39 -0
  23. package/dist/composants/MultiSelect.svelte +931 -0
  24. package/dist/composants/MultiSelect.svelte.d.ts +51 -0
  25. package/dist/composants/Reactions.svelte +360 -0
  26. package/dist/composants/Reactions.svelte.d.ts +23 -0
  27. package/dist/composants/ResumePssi.svelte +92 -0
  28. package/dist/composants/ResumePssi.svelte.d.ts +6 -0
  29. package/dist/composants/Tag.svelte +113 -0
  30. package/dist/composants/Tag.svelte.d.ts +35 -0
  31. package/dist/composants/blog/BandeauTitre.svelte +150 -0
  32. package/dist/composants/blog/BandeauTitre.svelte.d.ts +29 -0
  33. package/dist/composants/blog/CarteArticle.svelte +69 -0
  34. package/dist/composants/blog/CarteArticle.svelte.d.ts +8 -0
  35. package/dist/composants/blog/IconeChevronBas.svelte +22 -0
  36. package/dist/composants/blog/IconeChevronBas.svelte.d.ts +26 -0
  37. package/dist/composants/blog/IconeMenuLateral.svelte +15 -0
  38. package/dist/composants/blog/IconeMenuLateral.svelte.d.ts +26 -0
  39. package/dist/composants/blog/ListeArticles.svelte +62 -0
  40. package/dist/composants/blog/ListeArticles.svelte.d.ts +9 -0
  41. package/dist/composants/blog/ListeDeroulante.svelte +57 -0
  42. package/dist/composants/blog/ListeDeroulante.svelte.d.ts +10 -0
  43. package/dist/composants/blog/PageCrisp.svelte +244 -0
  44. package/dist/composants/blog/PageCrisp.svelte.d.ts +8 -0
  45. package/dist/composants/blog/SommaireBureau.svelte +64 -0
  46. package/dist/composants/blog/SommaireBureau.svelte.d.ts +9 -0
  47. package/dist/composants/blog/SommaireMobile.svelte +115 -0
  48. package/dist/composants/blog/SommaireMobile.svelte.d.ts +9 -0
  49. package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte +184 -0
  50. package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte.d.ts +34 -0
  51. package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte +16 -0
  52. package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte.d.ts +26 -0
  53. package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte +12 -0
  54. package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte.d.ts +26 -0
  55. package/dist/composants/carrousel-tuiles/Tuile.svelte +72 -0
  56. package/dist/composants/carrousel-tuiles/Tuile.svelte.d.ts +10 -0
  57. package/dist/composants/icones/Fleche.svelte +25 -0
  58. package/dist/composants/icones/Fleche.svelte.d.ts +6 -0
  59. package/dist/composants/icones/LienExterne.svelte +20 -0
  60. package/dist/composants/icones/LienExterne.svelte.d.ts +6 -0
  61. package/dist/composants/marelle/Etape.svelte +165 -0
  62. package/dist/composants/marelle/Etape.svelte.d.ts +32 -0
  63. package/dist/composants/marelle/Marelle.svelte +97 -0
  64. package/dist/composants/marelle/Marelle.svelte.d.ts +44 -0
  65. package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte +158 -0
  66. package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte.d.ts +3 -0
  67. package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte +125 -0
  68. package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte.d.ts +7 -0
  69. package/dist/composants/pied-de-page/NavigationPiedDePage.svelte +62 -0
  70. package/dist/composants/pied-de-page/NavigationPiedDePage.svelte.d.ts +6 -0
  71. package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte +96 -0
  72. package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte.d.ts +6 -0
  73. package/dist/composants/suite-cyber/LiensSuiteCyber.svelte +99 -0
  74. package/dist/composants/suite-cyber/LiensSuiteCyber.svelte.d.ts +14 -0
  75. package/dist/composants/suite-cyber/SuiteCyber.svelte +296 -0
  76. package/dist/composants/suite-cyber/SuiteCyber.svelte.d.ts +6 -0
  77. package/dist/composants/vitrines-produits/briques/Brique.svelte +50 -0
  78. package/dist/composants/vitrines-produits/briques/Brique.svelte.d.ts +9 -0
  79. package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte +144 -0
  80. package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte.d.ts +29 -0
  81. package/dist/composants/vitrines-produits/briques/BriqueHero.svelte +246 -0
  82. package/dist/composants/vitrines-produits/briques/BriqueHero.svelte.d.ts +31 -0
  83. package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte +50 -0
  84. package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte.d.ts +25 -0
  85. package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte +14 -0
  86. package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte.d.ts +9 -0
  87. package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte +148 -0
  88. package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte.d.ts +37 -0
  89. package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte +139 -0
  90. package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte.d.ts +36 -0
  91. package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte +18 -0
  92. package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte.d.ts +26 -0
  93. package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte +168 -0
  94. package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte.d.ts +13 -0
  95. package/dist/directives/actions.svelte.d.ts +32 -0
  96. package/dist/directives/actions.svelte.js +158 -0
  97. package/dist/dsfr/DsfrAccordion.svelte +889 -0
  98. package/dist/dsfr/DsfrAccordion.svelte.d.ts +40 -0
  99. package/dist/dsfr/DsfrAlert.svelte +2097 -0
  100. package/dist/dsfr/DsfrAlert.svelte.d.ts +36 -0
  101. package/dist/dsfr/DsfrBadge.svelte +532 -0
  102. package/dist/dsfr/DsfrBadge.svelte.d.ts +41 -0
  103. package/dist/dsfr/DsfrBadgesGroup.svelte +610 -0
  104. package/dist/dsfr/DsfrBadgesGroup.svelte.d.ts +25 -0
  105. package/dist/dsfr/DsfrBreadcrumb.svelte +657 -0
  106. package/dist/dsfr/DsfrBreadcrumb.svelte.d.ts +25 -0
  107. package/dist/dsfr/DsfrButton.svelte +1821 -0
  108. package/dist/dsfr/DsfrButton.svelte.d.ts +68 -0
  109. package/dist/dsfr/DsfrButtonsGroup.svelte +1896 -0
  110. package/dist/dsfr/DsfrButtonsGroup.svelte.d.ts +36 -0
  111. package/dist/dsfr/DsfrCallout.svelte +242 -0
  112. package/dist/dsfr/DsfrCallout.svelte.d.ts +46 -0
  113. package/dist/dsfr/DsfrCard.svelte +10223 -0
  114. package/dist/dsfr/DsfrCard.svelte.d.ts +102 -0
  115. package/dist/dsfr/DsfrCheckbox.svelte +1280 -0
  116. package/dist/dsfr/DsfrCheckbox.svelte.d.ts +69 -0
  117. package/dist/dsfr/DsfrCheckboxesGroup.svelte +1532 -0
  118. package/dist/dsfr/DsfrCheckboxesGroup.svelte.d.ts +73 -0
  119. package/dist/dsfr/DsfrConnect.svelte +511 -0
  120. package/dist/dsfr/DsfrConnect.svelte.d.ts +15 -0
  121. package/dist/dsfr/DsfrContainer.svelte +894 -0
  122. package/dist/dsfr/DsfrContainer.svelte.d.ts +31 -0
  123. package/dist/dsfr/DsfrContent.svelte +1140 -0
  124. package/dist/dsfr/DsfrContent.svelte.d.ts +60 -0
  125. package/dist/dsfr/DsfrDropdown.svelte +335 -0
  126. package/dist/dsfr/DsfrDropdown.svelte.d.ts +73 -0
  127. package/dist/dsfr/DsfrFooter.svelte +2370 -0
  128. package/dist/dsfr/DsfrFooter.svelte.d.ts +77 -0
  129. package/dist/dsfr/DsfrHeader.svelte +4162 -0
  130. package/dist/dsfr/DsfrHeader.svelte.d.ts +131 -0
  131. package/dist/dsfr/DsfrHighlight.svelte +294 -0
  132. package/dist/dsfr/DsfrHighlight.svelte.d.ts +33 -0
  133. package/dist/dsfr/DsfrInput.svelte +1270 -0
  134. package/dist/dsfr/DsfrInput.svelte.d.ts +86 -0
  135. package/dist/dsfr/DsfrLabel.svelte +438 -0
  136. package/dist/dsfr/DsfrLabel.svelte.d.ts +65 -0
  137. package/dist/dsfr/DsfrLink.svelte +1007 -0
  138. package/dist/dsfr/DsfrLink.svelte.d.ts +66 -0
  139. package/dist/dsfr/DsfrLogo.svelte +228 -0
  140. package/dist/dsfr/DsfrLogo.svelte.d.ts +11 -0
  141. package/dist/dsfr/DsfrMessagesGroup.svelte +260 -0
  142. package/dist/dsfr/DsfrMessagesGroup.svelte.d.ts +46 -0
  143. package/dist/dsfr/DsfrModal.svelte +2983 -0
  144. package/dist/dsfr/DsfrModal.svelte.d.ts +56 -0
  145. package/dist/dsfr/DsfrNavigation.svelte +7626 -0
  146. package/dist/dsfr/DsfrNotice.svelte +2948 -0
  147. package/dist/dsfr/DsfrNotice.svelte.d.ts +37 -0
  148. package/dist/dsfr/DsfrPagination.svelte +1036 -0
  149. package/dist/dsfr/DsfrPagination.svelte.d.ts +35 -0
  150. package/dist/dsfr/DsfrQuote.svelte +646 -0
  151. package/dist/dsfr/DsfrQuote.svelte.d.ts +29 -0
  152. package/dist/dsfr/DsfrRadio.svelte +1307 -0
  153. package/dist/dsfr/DsfrRadio.svelte.d.ts +37 -0
  154. package/dist/dsfr/DsfrRadiosGroup.svelte +1629 -0
  155. package/dist/dsfr/DsfrRadiosGroup.svelte.d.ts +76 -0
  156. package/dist/dsfr/DsfrRange.svelte +1329 -0
  157. package/dist/dsfr/DsfrRange.svelte.d.ts +77 -0
  158. package/dist/dsfr/DsfrSearch.svelte +2015 -0
  159. package/dist/dsfr/DsfrSearch.svelte.d.ts +51 -0
  160. package/dist/dsfr/DsfrSegmented.svelte +422 -0
  161. package/dist/dsfr/DsfrSegmented.svelte.d.ts +34 -0
  162. package/dist/dsfr/DsfrSelect.svelte +1068 -0
  163. package/dist/dsfr/DsfrSelect.svelte.d.ts +86 -0
  164. package/dist/dsfr/DsfrShare.svelte +2228 -0
  165. package/dist/dsfr/DsfrShare.svelte.d.ts +40 -0
  166. package/dist/dsfr/DsfrSideMenu.svelte +1211 -0
  167. package/dist/dsfr/DsfrSideMenu.svelte.d.ts +34 -0
  168. package/dist/dsfr/DsfrSkipLink.svelte +990 -0
  169. package/dist/dsfr/DsfrSkipLink.svelte.d.ts +13 -0
  170. package/dist/dsfr/DsfrStepper.svelte +340 -0
  171. package/dist/dsfr/DsfrStepper.svelte.d.ts +18 -0
  172. package/dist/dsfr/DsfrTable.svelte +829 -0
  173. package/dist/dsfr/DsfrTable.svelte.d.ts +202 -0
  174. package/dist/dsfr/DsfrTabnav.svelte +1149 -0
  175. package/dist/dsfr/DsfrTabnav.svelte.d.ts +36 -0
  176. package/dist/dsfr/DsfrTabs.svelte +925 -0
  177. package/dist/dsfr/DsfrTabs.svelte.d.ts +28 -0
  178. package/dist/dsfr/DsfrTag.svelte +1269 -0
  179. package/dist/dsfr/DsfrTag.svelte.d.ts +59 -0
  180. package/dist/dsfr/DsfrTagsGroup.svelte +1351 -0
  181. package/dist/dsfr/DsfrTagsGroup.svelte.d.ts +37 -0
  182. package/dist/dsfr/DsfrTextarea.svelte +1385 -0
  183. package/dist/dsfr/DsfrTextarea.svelte.d.ts +72 -0
  184. package/dist/dsfr/DsfrTile.svelte +7645 -0
  185. package/dist/dsfr/DsfrTile.svelte.d.ts +79 -0
  186. package/dist/dsfr/DsfrToggle.svelte +1453 -0
  187. package/dist/dsfr/DsfrToggle.svelte.d.ts +56 -0
  188. package/dist/dsfr/DsfrTooltip.svelte +396 -0
  189. package/dist/dsfr/DsfrTooltip.svelte.d.ts +36 -0
  190. package/dist/dsfr/DsfrTranscription.svelte +2962 -0
  191. package/dist/dsfr/DsfrTranscription.svelte.d.ts +39 -0
  192. package/dist/dsfr/DsfrTranslate.svelte +1384 -0
  193. package/dist/dsfr/DsfrTranslate.svelte.d.ts +19 -0
  194. package/dist/dsfr/DsfrUser.svelte +736 -0
  195. package/dist/dsfr/DsfrUser.svelte.d.ts +65 -0
  196. package/dist/index.d.ts +79 -0
  197. package/dist/index.js +79 -0
  198. package/dist/styles/apparence-bouton.scss +154 -0
  199. package/dist/styles/dsfr-icons.css +1 -0
  200. package/dist/styles/dsfr-icons.scss +4 -0
  201. package/dist/styles/dsfr-variables.scss +28 -0
  202. package/dist/styles/mixins-dsfr.scss +226 -0
  203. package/dist/styles/mixins.scss +51 -0
  204. package/dist/types/commun.d.ts +63 -0
  205. package/dist/types/commun.js +1 -0
  206. package/dist/types/global.d.ts +24 -0
  207. package/dist/types/global.js +9 -0
  208. package/dist/types/index.d.ts +2 -0
  209. package/dist/types/index.js +1 -0
  210. package/dist/ui-kit-components.json +142 -100
  211. package/dist/utilitaires/createFormValidation.svelte.d.ts +34 -0
  212. package/dist/utilitaires/createFormValidation.svelte.js +183 -0
  213. package/dist/utilitaires/icons-stylesheet.d.ts +370 -0
  214. package/dist/utilitaires/icons-stylesheet.js +33 -0
  215. package/dist/utilitaires/index.d.ts +14 -0
  216. package/dist/utilitaires/index.js +26 -0
  217. package/dist/web-types.json +149 -101
  218. package/dist/webcomponents/lab-anssi-ui-kit.iife.js +36 -9
  219. package/dist/webcomponents/lab-anssi-ui-kit.jsx.d.ts +42 -24
  220. package/package.json +49 -43
  221. package/dist/index.html +0 -0
@@ -0,0 +1,1149 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "dsfr-tabnav",
4
+ props: {
5
+ links: { attribute: "links", type: "Array" },
6
+ ariaLabel: { attribute: "aria-label", type: "String" },
7
+ centered: { attribute: "centered", type: "Boolean" },
8
+ routerMode: { attribute: "router-mode", type: "Boolean" },
9
+ activeIndex: { attribute: "active-index", type: "Number" },
10
+ },
11
+ }}
12
+ />
13
+
14
+ <script lang="ts">import { setThemeable } from "../utilitaires";
15
+ import { createSlot } from "../directives/actions.svelte";
16
+ setThemeable($host());
17
+ let { links = [], ariaLabel, centered, routerMode, activeIndex, onlinkclicked } = $props();
18
+ let expanded = $state(false);
19
+ let collapseEl;
20
+ const resolvedIndex = $derived(activeIndex !== undefined ? activeIndex : links.findIndex((l) => l.current));
21
+ const buttonLabel = $derived(links[resolvedIndex]?.label ?? links[0]?.label ?? "Navigation");
22
+ function toggle() {
23
+ expanded = !expanded;
24
+ collapseEl?.classList.toggle("fr-collapse--expanded", expanded);
25
+ }
26
+ /**
27
+ * Gère le clic sur un lien de navigation.
28
+ * En mode routeur, empêche la navigation native du navigateur.
29
+ * Et émet un événement `linkclicked` avec le lien et son index.
30
+ *
31
+ * @fires linkclicked - `detail: { index: number, link: TabnavLink }`
32
+ */
33
+ function handleLinkClick(event, link, index) {
34
+ if (!routerMode) return;
35
+ event.preventDefault();
36
+ onlinkclicked?.({
37
+ index,
38
+ link
39
+ });
40
+ $host()?.dispatchEvent(new CustomEvent("linkclicked", {
41
+ detail: {
42
+ index,
43
+ link
44
+ },
45
+ bubbles: true
46
+ }));
47
+ }
48
+ </script>
49
+
50
+ <nav class={["fr-tabnav", centered && "fr-tabnav--centered"]} aria-label={ariaLabel}>
51
+ <div class="fr-sidemenu">
52
+ <div class="fr-sidemenu__inner">
53
+ <button
54
+ type="button"
55
+ class="fr-sidemenu__btn"
56
+ aria-expanded={expanded}
57
+ aria-controls="fr-tabnav-collapse"
58
+ onclick={toggle}
59
+ >
60
+ {buttonLabel}
61
+ </button>
62
+ <div class="fr-collapse" id="fr-tabnav-collapse" bind:this={collapseEl}>
63
+ <ul>
64
+ {#each links as link, i (link.id ?? `${link.href}-${i}`)}
65
+ <li>
66
+ {#if i === resolvedIndex}
67
+ <span class="fr-tabnav__link" aria-current="page" use:createSlot={`link-${i + 1}`}>
68
+ {link.label}
69
+ </span>
70
+ {:else}
71
+ <a
72
+ class="fr-tabnav__link"
73
+ href={link.href}
74
+ onclick={(e) => handleLinkClick(e, link, i)}
75
+ use:createSlot={`link-${i + 1}`}
76
+ >
77
+ {link.label}
78
+ </a>
79
+ {/if}
80
+ </li>
81
+ {/each}
82
+ </ul>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </nav>
87
+
88
+ <style>@charset "UTF-8";
89
+ /*!
90
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
91
+ */
92
+ /* ¯¯¯¯¯¯¯¯¯ *\
93
+ SIDEMENU
94
+ \* ˍˍˍˍˍˍˍˍˍ */
95
+ .fr-sidemenu {
96
+ --ul-type: none;
97
+ --ol-type: none;
98
+ --ul-start: 0;
99
+ --ol-start: 0;
100
+ --xl-block: 0;
101
+ --li-bottom: 0;
102
+ --ol-content: none;
103
+ --underline-img: none;
104
+ --text-spacing: 0;
105
+ --title-spacing: 0;
106
+ position: relative;
107
+ margin-left: -1rem;
108
+ margin-right: -1rem;
109
+ /**
110
+ * Titre facultatif
111
+ */
112
+ /**
113
+ * Variantes du sidemenu proposées juste à partir du breakpoint md
114
+ */
115
+ box-shadow: inset 0 -1px 0 0 var(--border-default-grey), inset 0 1px 0 0 var(--border-default-grey);
116
+ /*
117
+ @include elevation.elevate(raised, (legacy:$legacy));
118
+ @include respond-from(md) {
119
+ @include elevation.drop((legacy:$legacy));
120
+ }
121
+ */
122
+ }
123
+
124
+ .fr-sidemenu a:not([href]) {
125
+ cursor: default;
126
+ }
127
+
128
+ .fr-sidemenu .fr-collapse {
129
+ margin: -0.25rem -0.25rem 0;
130
+ padding: 0.25rem 0.25rem 0;
131
+ }
132
+
133
+ .fr-sidemenu .fr-collapse.fr-collapsing {
134
+ margin-top: 0;
135
+ margin-bottom: 0;
136
+ padding-top: 0;
137
+ padding-bottom: 0;
138
+ }
139
+
140
+ .fr-sidemenu__title {
141
+ padding: 1rem 0;
142
+ font-size: 1.125rem;
143
+ line-height: 1.75rem;
144
+ font-weight: 700;
145
+ color: var(--text-title-grey);
146
+ box-shadow: inset 0 -1px 0 0 var(--border-default-grey);
147
+ }
148
+
149
+ .fr-sidemenu__list {
150
+ font-weight: 700;
151
+ }
152
+
153
+ .fr-sidemenu__list .fr-sidemenu__list {
154
+ margin: 0 1rem 1rem;
155
+ font-weight: 400;
156
+ }
157
+
158
+ .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__link,
159
+ .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__btn {
160
+ font-size: 1rem;
161
+ line-height: 1.5rem;
162
+ font-weight: 400;
163
+ }
164
+
165
+ .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__link,
166
+ .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__list .fr-sidemenu__btn {
167
+ font-size: 0.875rem;
168
+ line-height: 1.5rem;
169
+ }
170
+
171
+ .fr-sidemenu__item {
172
+ position: relative;
173
+ }
174
+
175
+ .fr-sidemenu__item::before {
176
+ content: "";
177
+ display: block;
178
+ position: absolute;
179
+ top: 0;
180
+ right: 0;
181
+ bottom: 0;
182
+ left: 0;
183
+ width: 100%;
184
+ height: 100%;
185
+ pointer-events: none;
186
+ box-shadow: 0 -1px 0 0 var(--border-default-grey), inset 0 -1px 0 0 var(--border-default-grey);
187
+ }
188
+
189
+ .fr-sidemenu__item .fr-sidemenu__item .fr-sidemenu__item::before {
190
+ content: none;
191
+ }
192
+
193
+ .fr-sidemenu__inner {
194
+ /**
195
+ * Ce wrapper ne sert que pour la version mobile
196
+ * On l'utilise pour l'ouverture/fermeture du sidemenu entier
197
+ */
198
+ }
199
+
200
+ .fr-sidemenu__inner > .fr-collapse {
201
+ margin: -0.25rem 0.75rem 0;
202
+ padding: 0.25rem 0.75rem 0;
203
+ }
204
+
205
+ /**
206
+ * Styles du bouton et du lien d'accès direct du sidemnu
207
+ */
208
+ .fr-sidemenu__link,
209
+ .fr-sidemenu__btn {
210
+ position: relative;
211
+ display: flex;
212
+ flex-direction: row;
213
+ align-items: center;
214
+ width: 100%;
215
+ padding: 0.75rem 1rem;
216
+ font-size: 1rem;
217
+ line-height: 1.5rem;
218
+ text-align: left;
219
+ font-weight: 700;
220
+
221
+ --hover-tint: var(--hover);
222
+ --active-tint: var(--active);
223
+ color: var(--text-action-high-blue-france);
224
+ }
225
+
226
+ .fr-sidemenu__link[aria-current]:not([aria-current=false])::before,
227
+ .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {
228
+ content: "";
229
+ position: absolute;
230
+ top: 0.75rem;
231
+ bottom: 0.75rem;
232
+ left: 0;
233
+ width: 2px;
234
+ background-color: var(--border-active-blue-france);
235
+
236
+ --idle: transparent;
237
+ --hover: var(--border-active-blue-france-hover);
238
+ --active: var(--border-active-blue-france-active);
239
+ }
240
+
241
+ .fr-sidemenu__link:not([href])[aria-current]:not([aria-current=false]) {
242
+ pointer-events: none;
243
+ cursor: default;
244
+ }
245
+
246
+ /**
247
+ * Style du bouton du sidemnenu pour ouvrir/refermer les listes de niveaux 1 et 2
248
+ * Bouton pour la version mobile pour ouvrir/refermer le sidemenu
249
+ */
250
+ .fr-sidemenu__btn[aria-expanded] {
251
+ display: flex;
252
+ flex-direction: row;
253
+ align-items: center;
254
+ }
255
+
256
+ .fr-sidemenu__btn[aria-expanded]::after {
257
+ flex: 0 0 auto;
258
+ display: inline-block;
259
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
260
+ background-color: currentColor;
261
+ width: var(--icon-size);
262
+ height: var(--icon-size);
263
+ -webkit-mask-size: 100% 100%;
264
+ mask-size: 100% 100%;
265
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/arrows/arrow-down-s-line.svg");
266
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/arrows/arrow-down-s-line.svg");
267
+ --icon-size: 1rem;
268
+ content: "";
269
+ margin-left: auto;
270
+ margin-right: 0;
271
+ transition: transform 0.3s;
272
+ }
273
+
274
+ .fr-sidemenu__btn[aria-expanded=true]::after {
275
+ transform: rotate(-180deg);
276
+ }
277
+
278
+ /**
279
+ * Modificateur pour le bouton en version mobile permettant d'ouvrir/refermer le sidemenu
280
+ * L'icône de gauche est défini dans _sidemenu.scss (provisoire)
281
+ */
282
+ .fr-sidemenu__inner > .fr-sidemenu__btn {
283
+ width: 100%;
284
+ font-weight: 500;
285
+ outline-offset: -2px;
286
+ /**
287
+ * Ajout de l'icône de menu en mode mobile (provisoire)
288
+ */
289
+ }
290
+
291
+ .fr-sidemenu__inner > .fr-sidemenu__btn::after {
292
+ margin-right: 1rem;
293
+ }
294
+
295
+ .fr-sidemenu__inner > .fr-sidemenu__btn::before {
296
+ flex: 0 0 auto;
297
+ display: inline-block;
298
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
299
+ background-color: currentColor;
300
+ width: var(--icon-size);
301
+ height: var(--icon-size);
302
+ -webkit-mask-size: 100% 100%;
303
+ mask-size: 100% 100%;
304
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/menu-2-fill.svg");
305
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/menu-2-fill.svg");
306
+ --icon-size: 1rem;
307
+ content: "";
308
+ margin-left: 0.5rem;
309
+ margin-right: 0.5rem;
310
+ }
311
+
312
+ .fr-sidemenu__item .fr-sidemenu__link,
313
+ .fr-sidemenu__item .fr-sidemenu__btn {
314
+ color: var(--text-action-high-grey);
315
+ }
316
+
317
+ .fr-sidemenu__item:first-child::before {
318
+ box-shadow: inset 0 -1px 0 0 var(--border-default-grey);
319
+ }
320
+
321
+ .fr-sidemenu__item:last-child::before {
322
+ box-shadow: 0 -1px 0 0 var(--border-default-grey);
323
+ }
324
+
325
+ .fr-sidemenu__link[aria-current]:not([aria-current=false]),
326
+ .fr-sidemenu__btn[aria-current]:not([aria-current=false]) {
327
+ color: var(--text-active-blue-france);
328
+ }
329
+
330
+ .fr-sidemenu__btn[aria-expanded=true] {
331
+ background-color: var(--background-open-blue-france);
332
+
333
+ --idle: transparent;
334
+ --hover: var(--background-open-blue-france-hover);
335
+ --active: var(--background-open-blue-france-active);
336
+ }
337
+ @media (min-width: 36em) {
338
+ /*! media sm */
339
+ }
340
+ @media (min-width: 48em) {
341
+ /*! media md */
342
+ .fr-sidemenu {
343
+ margin-left: 0;
344
+ margin-right: 0;
345
+ padding-right: 2rem;
346
+ /**
347
+ * Modificateur pour que le sidemenu s'adapte à un affichage à droite du contenu
348
+ * La bordure se met sur la gauche
349
+ */
350
+ /**
351
+ * Modificateur pour que le sidemenu soit sticky
352
+ */
353
+
354
+ /**
355
+ * Modificateur pour que le sidemenu soit à la fois sticky et prenne toute la hauteur de la page
356
+ */
357
+ box-shadow: none;
358
+ }
359
+
360
+ .fr-sidemenu .fr-collapse {
361
+ margin-left: -0.25rem;
362
+ margin-right: -0.25rem;
363
+ padding-left: 0.25rem;
364
+ padding-right: 0.25rem;
365
+ }
366
+
367
+ .fr-sidemenu__title {
368
+ margin: 0 0 1.5rem;
369
+ padding: 0;
370
+ box-shadow: none;
371
+ }
372
+
373
+ .fr-sidemenu__list .fr-sidemenu__list {
374
+ margin: 0 1rem 1rem;
375
+ }
376
+
377
+ .fr-sidemenu__list {
378
+ margin: 0;
379
+ }
380
+
381
+ .fr-sidemenu__item::before {
382
+ content: none;
383
+ }
384
+
385
+ .fr-sidemenu__inner {
386
+ padding: 0 1.5rem 0 0;
387
+ box-shadow: inset -1px 0 0 0 var(--border-default-grey);
388
+ }
389
+
390
+ .fr-sidemenu__inner > .fr-collapse {
391
+ padding: 0;
392
+ margin: 0;
393
+ overflow: initial;
394
+ max-height: none;
395
+ }
396
+
397
+ .fr-sidemenu__inner > .fr-collapse::before {
398
+ display: none;
399
+ }
400
+
401
+ .fr-sidemenu__inner > .fr-collapse:not(.fr-collapse--expanded) {
402
+ visibility: inherit;
403
+ }
404
+
405
+ .fr-sidemenu--right {
406
+ padding-left: 2rem;
407
+ padding-right: 0;
408
+ }
409
+
410
+ .fr-sidemenu--right .fr-sidemenu__inner {
411
+ padding: 0 1rem 0 2rem;
412
+ border-right: 0;
413
+ box-shadow: inset 1px 0 0 0 var(--border-default-grey);
414
+ }
415
+
416
+ .fr-sidemenu--sticky {
417
+ position: sticky;
418
+ top: 0;
419
+ }
420
+
421
+ .fr-sidemenu--sticky .fr-sidemenu__inner {
422
+ padding-top: 0.5rem;
423
+ padding-left: 0.25rem;
424
+ margin-left: -0.25rem;
425
+ padding-bottom: 0.25rem;
426
+ margin-bottom: -0.25rem;
427
+ overflow: auto;
428
+ max-height: 100vh;
429
+ }
430
+
431
+ .fr-sidemenu--sticky-full-height {
432
+ position: sticky;
433
+ top: 0;
434
+ height: 100vh;
435
+ }
436
+
437
+ .fr-sidemenu--sticky-full-height .fr-sidemenu__inner {
438
+ padding-top: 0.5rem;
439
+ padding-left: 0.25rem;
440
+ margin-left: -0.25rem;
441
+ padding-bottom: 0.25rem;
442
+ margin-bottom: -0.25rem;
443
+ overflow: auto;
444
+ height: 100%;
445
+ }
446
+
447
+ .fr-sidemenu__link,
448
+ .fr-sidemenu__btn {
449
+ margin: 0;
450
+ width: 100%;
451
+ }
452
+
453
+ .fr-sidemenu__btn[aria-expanded] {
454
+ padding: 0.75rem 2.5rem 0.75rem 1rem;
455
+ }
456
+
457
+ .fr-sidemenu__btn[aria-expanded]::after {
458
+ margin-right: -1.5rem;
459
+ }
460
+
461
+ .fr-sidemenu__inner > .fr-sidemenu__btn {
462
+ display: none;
463
+ }
464
+ }
465
+ @media (min-width: 62em) {
466
+ /*! media lg */
467
+ }
468
+ @media (min-width: 78em) {
469
+ /*! media xl */
470
+ }
471
+ @media (-ms-high-contrast: active), (forced-colors: active) {
472
+ .fr-sidemenu__inner {
473
+ border-right: 1px solid;
474
+ }
475
+
476
+ .fr-sidemenu__link[aria-current]:not([aria-current=false])::before,
477
+ .fr-sidemenu__btn[aria-current]:not([aria-current=false])::before {
478
+ background-color: highlight;
479
+ forced-color-adjust: none;
480
+ }
481
+
482
+ .fr-sidemenu__btn[aria-expanded]::after {
483
+ forced-color-adjust: none;
484
+ background-color: buttontext;
485
+ }
486
+ }
487
+ @media (min-width: 48em) and (-ms-high-contrast: active), (min-width: 48em) and (forced-colors: active) {
488
+ .fr-sidemenu--right .fr-sidemenu__inner {
489
+ border-left: 1px solid;
490
+ }
491
+ }
492
+ a {
493
+ text-decoration: var(--text-decoration);
494
+ color: inherit;
495
+ }
496
+ @media (-ms-high-contrast: active), (forced-colors: active) {
497
+ a:not([href]) {
498
+ color: graytext;
499
+ }
500
+ }
501
+
502
+ :root {
503
+ --underline-max-width: 100%;
504
+ --underline-hover-width: 0;
505
+ --underline-idle-width: var(--underline-max-width);
506
+ --underline-x: calc(var(--underline-max-width) * 0);
507
+ --underline-thickness: 0.0625em;
508
+ --underline-img: linear-gradient(0deg, currentColor, currentColor);
509
+ --external-link-content: '';
510
+ --text-decoration: none;
511
+ }
512
+
513
+ [href] {
514
+ background-image: var(--underline-img), var(--underline-img);
515
+ background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));
516
+ background-repeat: no-repeat, no-repeat;
517
+ transition: background-size 0s;
518
+ background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);
519
+ }
520
+ @media (-ms-high-contrast: active), (forced-colors: active) {
521
+ [href], [href]:visited {
522
+ color: linktext;
523
+ }
524
+ }
525
+
526
+ [target=_blank]::after {
527
+ flex: 0 0 auto;
528
+ display: inline-block;
529
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
530
+ background-color: currentColor;
531
+ width: var(--icon-size);
532
+ height: var(--icon-size);
533
+ -webkit-mask-size: 100% 100%;
534
+ mask-size: 100% 100%;
535
+ }
536
+ [target=_blank]::after {
537
+ --icon-size: 1rem;
538
+ }
539
+ [target=_blank]::after {
540
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
541
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
542
+ }
543
+ @media (-ms-high-contrast: active), (forced-colors: active) {
544
+ [target=_blank]::after {
545
+ forced-color-adjust: none;
546
+ background-color: linktext;
547
+ }
548
+ }
549
+ [target=_blank]::after {
550
+ content: var(--external-link-content);
551
+ margin-left: 0.25rem;
552
+ }
553
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
554
+ flex: 0 0 auto;
555
+ display: inline-block;
556
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
557
+ background-color: currentColor;
558
+ width: var(--icon-size);
559
+ height: var(--icon-size);
560
+ -webkit-mask-size: 100% 100%;
561
+ mask-size: 100% 100%;
562
+ }
563
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
564
+ --icon-size: 1rem;
565
+ }
566
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
567
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
568
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
569
+ }
570
+ @media (-ms-high-contrast: active), (forced-colors: active) {
571
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
572
+ forced-color-adjust: none;
573
+ background-color: linktext;
574
+ }
575
+ }
576
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
577
+ content: var(--external-link-content);
578
+ margin-left: 0.25rem;
579
+ }
580
+
581
+ form[target=_blank]::after {
582
+ content: none;
583
+ }
584
+
585
+ .fr-raw-link {
586
+ --text-decoration: none;
587
+ }
588
+ .fr-raw-link[href],
589
+ .fr-raw-link [href] {
590
+ --underline-img: none;
591
+ --external-link-content: none;
592
+ }
593
+
594
+ .fr-reset-link {
595
+ --text-decoration: underline;
596
+ }
597
+ .fr-reset-link[href],
598
+ .fr-reset-link [href] {
599
+ --underline-img: none;
600
+ text-underline-offset: 2px;
601
+ }
602
+
603
+ button {
604
+ -webkit-appearance: none;
605
+ -moz-appearance: none;
606
+ appearance: none;
607
+ border: none;
608
+ margin: 0;
609
+ color: inherit;
610
+ background-color: transparent;
611
+ font-family: inherit;
612
+ font-size: inherit;
613
+ }
614
+ @media (-ms-high-contrast: active), (forced-colors: active) {
615
+ button {
616
+ color: buttontext;
617
+ }
618
+ }
619
+
620
+ @media (-ms-high-contrast: active), (forced-colors: active) {
621
+ button:disabled {
622
+ color: graytext;
623
+ }
624
+ }
625
+
626
+ input,
627
+ select,
628
+ textarea {
629
+ -webkit-appearance: none;
630
+ -moz-appearance: none;
631
+ appearance: none;
632
+ font-family: "Marianne", arial, sans-serif;
633
+ text-rendering: optimizeLegibility;
634
+ -webkit-font-smoothing: antialiased;
635
+ -moz-osx-font-smoothing: grayscale;
636
+ -webkit-text-size-adjust: 100%;
637
+ border-radius: 0;
638
+ border: 0;
639
+ background-color: transparent;
640
+ margin: 0;
641
+ }
642
+ @media (-ms-high-contrast: active), (forced-colors: active) {
643
+ input,
644
+ select,
645
+ textarea {
646
+ border: 1px solid;
647
+ }
648
+ }
649
+
650
+ input[type=search] {
651
+ -webkit-appearance: none;
652
+ -moz-appearance: none;
653
+ appearance: none;
654
+ }
655
+
656
+ input[type=checkbox],
657
+ input[type=radio],
658
+ input[type=range] {
659
+ -webkit-appearance: auto;
660
+ -moz-appearance: auto;
661
+ appearance: auto;
662
+ }
663
+
664
+ input::-webkit-contacts-auto-fill-button,
665
+ input::-webkit-credentials-auto-fill-button {
666
+ margin-left: 1rem;
667
+ margin-right: -1px;
668
+ width: 1.25rem;
669
+ height: 1.25rem;
670
+ -webkit-mask-size: 1.25rem 1.25rem;
671
+ }
672
+
673
+ input[type=range]:focus::-webkit-slider-thumb {
674
+ outline-offset: 2px;
675
+ outline-width: 2px;
676
+ outline-color: #0a76f6;
677
+ }
678
+
679
+ input[type=range]:focus::-moz-range-thumb {
680
+ outline-offset: 2px;
681
+ outline-width: 2px;
682
+ outline-color: #0a76f6;
683
+ }
684
+
685
+ input[type=range]:focus::-ms-thumb {
686
+ outline-offset: 2px;
687
+ outline-width: 2px;
688
+ outline-color: #0a76f6;
689
+ }
690
+
691
+ a:focus, button:focus, input:focus, input[type=checkbox]:focus + label::before, input[type=radio]:focus + label::before, input[type=button]:focus, input[type=image]:focus, input[type=reset]:focus, input[type=submit]:focus, select:focus, textarea:focus, [tabindex]:focus, video:focus[controls], audio:focus[controls], [contenteditable]:not([contenteditable=false]):focus, details:focus, details > summary:first-of-type:focus {
692
+ outline-offset: 2px;
693
+ outline-width: 2px;
694
+ outline-color: #0a76f6;
695
+ }
696
+
697
+ input[type=range]:focus::-webkit-slider-thumb {
698
+ outline-style: solid;
699
+ }
700
+
701
+ input[type=range]:focus::-moz-range-thumb {
702
+ outline-style: solid;
703
+ }
704
+
705
+ input[type=range]:focus::-ms-thumb {
706
+ outline-style: solid;
707
+ }
708
+
709
+ a:focus, button:focus, input:focus, input[type=checkbox]:focus + label::before, input[type=radio]:focus + label::before, input[type=button]:focus, input[type=image]:focus, input[type=reset]:focus, input[type=submit]:focus, select:focus, textarea:focus, [tabindex]:focus, video:focus[controls], audio:focus[controls], [contenteditable]:not([contenteditable=false]):focus, details:focus, details > summary:first-of-type:focus {
710
+ outline-style: solid;
711
+ }
712
+
713
+ input[type=range]:focus:not(:focus-visible)::-webkit-slider-thumb {
714
+ outline-style: none;
715
+ }
716
+
717
+ input[type=range]:focus:not(:focus-visible)::-moz-range-thumb {
718
+ outline-style: none;
719
+ }
720
+
721
+ input[type=range]:focus:not(:focus-visible)::-ms-thumb {
722
+ outline-style: none;
723
+ }
724
+
725
+ a:focus:not(:focus-visible), button:focus:not(:focus-visible), input:focus:not(:focus-visible), input[type=checkbox]:focus:not(:focus-visible) + label::before, input[type=radio]:focus:not(:focus-visible) + label::before, input[type=button]:focus:not(:focus-visible), input[type=image]:focus:not(:focus-visible), input[type=reset]:focus:not(:focus-visible), input[type=submit]:focus:not(:focus-visible), select:focus:not(:focus-visible), textarea:focus:not(:focus-visible), [tabindex]:focus:not(:focus-visible), video:focus:not(:focus-visible)[controls], audio:focus:not(:focus-visible)[controls], [contenteditable]:not([contenteditable=false]):focus:not(:focus-visible), details:focus:not(:focus-visible), details > summary:first-of-type:focus:not(:focus-visible) {
726
+ outline-style: none;
727
+ }
728
+
729
+ input[type=range]:focus-visible::-webkit-slider-thumb {
730
+ outline-style: solid;
731
+ }
732
+
733
+ input[type=range]:focus-visible::-moz-range-thumb {
734
+ outline-style: solid;
735
+ }
736
+
737
+ input[type=range]:focus-visible::-ms-thumb {
738
+ outline-style: solid;
739
+ }
740
+
741
+ a:focus-visible, button:focus-visible, input:focus-visible, input[type=checkbox]:focus-visible + label::before, input[type=radio]:focus-visible + label::before, input[type=button]:focus-visible, input[type=image]:focus-visible, input[type=reset]:focus-visible, input[type=submit]:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible, video:focus-visible[controls], audio:focus-visible[controls], [contenteditable]:not([contenteditable=false]):focus-visible, details:focus-visible, details > summary:first-of-type:focus-visible {
742
+ outline-style: solid;
743
+ }
744
+
745
+ @media (hover: hover) and (pointer: fine) {
746
+ :root {
747
+ --brighten: -1;
748
+ }
749
+ a[href]:hover, button:not(:disabled):hover, input[type=button]:not(:disabled):hover, input[type=image]:not(:disabled):hover, input[type=reset]:not(:disabled):hover, input[type=submit]:not(:disabled):hover {
750
+ background-color: var(--hover-tint);
751
+ }
752
+ a[href]:active, button:not(:disabled):active, input[type=button]:not(:disabled):active, input[type=image]:not(:disabled):active, input[type=reset]:not(:disabled):active, input[type=submit]:not(:disabled):active {
753
+ background-color: var(--active-tint);
754
+ }
755
+ a[href]:hover, a[href]:active {
756
+ --underline-hover-width: var(--underline-max-width);
757
+ }
758
+ }
759
+ button, input[type=button], input[type=image], input[type=reset], input[type=submit] {
760
+ --hover-tint: var(--hover);
761
+ --active-tint: var(--active);
762
+ }
763
+
764
+ a {
765
+ --hover-tint: var(--idle);
766
+ --active-tint: var(--active);
767
+ }
768
+
769
+ a, button, input[type=checkbox], input[type=checkbox] + label, input[type=radio], input[type=radio] + label, input[type=file], input[type=range], input[type=button], input[type=image], input[type=reset], input[type=submit], select, video[controls], audio[controls], details, details > summary:first-of-type {
770
+ cursor: pointer;
771
+ }
772
+
773
+ input[type=range]:disabled::-webkit-slider-thumb, input[type=range]:disabled::-webkit-slider-thumb:active {
774
+ cursor: not-allowed;
775
+ }
776
+
777
+ input[type=range]:disabled::-moz-range-thumb, input[type=range]:disabled::-moz-range-thumb:active {
778
+ cursor: not-allowed;
779
+ }
780
+
781
+ input[type=range]:disabled::-ms-thumb, input[type=range]:disabled::-ms-thumb:active {
782
+ cursor: not-allowed;
783
+ }
784
+
785
+ a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, input[type=file]:disabled, input[type=range]:disabled, input[type=button]:disabled, input[type=image]:disabled, input[type=reset]:disabled, input[type=submit]:disabled, select:disabled, textarea:disabled, video:not([href])[controls], audio:not([href])[controls] {
786
+ cursor: not-allowed;
787
+ }
788
+
789
+ input[type=range]::-webkit-slider-thumb {
790
+ cursor: grab;
791
+ }
792
+
793
+ input[type=range]::-moz-range-thumb {
794
+ cursor: grab;
795
+ }
796
+
797
+ input[type=range]::-ms-thumb {
798
+ cursor: grab;
799
+ }
800
+
801
+ input[type=range]::-webkit-slider-thumb:active {
802
+ cursor: grabbing;
803
+ }
804
+
805
+ input[type=range]::-moz-range-thumb:active {
806
+ cursor: grabbing;
807
+ }
808
+
809
+ input[type=range]::-ms-thumb:active {
810
+ cursor: grabbing;
811
+ }
812
+
813
+ /**
814
+ * Override de l'opacité chrome sur un élément disabled
815
+ */
816
+ a:not([href]), button:disabled, input:disabled, input[type=checkbox]:disabled, input[type=checkbox]:disabled + label, input[type=radio]:disabled, input[type=radio]:disabled + label, select:disabled, textarea:disabled, video:not([href]), audio:not([href]) {
817
+ opacity: 1;
818
+ }
819
+
820
+ .fr-enlarge-link {
821
+ position: relative;
822
+ }
823
+ .fr-enlarge-link a {
824
+ background-image: none;
825
+ outline-width: 0;
826
+ }
827
+ .fr-enlarge-link a::before {
828
+ content: "";
829
+ display: block;
830
+ position: absolute;
831
+ top: 0;
832
+ right: 0;
833
+ bottom: 0;
834
+ left: 0;
835
+ width: 100%;
836
+ height: 100%;
837
+ outline-offset: 2px;
838
+ outline-style: inherit;
839
+ outline-color: inherit;
840
+ outline-width: 2px;
841
+ z-index: 1;
842
+ }
843
+ @media (hover: hover) and (pointer: fine) {
844
+ .fr-enlarge-link a:hover, .fr-enlarge-link a:active {
845
+ background-image: none;
846
+ }
847
+ .fr-enlarge-link:hover {
848
+ background-color: var(--hover);
849
+ }
850
+ .fr-enlarge-link:active {
851
+ background-color: var(--active);
852
+ }
853
+ }
854
+
855
+ .fr-enlarge-button {
856
+ position: relative;
857
+ }
858
+ .fr-enlarge-button button {
859
+ background-image: none;
860
+ outline-width: 0;
861
+ }
862
+ .fr-enlarge-button button::before {
863
+ content: "";
864
+ display: block;
865
+ position: absolute;
866
+ top: 0;
867
+ right: 0;
868
+ bottom: 0;
869
+ left: 0;
870
+ width: 100%;
871
+ height: 100%;
872
+ outline-offset: 2px;
873
+ outline-style: inherit;
874
+ outline-color: inherit;
875
+ outline-width: 2px;
876
+ z-index: 1;
877
+ }
878
+ @media (hover: hover) and (pointer: fine) {
879
+ .fr-enlarge-button button:hover, .fr-enlarge-button button:active {
880
+ background-image: none;
881
+ }
882
+ .fr-enlarge-button:hover {
883
+ background-color: var(--hover);
884
+ }
885
+ .fr-enlarge-button:active {
886
+ background-color: var(--active);
887
+ }
888
+ }
889
+
890
+ :root {
891
+ --ul-type: disc;
892
+ --ol-type: decimal;
893
+ --ul-start: 1rem;
894
+ --ol-start: 1.5rem;
895
+ --xl-block: 0.5rem;
896
+ --li-bottom: 0.25rem;
897
+ --xl-base: 1em;
898
+ --ol-content: counters(li-counter, ".") ".\00a0\00a0";
899
+ }
900
+
901
+ ul,
902
+ ol,
903
+ dl {
904
+ margin: 0;
905
+ padding: 0;
906
+ margin-block-start: var(--xl-block);
907
+ margin-block-end: var(--xl-block);
908
+ --xl-size: var(--xl-base);
909
+ }
910
+
911
+ ul {
912
+ list-style-type: var(--ul-type);
913
+ padding-inline-start: var(--ul-start);
914
+ }
915
+ ul > li::marker {
916
+ font-size: calc(var(--xl-size) * 0.9);
917
+ }
918
+ @media (-ms-high-contrast: active), (forced-colors: active) {
919
+ ul > li::marker {
920
+ color: graytext;
921
+ }
922
+ }
923
+
924
+ ol {
925
+ list-style-type: var(--ol-type);
926
+ padding-inline-start: var(--ol-start);
927
+ counter-reset: li-counter;
928
+ }
929
+ ol > li {
930
+ counter-increment: li-counter;
931
+ }
932
+ ol > li::marker {
933
+ content: var(--ol-content);
934
+ font-size: var(--xl-size);
935
+ font-weight: bold;
936
+ }
937
+
938
+ dl,
939
+ dd {
940
+ margin: 0;
941
+ padding-inline-start: var(--ul-start);
942
+ }
943
+
944
+ li,
945
+ dd,
946
+ dt {
947
+ --xl-base: calc(var(--xl-size) * 0.9);
948
+ padding-bottom: var(--li-bottom);
949
+ }
950
+
951
+ .fr-raw-list {
952
+ --ul-type: none;
953
+ --ol-type: none;
954
+ --ul-start: 0;
955
+ --ol-start: 0;
956
+ --xl-block: 0;
957
+ --li-bottom: 0;
958
+ --ol-content: none;
959
+ }
960
+
961
+ .fr-list {
962
+ --ul-type: disc;
963
+ --ol-type: decimal;
964
+ --ul-start: 1rem;
965
+ --ol-start: 1.5rem;
966
+ --xl-block: 0.5rem;
967
+ --li-bottom: 0.25rem;
968
+ --xl-base: 1em;
969
+ --ol-content: counters(li-counter, ".") ".\00a0\00a0";
970
+ }
971
+
972
+ .fr-collapse {
973
+ --collapse: -99999px;
974
+ --collapser: '';
975
+ --collapse-max-height: none;
976
+ overflow: hidden;
977
+ transition: visibility 0.3s;
978
+ max-height: var(--collapse-max-height);
979
+ }
980
+ .fr-collapse--expanded {
981
+ overflow-x: hidden;
982
+ overflow-y: auto;
983
+ }
984
+ @media (prefers-reduced-motion: reduce) {
985
+ .fr-collapse {
986
+ transition: none;
987
+ }
988
+ }
989
+ .fr-collapse::before {
990
+ display: block;
991
+ content: "";
992
+ content: var(--collapser);
993
+ transition: margin-top 0.3s;
994
+ margin-top: 0;
995
+ }
996
+ @media (prefers-reduced-motion: reduce) {
997
+ .fr-collapse::before {
998
+ transition: none;
999
+ }
1000
+ }
1001
+ .fr-collapse:not(.fr-collapse--expanded):not(.fr-collapsing) {
1002
+ --collapse-max-height: 0;
1003
+ }
1004
+ .fr-collapse:not(.fr-collapse--expanded) {
1005
+ visibility: hidden;
1006
+ }
1007
+ .fr-collapse:not(.fr-collapse--expanded)::before {
1008
+ margin-top: -99999px;
1009
+ margin-top: var(--collapse);
1010
+ }
1011
+
1012
+ *,
1013
+ *::before,
1014
+ *::after {
1015
+ box-sizing: inherit;
1016
+ }
1017
+
1018
+ :root {
1019
+ box-sizing: border-box;
1020
+ }
1021
+
1022
+ body {
1023
+ font-family: "Marianne", arial, sans-serif;
1024
+ text-rendering: optimizeLegibility;
1025
+ -webkit-font-smoothing: antialiased;
1026
+ -moz-osx-font-smoothing: grayscale;
1027
+ -webkit-text-size-adjust: 100%;
1028
+ margin: 0;
1029
+ padding: 0;
1030
+ font-size: 1rem;
1031
+ line-height: 1.5rem;
1032
+ overflow-wrap: break-word;
1033
+ }
1034
+
1035
+ input,
1036
+ select,
1037
+ textarea,
1038
+ label,
1039
+ button,
1040
+ a {
1041
+ -webkit-tap-highlight-color: transparent;
1042
+ }
1043
+
1044
+ select optgroup {
1045
+ font-style: normal;
1046
+ }
1047
+
1048
+ :host {
1049
+ display: block;
1050
+ text-rendering: optimizeLegibility;
1051
+ -webkit-font-smoothing: antialiased;
1052
+ -moz-osx-font-smoothing: grayscale;
1053
+ -webkit-text-size-adjust: 100%;
1054
+ font-size: 1rem;
1055
+ line-height: 1.5rem;
1056
+ background-color: var(--background-default-grey);
1057
+ --idle: transparent;
1058
+ --hover: var(--background-default-grey-hover);
1059
+ --active: var(--background-default-grey-active);
1060
+ color: var(--text-default-grey);
1061
+ background-color: transparent;
1062
+ }
1063
+
1064
+ .fr-tabnav {
1065
+ box-sizing: border-box;
1066
+ }
1067
+
1068
+ .fr-tabnav {
1069
+ margin-bottom: 2rem;
1070
+ padding-top: 1rem;
1071
+ }
1072
+ .fr-tabnav .fr-sidemenu {
1073
+ padding-right: 0;
1074
+ }
1075
+ .fr-tabnav ul {
1076
+ list-style: none;
1077
+ margin: 0;
1078
+ padding-inline-start: 0;
1079
+ padding-top: 1rem;
1080
+ }
1081
+
1082
+ .fr-tabnav__link {
1083
+ display: block;
1084
+ text-align: left;
1085
+ width: 100%;
1086
+ padding: 0.75rem 0.5rem;
1087
+ text-decoration: none;
1088
+ color: var(--text-default-grey);
1089
+ font-weight: 700;
1090
+ font-size: 1rem;
1091
+ line-height: 1.5;
1092
+ border: 0;
1093
+ background-color: transparent;
1094
+ background-repeat: no-repeat;
1095
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1096
+ background-size: 100% 1px;
1097
+ background-position: 0 100%;
1098
+ }
1099
+ .fr-tabnav__link[aria-current=page] {
1100
+ display: none;
1101
+ color: var(--text-active-blue-france);
1102
+ }
1103
+
1104
+ @media (min-width: 48em) {
1105
+ .fr-tabnav {
1106
+ padding-top: 2rem;
1107
+ }
1108
+ .fr-tabnav .fr-sidemenu__inner {
1109
+ box-shadow: none;
1110
+ padding: 0;
1111
+ }
1112
+ .fr-tabnav ul {
1113
+ display: flex;
1114
+ flex-direction: row;
1115
+ padding-top: 0;
1116
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1117
+ background-size: 100% 2px;
1118
+ background-position: 0 100%;
1119
+ background-repeat: no-repeat;
1120
+ }
1121
+ .fr-tabnav--centered ul {
1122
+ width: fit-content;
1123
+ margin: 0 auto;
1124
+ }
1125
+ .fr-tabnav--centered .fr-tabnav__link {
1126
+ width: auto;
1127
+ }
1128
+ .fr-tabnav__link {
1129
+ font-size: 0.875rem;
1130
+ font-weight: 400;
1131
+ padding: 0.75rem;
1132
+ background-repeat: no-repeat;
1133
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1134
+ background-size: 100% 2px;
1135
+ background-position: 0 100%;
1136
+ }
1137
+ .fr-tabnav__link:hover:not([aria-current=page]) {
1138
+ background-color: var(--background-default-grey-hover) !important;
1139
+ background-image: linear-gradient(0deg, var(--border-contrast-grey), var(--border-contrast-grey));
1140
+ background-size: 100% 2px;
1141
+ background-position: 0 100%;
1142
+ }
1143
+ .fr-tabnav__link[aria-current=page] {
1144
+ display: block;
1145
+ background-image: linear-gradient(0deg, var(--border-active-blue-france), var(--border-active-blue-france));
1146
+ background-size: 100% 2px;
1147
+ background-position: 0 100%;
1148
+ }
1149
+ }</style>