@lab-anssi/ui-kit 1.61.3 → 1.62.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 (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 +926 -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,1532 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "dsfr-checkboxes-group",
4
+ props: {
5
+ id: { attribute: "id", type: "String" },
6
+ legend: { attribute: "legend", type: "String" },
7
+ checkboxes: { attribute: "checkboxes", type: "Object" },
8
+ hint: { attribute: "hint", type: "String" },
9
+ size: { attribute: "size", type: "String" },
10
+ inline: { attribute: "inline", type: "Boolean" },
11
+ name: { attribute: "name", type: "String", reflect: true },
12
+ disabled: { attribute: "disabled", type: "Boolean", reflect: true },
13
+ values: { attribute: "values", type: "Object", reflect: true },
14
+ status: { attribute: "status", type: "String" },
15
+ errorMessage: { attribute: "error-message", type: "String" },
16
+ validMessage: { attribute: "valid-message", type: "String" },
17
+ form: { attribute: "form", type: "String", reflect: true },
18
+ required: { attribute: "required", type: "Boolean" },
19
+ legendSize: { attribute: "legend-size", type: "String" },
20
+ legendWeight: { attribute: "legend-weight", type: "String" },
21
+ },
22
+ extend: (customElementConstructor) => {
23
+ return class extends customElementConstructor {
24
+ static formAssociated = true;
25
+
26
+ constructor() {
27
+ super();
28
+ this.internals = this.attachInternals();
29
+ }
30
+ };
31
+ },
32
+ }}
33
+ />
34
+
35
+ <script lang="ts">import { setThemeable } from "../utilitaires";
36
+ import { createFormValidation } from "../utilitaires/createFormValidation.svelte";
37
+ import DsfrMessagesGroup from "./DsfrMessagesGroup.svelte";
38
+ let { id, legend, checkboxes, hint, size = "md", inline, disabled, values = $bindable(), status = "default", errorMessage, validMessage, name, form, required, internals, legendSize, legendWeight, onvalueschanged } = $props();
39
+ let hostElement = $host();
40
+ setThemeable(hostElement);
41
+ let validityCheckbox;
42
+ // Création de l'état de validation partagé
43
+ const formValidation = createFormValidation();
44
+ // Détermine si l'utilisateur a pris la main sur le status
45
+ const isUserControlled = $derived(status !== "default");
46
+ // Status et message calculés à afficher
47
+ const computedStatus = $derived(isUserControlled ? status : formValidation.localStatus);
48
+ const computedErrorMessage = $derived(isUserControlled ? errorMessage : formValidation.localErrorMessage);
49
+ /**
50
+ * Gère l'événement change du groupe de checkboxes.
51
+ * Met à jour les valeurs et déclenche l'événement 'valueschanged'.
52
+ */
53
+ function handleChange() {
54
+ onvalueschanged?.(values);
55
+ hostElement?.dispatchEvent(new CustomEvent("valueschanged", {
56
+ detail: values,
57
+ bubbles: true
58
+ }));
59
+ }
60
+ /**
61
+ * Capture la référence de l'élément utilisé pour la validation du groupe.
62
+ */
63
+ function captureValidityCheckbox(node) {
64
+ if (!validityCheckbox) {
65
+ validityCheckbox = node;
66
+ }
67
+ }
68
+ /**
69
+ * Définit un message de validité personnalisé pour le groupe de checkboxes.
70
+ * Met à jour le message de validité personnalisé et déclenche la vérification de validité.
71
+ *
72
+ * @param {string} message - Le message de validité personnalisé à définir
73
+ */
74
+ export function setCustomValidity(message) {
75
+ formValidation.setCustomValidity(message);
76
+ }
77
+ // Configure la validation avec les références nécessaires
78
+ // Pour un groupe de checkboxes, on utilise le premier input comme référence
79
+ $effect(() => {
80
+ formValidation.setup(internals, validityCheckbox, hostElement, () => {
81
+ values = [];
82
+ });
83
+ });
84
+ // Synchronise la valeur du formulaire et met à jour la validité
85
+ // Pour les checkboxes, on utilise FormData pour envoyer plusieurs valeurs avec le même nom
86
+ $effect(() => {
87
+ if (!internals) return;
88
+ const formData = new FormData();
89
+ const fieldName = name ?? id;
90
+ if (values && values.length > 0) {
91
+ for (const val of values) {
92
+ formData.append(fieldName, val);
93
+ }
94
+ internals.setFormValue(formData);
95
+ } else {
96
+ internals.setFormValue("");
97
+ }
98
+ if (isUserControlled) {
99
+ internals.setValidity({});
100
+ return;
101
+ }
102
+ formValidation.updateValidity();
103
+ });
104
+ // Attache les event listeners pour la validation
105
+ $effect(() => {
106
+ return formValidation.attachListeners();
107
+ });
108
+ </script>
109
+
110
+ <fieldset
111
+ class={["fr-fieldset", `fr-fieldset--${computedStatus}`]}
112
+ aria-labelledby={`${id}-legend ${id}-messages`}
113
+ {id}
114
+ {disabled}
115
+ {form}
116
+ >
117
+ <legend class="fr-fieldset__legend--regular fr-fieldset__legend" id={`${id}-legend`}>
118
+ <span
119
+ class={[legendSize && `fr-text--${legendSize}`, legendWeight && `fr-text--${legendWeight}`]}
120
+ >
121
+ {legend}
122
+ </span>
123
+
124
+ {#if hint}
125
+ <span class="fr-hint-text">{hint}</span>
126
+ {/if}
127
+ </legend>
128
+
129
+ {#each checkboxes as item, i (item.id)}
130
+ <div class={["fr-fieldset__element", { "fr-fieldset__element--inline": inline }]}>
131
+ <div class={["fr-checkbox-group", `fr-checkbox-group--${size}`]}>
132
+ <input
133
+ type="checkbox"
134
+ id={item.id}
135
+ name={name || id || item.name}
136
+ value={item.value || item.id}
137
+ bind:group={values}
138
+ onchange={handleChange}
139
+ onblur={formValidation.handleBlur}
140
+ oninvalid={formValidation.handleInvalid}
141
+ use:captureValidityCheckbox
142
+ disabled={item.disabled || disabled}
143
+ form={item.form || form}
144
+ required={i === 0
145
+ ? (required && (values ?? []).length === 0) ||
146
+ checkboxes.some((c) => c.required && !(values ?? []).includes(c.value || c.id))
147
+ : item.required && !(values ?? []).includes(item.value || item.id)}
148
+ />
149
+ <label class="fr-label" for={item.id}>
150
+ {item.label}
151
+
152
+ {#if item.hint}
153
+ <span class="fr-hint-text">{item.hint}</span>
154
+ {/if}
155
+ </label>
156
+ </div>
157
+ </div>
158
+ {/each}
159
+
160
+ <slot name="messages-group">
161
+ {#if computedStatus !== "default"}
162
+ <DsfrMessagesGroup
163
+ {id}
164
+ status={computedStatus}
165
+ errorMessage={isUserControlled ? errorMessage : computedErrorMessage}
166
+ {validMessage}
167
+ context="fieldset"
168
+ />
169
+ {/if}
170
+ </slot>
171
+ </fieldset>
172
+
173
+ <style>@charset "UTF-8"; /*!
174
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
175
+ */ /* ¯¯¯¯¯¯¯¯¯ *\
176
+ FORM
177
+ \* ˍˍˍˍˍˍˍˍˍ */
178
+ .fr-label {
179
+ display: block;
180
+ font-size: 1rem;
181
+ line-height: 1.5rem;
182
+ color: var(--text-label-grey);
183
+ }
184
+
185
+ .fr-label + .fr-input,
186
+ .fr-label + .fr-input-wrap,
187
+ .fr-label + .fr-select {
188
+ margin-top: 0.5rem;
189
+ }
190
+
191
+ .fr-hint-text {
192
+ display: block;
193
+ font-size: 0.75rem;
194
+ line-height: 1.25rem;
195
+
196
+ --text-spacing: 0 0 1rem;
197
+ }
198
+
199
+ .fr-hint-text + .fr-hint-text {
200
+ margin-top: 0.25rem;
201
+ }
202
+
203
+ .fr-fieldset {
204
+ position: relative;
205
+ margin: 0 -0.75rem 1rem;
206
+ padding: 0 0.25rem;
207
+ display: flex;
208
+ flex-direction: row;
209
+ align-items: last baseline;
210
+ flex-wrap: wrap;
211
+ border: 0;
212
+ }
213
+
214
+ .fr-fieldset__legend {
215
+ padding-bottom: 1rem;
216
+ padding-left: 0.75rem;
217
+ padding-right: 0.75rem;
218
+ margin-left: -0.25rem;
219
+ margin-right: -0.25rem;
220
+ font-size: 1rem;
221
+ line-height: 1.5rem;
222
+ font-weight: 700;
223
+ width: 100%;
224
+ color: var(--text-label-grey);
225
+ }
226
+
227
+ .fr-fieldset__legend--regular {
228
+ font-weight: 400;
229
+ }
230
+
231
+ .fr-fieldset__legend .fr-hint-text {
232
+ margin-top: 0.5rem;
233
+ font-weight: 400;
234
+ }
235
+
236
+ .fr-fieldset--valid,
237
+ .fr-fieldset--error,
238
+ .fr-fieldset--info {
239
+ background-repeat: no-repeat;
240
+ background-position: 0 -2.25rem;
241
+ background-size: 2px calc(100% + 1.25rem);
242
+ }
243
+
244
+ .fr-fieldset--valid .fr-fieldset__legend,
245
+ .fr-fieldset--error .fr-fieldset__legend,
246
+ .fr-fieldset--info .fr-fieldset__legend {
247
+ background-repeat: no-repeat;
248
+ background-position: 0 0;
249
+ background-size: 2px 100%;
250
+ }
251
+
252
+ .fr-fieldset__element {
253
+ flex: 1 1 100%;
254
+ max-width: 100%;
255
+ padding-left: 0.5rem;
256
+ padding-right: 0.5rem;
257
+ margin-bottom: 1rem;
258
+ }
259
+
260
+ .fr-fieldset__element--inline {
261
+ flex: 0 0 auto;
262
+ }
263
+
264
+ .fr-fieldset__element--inline-grow,
265
+ .fr-fieldset__element--inline\@md.fr-fieldset__element--inline-grow {
266
+ flex-grow: 1;
267
+ }
268
+
269
+ .fr-fieldset__element.fr-fieldset__element--year {
270
+ flex: 0 0 8rem;
271
+ }
272
+
273
+ .fr-fieldset__element--year:not(.fr-fieldset__element--inline) {
274
+ margin-right: calc(100% - 8rem);
275
+ }
276
+
277
+ .fr-fieldset__element.fr-fieldset__element--postal {
278
+ flex: 0 0 16rem;
279
+ }
280
+
281
+ .fr-fieldset__element--postal:not(.fr-fieldset__element--inline) {
282
+ margin-right: calc(100% - 16rem);
283
+ }
284
+
285
+ .fr-fieldset__element.fr-fieldset__element--number {
286
+ flex: 0 0 6rem;
287
+ }
288
+
289
+ .fr-fieldset__element--number:not(.fr-fieldset__element--inline) {
290
+ margin-right: calc(100% - 6rem);
291
+ }
292
+
293
+ .fr-fieldset__legend > h1:last-child::after,
294
+ .fr-fieldset__legend > h2:last-child::after,
295
+ .fr-fieldset__legend > h3:last-child::after,
296
+ .fr-fieldset__legend > h4:last-child::after,
297
+ .fr-fieldset__legend > h5:last-child::after,
298
+ .fr-fieldset__legend > h6:last-child::after,
299
+ .fr-fieldset__legend > p:last-child::after,
300
+ .fr-fieldset__legend > .fr-fieldset:last-child::after,
301
+ .fr-fieldset__element > h1:last-child::after,
302
+ .fr-fieldset__element > h2:last-child::after,
303
+ .fr-fieldset__element > h3:last-child::after,
304
+ .fr-fieldset__element > h4:last-child::after,
305
+ .fr-fieldset__element > h5:last-child::after,
306
+ .fr-fieldset__element > h6:last-child::after,
307
+ .fr-fieldset__element > p:last-child::after,
308
+ .fr-fieldset__element > .fr-fieldset:last-child::after {
309
+ content: "";
310
+ display: block;
311
+ margin-bottom: -1rem;
312
+ }
313
+
314
+ .fr-fieldset > .fr-messages-group {
315
+ flex: 1 1 100%;
316
+ padding-left: 0.5rem;
317
+ padding-right: 0.5rem;
318
+ }
319
+
320
+ .fr-fieldset > .fr-messages-group > .fr-message:last-child {
321
+ margin-bottom: 1rem;
322
+ }
323
+
324
+ .fr-message {
325
+ --comma: ", ";
326
+ --content: var(--comma);
327
+ display: flex;
328
+ flex-direction: row;
329
+ align-items: flex-start;
330
+ font-size: 0.75rem;
331
+ line-height: 1.25rem;
332
+ margin: 0 0 0.25rem 0;
333
+ }
334
+
335
+ .fr-message::after {
336
+ content: var(--content);
337
+ position: absolute;
338
+ width: 1px;
339
+ height: 1px;
340
+ padding: 0;
341
+ margin: -1px;
342
+ overflow: hidden;
343
+ clip: rect(0, 0, 0, 0);
344
+ white-space: nowrap; /* added line */
345
+ border: 0;
346
+ display: block;
347
+ }
348
+
349
+ .fr-message:last-child {
350
+ --comma: ". ";
351
+ margin-bottom: 0;
352
+ }
353
+
354
+ .fr-message--error::before,
355
+ .fr-message--valid::before,
356
+ .fr-message--warning::before,
357
+ .fr-message--info::before {
358
+ flex: 0 0 auto;
359
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
360
+ background-color: currentColor;
361
+ width: var(--icon-size);
362
+ height: var(--icon-size);
363
+ -webkit-mask-size: 100% 100%;
364
+ mask-size: 100% 100%;
365
+ --icon-size: 1rem;
366
+ content: "";
367
+ display: inline-block;
368
+ margin-right: 0.25rem;
369
+ margin-top: 0.125rem;
370
+ }
371
+
372
+ .fr-message--error::before {
373
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
374
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
375
+ }
376
+
377
+ .fr-message--valid::before {
378
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
379
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
380
+ }
381
+
382
+ .fr-message--info::before {
383
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
384
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
385
+ }
386
+
387
+ .fr-message--warning::before {
388
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--warning-fill.svg");
389
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--warning-fill.svg");
390
+ }
391
+
392
+ .fr-select-group--valid label,
393
+ .fr-input-group--valid label,
394
+ .fr-range-group--valid label,
395
+ .fr-upload-group--valid label {
396
+ color: var(--text-default-success);
397
+ }
398
+
399
+ .fr-select-group--error label,
400
+ .fr-input-group--error label,
401
+ .fr-range-group--error label,
402
+ .fr-upload-group--error label {
403
+ color: var(--text-default-error);
404
+ }
405
+
406
+ .fr-select-group--info label,
407
+ .fr-input-group--info label,
408
+ .fr-range-group--info label,
409
+ .fr-upload-group--info label {
410
+ color: var(--text-default-info);
411
+ }
412
+
413
+ .fr-select-group--disabled label,
414
+ .fr-select-group--disabled .fr-hint-text,
415
+ .fr-input-group--disabled label,
416
+ .fr-input-group--disabled .fr-hint-text,
417
+ .fr-range-group--disabled label,
418
+ .fr-range-group--disabled .fr-hint-text,
419
+ .fr-upload-group--disabled label,
420
+ .fr-upload-group--disabled .fr-hint-text {
421
+ color: var(--text-disabled-grey);
422
+ }
423
+
424
+ .fr-label--error {
425
+ color: var(--text-default-error);
426
+ }
427
+
428
+ .fr-label--success {
429
+ color: var(--text-default-success);
430
+ }
431
+
432
+ .fr-label--info {
433
+ color: var(--text-default-info);
434
+ }
435
+
436
+ .fr-label--disabled,
437
+ .fr-label--disabled .fr-hint-text {
438
+ color: var(--text-disabled-grey);
439
+ }
440
+
441
+ .fr-hint-text,
442
+ .fr-message {
443
+ color: var(--text-mention-grey);
444
+ }
445
+
446
+ .fr-message--error {
447
+ color: var(--text-default-error);
448
+ }
449
+
450
+ .fr-message--valid {
451
+ color: var(--text-default-success);
452
+ }
453
+
454
+ .fr-message--info {
455
+ color: var(--text-default-info);
456
+ }
457
+
458
+ .fr-message--warning {
459
+ color: var(--text-default-warning);
460
+ }
461
+
462
+ .fr-fieldset:disabled .fr-label,
463
+ .fr-fieldset:disabled .fr-hint-text,
464
+ .fr-fieldset:disabled .fr-fieldset__legend {
465
+ color: var(--text-disabled-grey);
466
+ }
467
+
468
+ .fr-fieldset input:disabled + label,
469
+ .fr-fieldset input:disabled + label .fr-hint-text,
470
+ .fr-fieldset input:disabled + label + .fr-hint-text {
471
+ color: var(--text-disabled-grey);
472
+ }
473
+
474
+ .fr-fieldset--error,
475
+ .fr-fieldset--error .fr-fieldset__legend {
476
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
477
+ }
478
+
479
+ .fr-fieldset--error .fr-fieldset__legend,
480
+ .fr-fieldset--error .fr-label {
481
+ color: var(--text-default-error);
482
+ }
483
+
484
+ .fr-fieldset--valid,
485
+ .fr-fieldset--valid .fr-fieldset__legend {
486
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
487
+ }
488
+
489
+ .fr-fieldset--valid .fr-fieldset__legend,
490
+ .fr-fieldset--valid .fr-label {
491
+ color: var(--text-default-success);
492
+ }
493
+
494
+ .fr-fieldset--info,
495
+ .fr-fieldset--info .fr-fieldset__legend {
496
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
497
+ }
498
+
499
+ .fr-fieldset--info .fr-fieldset__legend,
500
+ .fr-fieldset--info .fr-label {
501
+ color: var(--text-default-info);
502
+ }
503
+
504
+ .fr-select-group:not(:last-child),
505
+ .fr-input-group:not(:last-child) {
506
+ margin-bottom: 1.5rem;
507
+ }
508
+
509
+ .fr-select-group .fr-label .fr-hint-text,
510
+ .fr-input-group .fr-label .fr-hint-text {
511
+ margin-top: 0.25rem;
512
+ }
513
+
514
+ .fr-fieldset--inline .fr-fieldset__content {
515
+ display: flex;
516
+ align-items: baseline;
517
+ justify-content: flex-start;
518
+ flex-wrap: wrap;
519
+ margin: -0.75rem 0.5rem 0 0.5rem;
520
+ }
521
+
522
+ .fr-fieldset--inline .fr-checkbox-group {
523
+ display: inline-flex;
524
+ margin-bottom: 0;
525
+ }
526
+
527
+ .fr-fieldset--inline .fr-checkbox-group:first-child {
528
+ margin-top: 0;
529
+ }
530
+
531
+ .fr-fieldset--inline .fr-checkbox-group:not(:last-child) {
532
+ margin-right: 1.25rem;
533
+ }
534
+
535
+ .fr-fieldset--inline .fr-checkbox-group:last-child {
536
+ margin-bottom: 0;
537
+ }
538
+
539
+ .fr-fieldset--inline .fr-radio-group {
540
+ display: inline-flex;
541
+ }
542
+
543
+ .fr-fieldset--inline .fr-radio-group:not(:last-child) {
544
+ margin-right: 1.75rem;
545
+ }
546
+
547
+ .fr-fieldset--inline .fr-radio-group:first-child {
548
+ margin-top: 0;
549
+ }
550
+
551
+ .fr-fieldset--inline .fr-radio-group:last-child {
552
+ margin-bottom: 0;
553
+ }
554
+
555
+ .fr-fieldset__content {
556
+ position: relative;
557
+ margin: 0 0.5rem;
558
+ width: 100%;
559
+ }
560
+
561
+ .fr-fieldset__content .fr-radio-group:first-child,
562
+ .fr-fieldset__content .fr-checkbox-group:first-child {
563
+ margin-top: -0.75rem;
564
+ }
565
+
566
+ .fr-fieldset__content .fr-radio-group label,
567
+ .fr-fieldset__content .fr-checkbox-group label {
568
+ padding: 0.75rem 0;
569
+ }
570
+
571
+ .fr-fieldset__content .fr-radio-group:not(.fr-radio-rich) input[type=radio] + label::before,
572
+ .fr-fieldset__content .fr-checkbox-group input[type=checkbox] + label::before {
573
+ top: 0.75rem;
574
+ }
575
+
576
+ .fr-fieldset__content + .fr-error-text,
577
+ .fr-fieldset__content + .fr-valid-text,
578
+ .fr-fieldset__content + .fr-info-text {
579
+ margin-top: 0;
580
+ margin-left: 0.5rem;
581
+ margin-bottom: 1rem;
582
+ }
583
+
584
+ .fr-error-text,
585
+ .fr-valid-text,
586
+ .fr-info-text {
587
+ display: flex;
588
+ flex-direction: row;
589
+ align-items: center;
590
+ font-size: 0.75rem;
591
+ line-height: 1.25rem;
592
+ margin-top: 1rem;
593
+ margin-bottom: 0;
594
+ }
595
+
596
+ .fr-error-text::before,
597
+ .fr-valid-text::before,
598
+ .fr-info-text::before {
599
+ flex: 0 0 auto;
600
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
601
+ background-color: currentColor;
602
+ width: var(--icon-size);
603
+ height: var(--icon-size);
604
+ -webkit-mask-size: 100% 100%;
605
+ mask-size: 100% 100%;
606
+ --icon-size: 1rem;
607
+ content: "";
608
+ display: inline-block;
609
+ margin-right: 0.25rem;
610
+ }
611
+
612
+ .fr-error-text + .fr-error-text,
613
+ .fr-error-text + .fr-valid-text,
614
+ .fr-error-text + .fr-info-text,
615
+ .fr-valid-text + .fr-error-text,
616
+ .fr-valid-text + .fr-valid-text,
617
+ .fr-valid-text + .fr-info-text,
618
+ .fr-info-text + .fr-error-text,
619
+ .fr-info-text + .fr-valid-text,
620
+ .fr-info-text + .fr-info-text {
621
+ margin-top: 0.25rem;
622
+ }
623
+
624
+ .fr-error-text::before {
625
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
626
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
627
+ }
628
+
629
+ .fr-valid-text::before {
630
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
631
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
632
+ }
633
+
634
+ .fr-info-text::before {
635
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
636
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
637
+ }
638
+
639
+ .fr-error-text {
640
+ color: var(--text-default-error);
641
+ }
642
+
643
+ .fr-valid-text {
644
+ color: var(--text-default-success);
645
+ }
646
+
647
+ .fr-info-text {
648
+ color: var(--text-default-info);
649
+ }
650
+
651
+ .fr-fieldset--valid .fr-fieldset__content::before {
652
+ box-shadow: inset 2px 0 0 0 var(--border-plain-success);
653
+ }
654
+
655
+ .fr-fieldset--error .fr-fieldset__content::before {
656
+ box-shadow: inset 2px 0 0 0 var(--border-plain-error);
657
+ }
658
+
659
+ .fr-fieldset--info .fr-fieldset__content::before {
660
+ box-shadow: inset 2px 0 0 0 var(--border-plain-info);
661
+ }
662
+ @media (min-width: 36em) {
663
+ /*! media sm */
664
+ }
665
+ @media (min-width: 48em) {
666
+ /*! media md */
667
+ .fr-fieldset__element--inline\@md {
668
+ flex: 0 0 auto;
669
+ }
670
+
671
+ .fr-fieldset__element--year.fr-fieldset__element--inline\@md {
672
+ margin-right: 0;
673
+ }
674
+
675
+ .fr-fieldset__element--postal.fr-fieldset__element--inline\@md {
676
+ margin-right: 0;
677
+ }
678
+
679
+ .fr-fieldset__element--number.fr-fieldset__element--inline\@md {
680
+ margin-right: 0;
681
+ }
682
+ }
683
+ @media (min-width: 62em) {
684
+ /*! media lg */
685
+ }
686
+ @media (min-width: 78em) {
687
+ /*! media xl */
688
+ }
689
+ @media (-ms-high-contrast: active), (forced-colors: active) {
690
+ .fr-fieldset:disabled .fr-label,
691
+ .fr-fieldset:disabled .fr-hint-text,
692
+ .fr-fieldset:disabled .fr-fieldset__legend {
693
+ color: graytext;
694
+ }
695
+
696
+ .fr-fieldset input:disabled + label,
697
+ .fr-fieldset input:disabled + label .fr-hint-text,
698
+ .fr-fieldset input:disabled + label + .fr-hint-text {
699
+ color: graytext;
700
+ }
701
+
702
+ .fr-message--error::before,
703
+ .fr-message--error::after,
704
+ .fr-message--valid::before,
705
+ .fr-message--valid::after,
706
+ .fr-message--warning::before,
707
+ .fr-message--warning::after,
708
+ .fr-message--info::before,
709
+ .fr-message--info::after {
710
+ forced-color-adjust: none;
711
+ background-color: canvastext;
712
+ }
713
+
714
+ .fr-error-text::before,
715
+ .fr-valid-text::before,
716
+ .fr-info-text::before {
717
+ forced-color-adjust: none;
718
+ background-color: canvastext;
719
+ }
720
+ }
721
+ /*!
722
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
723
+ */
724
+ /* ¯¯¯¯¯¯¯¯¯ *\
725
+ CHECKBOX
726
+ \* ˍˍˍˍˍˍˍˍˍ */
727
+ .fr-checkbox-group {
728
+ position: relative;
729
+ }
730
+
731
+ .fr-checkbox-group input[type=checkbox] {
732
+ position: absolute;
733
+ margin: 0;
734
+ width: 1.5rem;
735
+ height: 1.5rem;
736
+ opacity: 0;
737
+ }
738
+
739
+ .fr-checkbox-group input[type=checkbox] + label {
740
+ --data-uri-svg: none;
741
+ position: relative;
742
+ display: flex;
743
+ flex-direction: row;
744
+ align-items: center;
745
+ justify-content: flex-start;
746
+ flex-wrap: wrap;
747
+ margin-left: 2rem;
748
+ /**
749
+ * On ajoute l'icône check-line en taille sm via un pseudo element before
750
+ */
751
+ }
752
+
753
+ .fr-checkbox-group input[type=checkbox] + label .fr-hint-text {
754
+ margin: 0;
755
+ width: 100%;
756
+ }
757
+
758
+ .fr-checkbox-group input[type=checkbox] + label::before {
759
+ content: "";
760
+ display: block;
761
+ position: absolute;
762
+ top: 0;
763
+ left: -2rem;
764
+ width: 1.5rem;
765
+ height: 1.5rem;
766
+ margin-right: 0.5rem;
767
+ border-radius: 0.25rem;
768
+ background-size: 0.25rem 0.25rem, calc(100% - 0.25rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 0.25rem 0.25rem, calc(100% - 0.5rem) 1px, 0.25rem 0.25rem, 1px calc(100% - 0.5rem), 1rem;
769
+ background-position: 0 0, 0.25rem 0, 100% 0, 0 0.25rem, 100% 100%, calc(100% - 0.25rem) 100%, 0 100%, 100% 0.25rem, center;
770
+ background-repeat: no-repeat;
771
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-action-high-blue-france) 4px, var(--border-action-high-blue-france) 5px, transparent 6px), linear-gradient(var(--border-action-high-blue-france), var(--border-action-high-blue-france)), var(--data-uri-svg);
772
+ }
773
+
774
+ .fr-checkbox-group--sm input[type=checkbox] {
775
+ top: 0.25rem;
776
+ width: 1rem;
777
+ height: 1rem;
778
+ }
779
+
780
+ .fr-checkbox-group--sm input[type=checkbox] + label {
781
+ margin-left: 1.5rem;
782
+ }
783
+
784
+ .fr-checkbox-group--sm input[type=checkbox] + label::before {
785
+ width: 1rem;
786
+ height: 1rem;
787
+ margin-top: 0.25rem;
788
+ left: -1.5rem;
789
+ }
790
+
791
+ .fr-checkbox-group--error::before {
792
+ content: "";
793
+ position: absolute;
794
+ top: 0;
795
+ left: -0.75rem;
796
+ width: 2px;
797
+ height: 100%;
798
+ background-color: var(--border-plain-error);
799
+
800
+ --idle: transparent;
801
+ --hover: var(--border-plain-error-hover);
802
+ --active: var(--border-plain-error-active);
803
+ }
804
+
805
+ .fr-checkbox-group--valid::before {
806
+ content: "";
807
+ position: absolute;
808
+ top: 0;
809
+ left: -0.75rem;
810
+ width: 2px;
811
+ height: 100%;
812
+ background-color: var(--border-plain-success);
813
+
814
+ --idle: transparent;
815
+ --hover: var(--border-plain-success-hover);
816
+ --active: var(--border-plain-success-active);
817
+ }
818
+
819
+ .fr-checkbox-group .fr-message:first-child {
820
+ margin-top: 1rem;
821
+ }
822
+
823
+ .fr-checkbox-group input[type=checkbox]:checked + label::before {
824
+ background-color: var(--background-active-blue-france);
825
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-active-blue-france) 4px, var(--border-active-blue-france) 5px, transparent 6px), linear-gradient(var(--border-active-blue-france), var(--border-active-blue-france)), var(--data-uri-svg);
826
+
827
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23f5f5fe' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
828
+ }
829
+
830
+ :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:checked + label::before {
831
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23000091' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
832
+ }
833
+
834
+ .fr-checkbox-group input[type=checkbox]:disabled + label::before {
835
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--background-disabled-grey) 4px, var(--background-disabled-grey) 5px, transparent 6px), linear-gradient(var(--background-disabled-grey), var(--background-disabled-grey)), var(--data-uri-svg);
836
+ }
837
+
838
+ .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
839
+ background-color: var(--background-disabled-grey);
840
+
841
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23929292' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
842
+ }
843
+
844
+ :root[data-fr-theme=dark] .fr-checkbox-group input[type=checkbox]:disabled:checked + label::before {
845
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23666' d='M10 15.17l9.2-9.2 1.4 1.42L10 18l-6.36-6.36 1.4-1.42z'/></svg>");
846
+ }
847
+
848
+ .fr-checkbox-group--error input[type=checkbox] + label,
849
+ .fr-checkbox-group--error input[type=checkbox]:checked + label {
850
+ color: var(--text-default-error);
851
+ }
852
+
853
+ .fr-checkbox-group--error input[type=checkbox] + label::before,
854
+ .fr-checkbox-group--error input[type=checkbox]:checked + label::before {
855
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
856
+ }
857
+
858
+ .fr-checkbox-group--valid input[type=checkbox] + label,
859
+ .fr-checkbox-group--valid input[type=checkbox]:checked + label {
860
+ color: var(--text-default-success);
861
+ }
862
+
863
+ .fr-checkbox-group--valid input[type=checkbox] + label::before,
864
+ .fr-checkbox-group--valid input[type=checkbox]:checked + label::before {
865
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
866
+ }
867
+
868
+ .fr-fieldset--error .fr-checkbox-group input[type=checkbox] + label::before {
869
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-error) 4px, var(--border-plain-error) 5px, transparent 6px), linear-gradient(var(--border-plain-error), var(--border-plain-error)), var(--data-uri-svg);
870
+ }
871
+
872
+ .fr-fieldset--valid .fr-checkbox-group input[type=checkbox] + label::before {
873
+ background-image: radial-gradient(at 5px 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) 4px, transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at calc(100% - 5px) calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), radial-gradient(at 5px calc(100% - 4px), transparent 4px, var(--border-plain-success) 4px, var(--border-plain-success) 5px, transparent 6px), linear-gradient(var(--border-plain-success), var(--border-plain-success)), var(--data-uri-svg);
874
+ }
875
+
876
+ .fr-fieldset .fr-fieldset__content .fr-checkbox-group--sm label::before {
877
+ margin-top: 0.25rem;
878
+ }
879
+
880
+ .fr-fieldset .fr-fieldset__content .fr-checkbox-group input[type=checkbox] {
881
+ margin-top: 0.75rem;
882
+ }
883
+ @media (min-width: 36em) {
884
+ /*! media sm */
885
+ }
886
+ @media (min-width: 48em) {
887
+ /*! media md */
888
+ }
889
+ @media (min-width: 62em) {
890
+ /*! media lg */
891
+ }
892
+ @media (min-width: 78em) {
893
+ /*! media xl */
894
+ }
895
+ @media (-ms-high-contrast: active), (forced-colors: active) {
896
+ .fr-checkbox-group input[type=checkbox] {
897
+ opacity: 1;
898
+ }
899
+
900
+ .fr-checkbox-group input[type=checkbox]:disabled + label {
901
+ color: graytext;
902
+ }
903
+
904
+ .fr-checkbox-group input[type=checkbox] + label::before {
905
+ display: none;
906
+ }
907
+ }
908
+ :root {
909
+ --text-spacing: 0 0 1.5rem;
910
+ --title-spacing: 0 0 1.5rem;
911
+ --display-spacing: 0 0 2rem;
912
+ }
913
+
914
+ .fr-h6 {
915
+ font-weight: 700 !important;
916
+ font-size: 1.125rem !important;
917
+ line-height: 1.5rem !important;
918
+ }
919
+ @media (min-width: 48em) {
920
+ .fr-h6 {
921
+ font-size: 1.25rem !important;
922
+ line-height: 1.75rem !important;
923
+ }
924
+ }
925
+ .fr-h6 {
926
+ margin: var(--title-spacing);
927
+ }
928
+
929
+ .fr-h5 {
930
+ font-weight: 700 !important;
931
+ font-size: 1.25rem !important;
932
+ line-height: 1.75rem !important;
933
+ }
934
+ @media (min-width: 48em) {
935
+ .fr-h5 {
936
+ font-size: 1.375rem !important;
937
+ line-height: 1.75rem !important;
938
+ }
939
+ }
940
+ .fr-h5 {
941
+ margin: var(--title-spacing);
942
+ }
943
+
944
+ .fr-h4 {
945
+ font-weight: 700 !important;
946
+ font-size: 1.375rem !important;
947
+ line-height: 1.75rem !important;
948
+ }
949
+ @media (min-width: 48em) {
950
+ .fr-h4 {
951
+ font-size: 1.5rem !important;
952
+ line-height: 2rem !important;
953
+ }
954
+ }
955
+ .fr-h4 {
956
+ margin: var(--title-spacing);
957
+ }
958
+
959
+ .fr-h3 {
960
+ font-weight: 700 !important;
961
+ font-size: 1.5rem !important;
962
+ line-height: 2rem !important;
963
+ }
964
+ @media (min-width: 48em) {
965
+ .fr-h3 {
966
+ font-size: 1.75rem !important;
967
+ line-height: 2.25rem !important;
968
+ }
969
+ }
970
+ .fr-h3 {
971
+ margin: var(--title-spacing);
972
+ }
973
+
974
+ .fr-h2 {
975
+ font-weight: 700 !important;
976
+ font-size: 1.75rem !important;
977
+ line-height: 2.25rem !important;
978
+ }
979
+ @media (min-width: 48em) {
980
+ .fr-h2 {
981
+ font-size: 2rem !important;
982
+ line-height: 2.5rem !important;
983
+ }
984
+ }
985
+ .fr-h2 {
986
+ margin: var(--title-spacing);
987
+ }
988
+
989
+ .fr-h1 {
990
+ font-weight: 700 !important;
991
+ font-size: 2rem !important;
992
+ line-height: 2.5rem !important;
993
+ }
994
+ @media (min-width: 48em) {
995
+ .fr-h1 {
996
+ font-size: 2.5rem !important;
997
+ line-height: 3rem !important;
998
+ }
999
+ }
1000
+ .fr-h1 {
1001
+ margin: var(--title-spacing);
1002
+ }
1003
+
1004
+ .fr-display--xs {
1005
+ font-weight: 700 !important;
1006
+ font-size: 2.5rem !important;
1007
+ line-height: 3rem !important;
1008
+ }
1009
+ @media (min-width: 48em) {
1010
+ .fr-display--xs {
1011
+ font-size: 3rem !important;
1012
+ line-height: 3.5rem !important;
1013
+ }
1014
+ }
1015
+ .fr-display--xs {
1016
+ margin: var(--display-spacing);
1017
+ }
1018
+
1019
+ .fr-display--sm {
1020
+ font-weight: 700 !important;
1021
+ font-size: 3rem !important;
1022
+ line-height: 3.5rem !important;
1023
+ }
1024
+ @media (min-width: 48em) {
1025
+ .fr-display--sm {
1026
+ font-size: 3.5rem !important;
1027
+ line-height: 4rem !important;
1028
+ }
1029
+ }
1030
+ .fr-display--sm {
1031
+ margin: var(--display-spacing);
1032
+ }
1033
+
1034
+ .fr-display--md {
1035
+ font-weight: 700 !important;
1036
+ font-size: 3.5rem !important;
1037
+ line-height: 4rem !important;
1038
+ }
1039
+ @media (min-width: 48em) {
1040
+ .fr-display--md {
1041
+ font-size: 4rem !important;
1042
+ line-height: 4.5rem !important;
1043
+ }
1044
+ }
1045
+ .fr-display--md {
1046
+ margin: var(--display-spacing);
1047
+ }
1048
+
1049
+ .fr-display--lg {
1050
+ font-weight: 700 !important;
1051
+ font-size: 4rem !important;
1052
+ line-height: 4.5rem !important;
1053
+ }
1054
+ @media (min-width: 48em) {
1055
+ .fr-display--lg {
1056
+ font-size: 4.5rem !important;
1057
+ line-height: 5rem !important;
1058
+ }
1059
+ }
1060
+ .fr-display--lg {
1061
+ margin: var(--display-spacing);
1062
+ }
1063
+
1064
+ .fr-display--xl {
1065
+ font-weight: 700 !important;
1066
+ font-size: 4.5rem !important;
1067
+ line-height: 5rem !important;
1068
+ }
1069
+ @media (min-width: 48em) {
1070
+ .fr-display--xl {
1071
+ font-size: 5rem !important;
1072
+ line-height: 5.5rem !important;
1073
+ }
1074
+ }
1075
+ .fr-display--xl {
1076
+ margin: var(--display-spacing);
1077
+ }
1078
+
1079
+ .fr-text--alt {
1080
+ font-family: "Spectral", georgia, serif !important;
1081
+ }
1082
+
1083
+ .fr-text--xs {
1084
+ font-size: 0.75rem !important;
1085
+ line-height: 1.25rem !important;
1086
+ margin: var(--text-spacing);
1087
+ }
1088
+
1089
+ .fr-text--sm {
1090
+ font-size: 0.875rem !important;
1091
+ line-height: 1.5rem !important;
1092
+ margin: var(--text-spacing);
1093
+ }
1094
+
1095
+ .fr-text--md {
1096
+ font-size: 1rem !important;
1097
+ line-height: 1.5rem !important;
1098
+ margin: var(--text-spacing);
1099
+ }
1100
+
1101
+ .fr-text--lg {
1102
+ font-size: 1.125rem !important;
1103
+ line-height: 1.75rem !important;
1104
+ margin: var(--text-spacing);
1105
+ }
1106
+
1107
+ .fr-text--xl, .fr-text--lead {
1108
+ font-size: 1.25rem !important;
1109
+ line-height: 2rem !important;
1110
+ margin: var(--text-spacing);
1111
+ }
1112
+
1113
+ .fr-text--light {
1114
+ font-weight: 300 !important;
1115
+ }
1116
+
1117
+ .fr-text--regular {
1118
+ font-weight: 400 !important;
1119
+ }
1120
+
1121
+ .fr-text--bold {
1122
+ font-weight: 700 !important;
1123
+ }
1124
+
1125
+ .fr-text--heavy {
1126
+ font-weight: 900 !important;
1127
+ }
1128
+
1129
+ input,
1130
+ select,
1131
+ textarea {
1132
+ -webkit-appearance: none;
1133
+ -moz-appearance: none;
1134
+ appearance: none;
1135
+ font-family: "Marianne", arial, sans-serif;
1136
+ text-rendering: optimizeLegibility;
1137
+ -webkit-font-smoothing: antialiased;
1138
+ -moz-osx-font-smoothing: grayscale;
1139
+ -webkit-text-size-adjust: 100%;
1140
+ border-radius: 0;
1141
+ border: 0;
1142
+ background-color: transparent;
1143
+ margin: 0;
1144
+ }
1145
+ @media (-ms-high-contrast: active), (forced-colors: active) {
1146
+ input,
1147
+ select,
1148
+ textarea {
1149
+ border: 1px solid;
1150
+ }
1151
+ }
1152
+
1153
+ input[type=search] {
1154
+ -webkit-appearance: none;
1155
+ -moz-appearance: none;
1156
+ appearance: none;
1157
+ }
1158
+
1159
+ input[type=checkbox],
1160
+ input[type=radio],
1161
+ input[type=range] {
1162
+ -webkit-appearance: auto;
1163
+ -moz-appearance: auto;
1164
+ appearance: auto;
1165
+ }
1166
+
1167
+ input::-webkit-contacts-auto-fill-button,
1168
+ input::-webkit-credentials-auto-fill-button {
1169
+ margin-left: 1rem;
1170
+ margin-right: -1px;
1171
+ width: 1.25rem;
1172
+ height: 1.25rem;
1173
+ -webkit-mask-size: 1.25rem 1.25rem;
1174
+ }
1175
+
1176
+ input[type=range]:focus::-webkit-slider-thumb {
1177
+ outline-offset: 2px;
1178
+ outline-width: 2px;
1179
+ outline-color: #0a76f6;
1180
+ }
1181
+
1182
+ input[type=range]:focus::-moz-range-thumb {
1183
+ outline-offset: 2px;
1184
+ outline-width: 2px;
1185
+ outline-color: #0a76f6;
1186
+ }
1187
+
1188
+ input[type=range]:focus::-ms-thumb {
1189
+ outline-offset: 2px;
1190
+ outline-width: 2px;
1191
+ outline-color: #0a76f6;
1192
+ }
1193
+
1194
+ 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 {
1195
+ outline-offset: 2px;
1196
+ outline-width: 2px;
1197
+ outline-color: #0a76f6;
1198
+ }
1199
+
1200
+ input[type=range]:focus::-webkit-slider-thumb {
1201
+ outline-style: solid;
1202
+ }
1203
+
1204
+ input[type=range]:focus::-moz-range-thumb {
1205
+ outline-style: solid;
1206
+ }
1207
+
1208
+ input[type=range]:focus::-ms-thumb {
1209
+ outline-style: solid;
1210
+ }
1211
+
1212
+ 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 {
1213
+ outline-style: solid;
1214
+ }
1215
+
1216
+ input[type=range]:focus:not(:focus-visible)::-webkit-slider-thumb {
1217
+ outline-style: none;
1218
+ }
1219
+
1220
+ input[type=range]:focus:not(:focus-visible)::-moz-range-thumb {
1221
+ outline-style: none;
1222
+ }
1223
+
1224
+ input[type=range]:focus:not(:focus-visible)::-ms-thumb {
1225
+ outline-style: none;
1226
+ }
1227
+
1228
+ 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) {
1229
+ outline-style: none;
1230
+ }
1231
+
1232
+ input[type=range]:focus-visible::-webkit-slider-thumb {
1233
+ outline-style: solid;
1234
+ }
1235
+
1236
+ input[type=range]:focus-visible::-moz-range-thumb {
1237
+ outline-style: solid;
1238
+ }
1239
+
1240
+ input[type=range]:focus-visible::-ms-thumb {
1241
+ outline-style: solid;
1242
+ }
1243
+
1244
+ 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 {
1245
+ outline-style: solid;
1246
+ }
1247
+
1248
+ @media (hover: hover) and (pointer: fine) {
1249
+ :root {
1250
+ --brighten: -1;
1251
+ }
1252
+ 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 {
1253
+ background-color: var(--hover-tint);
1254
+ }
1255
+ 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 {
1256
+ background-color: var(--active-tint);
1257
+ }
1258
+ a[href]:hover, a[href]:active {
1259
+ --underline-hover-width: var(--underline-max-width);
1260
+ }
1261
+ }
1262
+ button, input[type=button], input[type=image], input[type=reset], input[type=submit] {
1263
+ --hover-tint: var(--hover);
1264
+ --active-tint: var(--active);
1265
+ }
1266
+
1267
+ a {
1268
+ --hover-tint: var(--idle);
1269
+ --active-tint: var(--active);
1270
+ }
1271
+
1272
+ 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 {
1273
+ cursor: pointer;
1274
+ }
1275
+
1276
+ input[type=range]:disabled::-webkit-slider-thumb, input[type=range]:disabled::-webkit-slider-thumb:active {
1277
+ cursor: not-allowed;
1278
+ }
1279
+
1280
+ input[type=range]:disabled::-moz-range-thumb, input[type=range]:disabled::-moz-range-thumb:active {
1281
+ cursor: not-allowed;
1282
+ }
1283
+
1284
+ input[type=range]:disabled::-ms-thumb, input[type=range]:disabled::-ms-thumb:active {
1285
+ cursor: not-allowed;
1286
+ }
1287
+
1288
+ 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] {
1289
+ cursor: not-allowed;
1290
+ }
1291
+
1292
+ input[type=range]::-webkit-slider-thumb {
1293
+ cursor: grab;
1294
+ }
1295
+
1296
+ input[type=range]::-moz-range-thumb {
1297
+ cursor: grab;
1298
+ }
1299
+
1300
+ input[type=range]::-ms-thumb {
1301
+ cursor: grab;
1302
+ }
1303
+
1304
+ input[type=range]::-webkit-slider-thumb:active {
1305
+ cursor: grabbing;
1306
+ }
1307
+
1308
+ input[type=range]::-moz-range-thumb:active {
1309
+ cursor: grabbing;
1310
+ }
1311
+
1312
+ input[type=range]::-ms-thumb:active {
1313
+ cursor: grabbing;
1314
+ }
1315
+
1316
+ /**
1317
+ * Override de l'opacité chrome sur un élément disabled
1318
+ */
1319
+ 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]) {
1320
+ opacity: 1;
1321
+ }
1322
+
1323
+ *,
1324
+ *::before,
1325
+ *::after {
1326
+ box-sizing: inherit;
1327
+ }
1328
+
1329
+ :root {
1330
+ box-sizing: border-box;
1331
+ }
1332
+
1333
+ input,
1334
+ select,
1335
+ textarea,
1336
+ label,
1337
+ button,
1338
+ a {
1339
+ -webkit-tap-highlight-color: transparent;
1340
+ }
1341
+
1342
+ body {
1343
+ background-color: var(--background-default-grey);
1344
+ --idle: transparent;
1345
+ --hover: var(--background-default-grey-hover);
1346
+ --active: var(--background-default-grey-active);
1347
+ color: var(--text-default-grey);
1348
+ }
1349
+
1350
+ 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]) {
1351
+ color: var(--text-disabled-grey);
1352
+ }
1353
+
1354
+ .fr-artwork-decorative {
1355
+ fill: var(--artwork-decorative-blue-france);
1356
+ }
1357
+ .fr-artwork-minor {
1358
+ fill: var(--artwork-minor-red-marianne);
1359
+ }
1360
+ .fr-artwork-major {
1361
+ fill: var(--artwork-major-blue-france);
1362
+ }
1363
+ .fr-artwork-background {
1364
+ fill: var(--artwork-background-grey);
1365
+ }
1366
+ .fr-artwork-motif {
1367
+ fill: var(--artwork-motif-grey);
1368
+ }
1369
+ .fr-artwork--green-tilleul-verveine .fr-artwork-minor {
1370
+ fill: var(--artwork-minor-green-tilleul-verveine);
1371
+ }
1372
+
1373
+ .fr-artwork--green-bourgeon .fr-artwork-minor {
1374
+ fill: var(--artwork-minor-green-bourgeon);
1375
+ }
1376
+
1377
+ .fr-artwork--green-emeraude .fr-artwork-minor {
1378
+ fill: var(--artwork-minor-green-emeraude);
1379
+ }
1380
+
1381
+ .fr-artwork--green-menthe .fr-artwork-minor {
1382
+ fill: var(--artwork-minor-green-menthe);
1383
+ }
1384
+
1385
+ .fr-artwork--green-archipel .fr-artwork-minor {
1386
+ fill: var(--artwork-minor-green-archipel);
1387
+ }
1388
+
1389
+ .fr-artwork--blue-ecume .fr-artwork-minor {
1390
+ fill: var(--artwork-minor-blue-ecume);
1391
+ }
1392
+
1393
+ .fr-artwork--blue-cumulus .fr-artwork-minor {
1394
+ fill: var(--artwork-minor-blue-cumulus);
1395
+ }
1396
+
1397
+ .fr-artwork--purple-glycine .fr-artwork-minor {
1398
+ fill: var(--artwork-minor-purple-glycine);
1399
+ }
1400
+
1401
+ .fr-artwork--pink-macaron .fr-artwork-minor {
1402
+ fill: var(--artwork-minor-pink-macaron);
1403
+ }
1404
+
1405
+ .fr-artwork--pink-tuile .fr-artwork-minor {
1406
+ fill: var(--artwork-minor-pink-tuile);
1407
+ }
1408
+
1409
+ .fr-artwork--yellow-tournesol .fr-artwork-minor {
1410
+ fill: var(--artwork-minor-yellow-tournesol);
1411
+ }
1412
+
1413
+ .fr-artwork--yellow-moutarde .fr-artwork-minor {
1414
+ fill: var(--artwork-minor-yellow-moutarde);
1415
+ }
1416
+
1417
+ .fr-artwork--orange-terre-battue .fr-artwork-minor {
1418
+ fill: var(--artwork-minor-orange-terre-battue);
1419
+ }
1420
+
1421
+ .fr-artwork--brown-cafe-creme .fr-artwork-minor {
1422
+ fill: var(--artwork-minor-brown-cafe-creme);
1423
+ }
1424
+
1425
+ .fr-artwork--brown-caramel .fr-artwork-minor {
1426
+ fill: var(--artwork-minor-brown-caramel);
1427
+ }
1428
+
1429
+ .fr-artwork--brown-opera .fr-artwork-minor {
1430
+ fill: var(--artwork-minor-brown-opera);
1431
+ }
1432
+
1433
+ .fr-artwork--beige-gris-galet .fr-artwork-minor {
1434
+ fill: var(--artwork-minor-beige-gris-galet);
1435
+ }
1436
+
1437
+ [disabled] .fr-artwork * {
1438
+ fill: var(--text-disabled-grey);
1439
+ }
1440
+
1441
+ .fr-h6, .fr-h5, .fr-h4, .fr-h3, .fr-h2, .fr-h1, .fr-display-xs, .fr-display-sm, .fr-display-md, .fr-display-lg, .fr-display-xl {
1442
+ color: var(--text-title-grey);
1443
+ }
1444
+
1445
+ h6, h5, h4, h3, h2, h1 {
1446
+ color: var(--text-title-grey);
1447
+ }
1448
+
1449
+ hr {
1450
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1451
+ }
1452
+
1453
+ .fr-hr-or::before, .fr-hr-or::after {
1454
+ background-color: var(--border-default-grey);
1455
+ --idle: transparent;
1456
+ --hover: var(--border-default-grey-hover);
1457
+ --active: var(--border-default-grey-active);
1458
+ }
1459
+
1460
+ .fr-hr {
1461
+ background-image: linear-gradient(0deg, var(--border-default-grey), var(--border-default-grey));
1462
+ }
1463
+
1464
+ :host {
1465
+ display: block;
1466
+ text-rendering: optimizeLegibility;
1467
+ -webkit-font-smoothing: antialiased;
1468
+ -moz-osx-font-smoothing: grayscale;
1469
+ -webkit-text-size-adjust: 100%;
1470
+ font-size: 1rem;
1471
+ line-height: 1.5rem;
1472
+ background-color: var(--background-default-grey);
1473
+ --idle: transparent;
1474
+ --hover: var(--background-default-grey-hover);
1475
+ --active: var(--background-default-grey-active);
1476
+ color: var(--text-default-grey);
1477
+ background-color: transparent;
1478
+ }
1479
+
1480
+ .fr-fieldset {
1481
+ box-sizing: border-box;
1482
+ }
1483
+
1484
+ .fr-checkbox-group {
1485
+ box-sizing: border-box;
1486
+ }
1487
+ .fr-checkbox-group input[type=checkbox]:checked + label::before, .fr-checkbox-group input[type=checkbox]:disabled + label::before, .fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
1488
+ --data-uri-svg: none;
1489
+ }
1490
+ .fr-checkbox-group input[type=checkbox]:checked + label::after, .fr-checkbox-group input[type=checkbox]:disabled + label::after, .fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
1491
+ position: absolute;
1492
+ z-index: 1;
1493
+ }
1494
+ .fr-checkbox-group input[type=checkbox]:checked:not(:indeterminate) + label::after {
1495
+ content: "";
1496
+ display: inline-block;
1497
+ width: var(--checkmark-size, 24px);
1498
+ height: var(--checkmark-size, 24px);
1499
+ background-color: var(--icon-check-color, var(--text-inverted-blue-france));
1500
+ clip-path: polygon(41.7% 63.2%, 80% 24.9%, 85.8% 30.8%, 41.7% 75%, 15.2% 48.5%, 21% 42.6%);
1501
+ left: var(--checkbox-gap, -2rem);
1502
+ top: calc(var(--checkmark-size, 24px) * var(--checkmark-scale, 0.7) / 2);
1503
+ transform: translateY(-50%);
1504
+ scale: var(--checkmark-scale, 0.7);
1505
+ }
1506
+ .fr-checkbox-group input[type=checkbox]:disabled + label::after {
1507
+ --icon-check-color: currentColor;
1508
+ }
1509
+ .fr-checkbox-group input[type=checkbox]:indeterminate + label::before {
1510
+ background-color: var(--background-active-blue-france);
1511
+ }
1512
+ .fr-checkbox-group input[type=checkbox]:indeterminate + label::after {
1513
+ content: "";
1514
+ display: inline-block;
1515
+ background-color: var(--text-inverted-blue-france);
1516
+ width: calc(var(--checkmark-size, 24px) * 0.38);
1517
+ height: var(--dash-height, 2px);
1518
+ top: calc((var(--checkmark-size, 24px) - var(--dash-height, 2px)) / 2);
1519
+ left: calc(var(--checkbox-gap, -2rem) + var(--checkmark-size, 24px) / 2);
1520
+ transform: translateX(-50%);
1521
+ }
1522
+ .fr-checkbox-group .fr-label::before {
1523
+ --data-uri-svg: none;
1524
+ }
1525
+ .fr-checkbox-group--sm {
1526
+ --checkbox-gap: var(--checkbox-gap-sm, -1.5rem);
1527
+ --checkmark-size: 1rem;
1528
+ --checkmark-scale: 1;
1529
+ }
1530
+ .fr-checkbox-group--sm label::after {
1531
+ margin-top: 0.25rem;
1532
+ }</style>