@lab-anssi/ui-kit 1.61.2 → 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,1270 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "dsfr-input",
4
+ props: {
5
+ id: { attribute: "id", type: "String" },
6
+ label: { attribute: "label", type: "String" },
7
+ hideLabel: { attribute: "hide-label", type: "Boolean" },
8
+ hint: { attribute: "hint", type: "String" },
9
+ type: { attribute: "type", type: "String" },
10
+ value: { attribute: "value", type: "String", reflect: true },
11
+ placeholder: { attribute: "placeholder", type: "String" },
12
+ name: { attribute: "name", type: "String", reflect: true },
13
+ autocomplete: { attribute: "autocomplete", type: "String" },
14
+ disabled: { attribute: "disabled", type: "Boolean", reflect: true },
15
+ status: { attribute: "status", type: "String" },
16
+ errorMessage: { attribute: "error-message", type: "String" },
17
+ validMessage: { attribute: "valid-message", type: "String" },
18
+ infoMessage: { attribute: "info-message", type: "String" },
19
+ form: { attribute: "form", type: "String", reflect: true },
20
+ max: { attribute: "max", type: "String" },
21
+ maxlength: { attribute: "maxlength", type: "Number" },
22
+ min: { attribute: "min", type: "String" },
23
+ minlength: { attribute: "minlength", type: "Number" },
24
+ pattern: { attribute: "pattern", type: "String" },
25
+ readonly: { attribute: "readonly", type: "Boolean" },
26
+ required: { attribute: "required", type: "Boolean" },
27
+ step: { attribute: "step", type: "Number" },
28
+ icon: { attribute: "icon", type: "String" },
29
+ addon: { attribute: "addon", type: "Boolean" },
30
+ action: { attribute: "action", type: "Boolean" },
31
+ labelSize: { attribute: "label-size", type: "String" },
32
+ labelWeight: { attribute: "label-weight", type: "String" },
33
+ },
34
+ extend: (CustomElementClass) => {
35
+ return class extends CustomElementClass {
36
+ static formAssociated = true;
37
+
38
+ constructor() {
39
+ super();
40
+ this.internals = this.attachInternals();
41
+ }
42
+
43
+ connectedCallback() {
44
+ super.connectedCallback();
45
+
46
+ const iconsStyleSheet = getIconsStyleSheet();
47
+ const shadow = this.shadowRoot;
48
+
49
+ if (shadow && !shadow.adoptedStyleSheets.includes(iconsStyleSheet)) {
50
+ shadow.adoptedStyleSheets = [iconsStyleSheet, ...shadow.adoptedStyleSheets];
51
+ }
52
+ }
53
+ };
54
+ },
55
+ }}
56
+ />
57
+
58
+ <script lang="ts">import { getIconsStyleSheet, setIconClass, setThemeable } from "../utilitaires";
59
+ import { createFormValidation } from "../utilitaires/createFormValidation.svelte";
60
+ import DsfrLabel from "./DsfrLabel.svelte";
61
+ import DsfrMessagesGroup from "./DsfrMessagesGroup.svelte";
62
+ let { id, label, hideLabel = false, hint, type = "text", icon, addon, action, value = $bindable(), placeholder, name, autocomplete, disabled, status = "default", errorMessage, validMessage, infoMessage, form, max, maxlength, min, minlength, pattern, readonly, required, step, internals, onvaluechanged, labelSize, labelWeight } = $props();
63
+ let hostElement = $host();
64
+ setThemeable(hostElement);
65
+ let formControlElement;
66
+ // Création de l'état de validation partagé
67
+ const formValidation = createFormValidation();
68
+ // Détermine si l'utilisateur a pris la main sur le status
69
+ const isUserControlled = $derived(status !== "default");
70
+ // Status et message calculés à afficher
71
+ const computedStatus = $derived(isUserControlled ? status : formValidation.localStatus);
72
+ const computedErrorMessage = $derived(isUserControlled ? errorMessage : formValidation.localErrorMessage);
73
+ const disabledClass = $derived(disabled && "fr-input-group--disabled");
74
+ const iconClass = $derived(icon ? setIconClass(icon) : "");
75
+ const hasWrap = $derived(!!icon || !!addon || !!action);
76
+ const wrapClasses = $derived([
77
+ "fr-input-wrap",
78
+ iconClass,
79
+ addon && "fr-input-wrap--addon",
80
+ action && "fr-input-wrap--action"
81
+ ]);
82
+ const statusClass = $derived(computedStatus !== "info" && computedStatus !== "default" && `fr-input-group--${computedStatus}`);
83
+ const isTypeDateOrNumber = $derived(type === "number" || type === "date");
84
+ const isLabelEmpty = $derived(label === "");
85
+ /**
86
+ * Gère l'événement input de l'input.
87
+ * Met à jour la valeur du composant et déclenche l'événement 'valuechanged'.
88
+ *
89
+ * @param {Event} event - L'événement input déclenché
90
+ */
91
+ function handleInput(event) {
92
+ const target = event.target;
93
+ onvaluechanged?.(target.value);
94
+ hostElement?.dispatchEvent(new CustomEvent("valuechanged", {
95
+ detail: target.value,
96
+ bubbles: true
97
+ }));
98
+ }
99
+ /**
100
+ * Définit un message de validité personnalisé pour l'input.
101
+ * Met à jour le message de validité personnalisé et déclenche la vérification de validité.
102
+ *
103
+ * @param {string} message - Le message de validité personnalisé à définir
104
+ */
105
+ export function setCustomValidity(message) {
106
+ formValidation.setCustomValidity(message);
107
+ }
108
+ // Configure la validation avec les références nécessaires
109
+ $effect(() => {
110
+ formValidation.setup(internals, formControlElement, hostElement, () => {
111
+ value = "";
112
+ });
113
+ });
114
+ // Synchronise la valeur du formulaire et met à jour la validité
115
+ $effect(() => {
116
+ formValidation.syncFormValue(value, isUserControlled);
117
+ });
118
+ // Quand l'utilisateur prend la main sur le status, on efface les erreurs de validation natives
119
+ $effect(() => {
120
+ if (isUserControlled) {
121
+ internals?.setValidity({});
122
+ }
123
+ });
124
+ // Attache les event listeners pour la validation
125
+ $effect(() => {
126
+ return formValidation.attachListeners();
127
+ });
128
+ </script>
129
+
130
+ <div class={["fr-input-group", disabledClass, statusClass]}>
131
+ <DsfrLabel
132
+ for={id}
133
+ {label}
134
+ {hint}
135
+ context="field"
136
+ {status}
137
+ {disabled}
138
+ hidden={hideLabel || isLabelEmpty}
139
+ {labelSize}
140
+ {labelWeight}
141
+ />
142
+ {#snippet inputField()}
143
+ <input
144
+ bind:this={formControlElement}
145
+ {type}
146
+ {id}
147
+ class="fr-input"
148
+ {name}
149
+ bind:value
150
+ {placeholder}
151
+ {disabled}
152
+ aria-describedby={computedStatus !== "default" ? `${id}-messages` : undefined}
153
+ autocomplete={autocomplete as AutoFill}
154
+ oninput={handleInput}
155
+ onblur={formValidation.handleBlur}
156
+ oninvalid={formValidation.handleInvalid}
157
+ {form}
158
+ {readonly}
159
+ {required}
160
+ max={isTypeDateOrNumber ? max : undefined}
161
+ maxlength={!isTypeDateOrNumber ? maxlength : undefined}
162
+ min={isTypeDateOrNumber ? min : undefined}
163
+ minlength={!isTypeDateOrNumber ? minlength : undefined}
164
+ pattern={!isTypeDateOrNumber ? pattern : undefined}
165
+ step={isTypeDateOrNumber ? step : undefined}
166
+ />
167
+ {/snippet}
168
+
169
+ {#if hasWrap}
170
+ <div class={wrapClasses}>
171
+ {@render inputField()}
172
+ {#if addon || action}
173
+ <slot name="button"></slot>
174
+ {/if}
175
+ </div>
176
+ {:else}
177
+ {@render inputField()}
178
+ {/if}
179
+
180
+ <slot name="messages-group">
181
+ {#if computedStatus !== "default"}
182
+ <DsfrMessagesGroup
183
+ {id}
184
+ status={computedStatus}
185
+ errorMessage={computedErrorMessage}
186
+ {validMessage}
187
+ {infoMessage}
188
+ />
189
+ {/if}
190
+ </slot>
191
+ </div>
192
+
193
+ <style>@charset "UTF-8"; /*!
194
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
195
+ */ /* ¯¯¯¯¯¯¯¯¯ *\
196
+ FORM
197
+ \* ˍˍˍˍˍˍˍˍˍ */
198
+ .fr-label {
199
+ display: block;
200
+ font-size: 1rem;
201
+ line-height: 1.5rem;
202
+ color: var(--text-label-grey);
203
+ }
204
+
205
+ .fr-label + .fr-input,
206
+ .fr-label + .fr-input-wrap,
207
+ .fr-label + .fr-select {
208
+ margin-top: 0.5rem;
209
+ }
210
+
211
+ .fr-hint-text {
212
+ display: block;
213
+ font-size: 0.75rem;
214
+ line-height: 1.25rem;
215
+
216
+ --text-spacing: 0 0 1rem;
217
+ }
218
+
219
+ .fr-hint-text + .fr-hint-text {
220
+ margin-top: 0.25rem;
221
+ }
222
+
223
+ .fr-fieldset {
224
+ position: relative;
225
+ margin: 0 -0.75rem 1rem;
226
+ padding: 0 0.25rem;
227
+ display: flex;
228
+ flex-direction: row;
229
+ align-items: last baseline;
230
+ flex-wrap: wrap;
231
+ border: 0;
232
+ }
233
+
234
+ .fr-fieldset__legend {
235
+ padding-bottom: 1rem;
236
+ padding-left: 0.75rem;
237
+ padding-right: 0.75rem;
238
+ margin-left: -0.25rem;
239
+ margin-right: -0.25rem;
240
+ font-size: 1rem;
241
+ line-height: 1.5rem;
242
+ font-weight: 700;
243
+ width: 100%;
244
+ color: var(--text-label-grey);
245
+ }
246
+
247
+ .fr-fieldset__legend--regular {
248
+ font-weight: 400;
249
+ }
250
+
251
+ .fr-fieldset__legend .fr-hint-text {
252
+ margin-top: 0.5rem;
253
+ font-weight: 400;
254
+ }
255
+
256
+ .fr-fieldset--valid,
257
+ .fr-fieldset--error,
258
+ .fr-fieldset--info {
259
+ background-repeat: no-repeat;
260
+ background-position: 0 -2.25rem;
261
+ background-size: 2px calc(100% + 1.25rem);
262
+ }
263
+
264
+ .fr-fieldset--valid .fr-fieldset__legend,
265
+ .fr-fieldset--error .fr-fieldset__legend,
266
+ .fr-fieldset--info .fr-fieldset__legend {
267
+ background-repeat: no-repeat;
268
+ background-position: 0 0;
269
+ background-size: 2px 100%;
270
+ }
271
+
272
+ .fr-fieldset__element {
273
+ flex: 1 1 100%;
274
+ max-width: 100%;
275
+ padding-left: 0.5rem;
276
+ padding-right: 0.5rem;
277
+ margin-bottom: 1rem;
278
+ }
279
+
280
+ .fr-fieldset__element--inline {
281
+ flex: 0 0 auto;
282
+ }
283
+
284
+ .fr-fieldset__element--inline-grow,
285
+ .fr-fieldset__element--inline\@md.fr-fieldset__element--inline-grow {
286
+ flex-grow: 1;
287
+ }
288
+
289
+ .fr-fieldset__element.fr-fieldset__element--year {
290
+ flex: 0 0 8rem;
291
+ }
292
+
293
+ .fr-fieldset__element--year:not(.fr-fieldset__element--inline) {
294
+ margin-right: calc(100% - 8rem);
295
+ }
296
+
297
+ .fr-fieldset__element.fr-fieldset__element--postal {
298
+ flex: 0 0 16rem;
299
+ }
300
+
301
+ .fr-fieldset__element--postal:not(.fr-fieldset__element--inline) {
302
+ margin-right: calc(100% - 16rem);
303
+ }
304
+
305
+ .fr-fieldset__element.fr-fieldset__element--number {
306
+ flex: 0 0 6rem;
307
+ }
308
+
309
+ .fr-fieldset__element--number:not(.fr-fieldset__element--inline) {
310
+ margin-right: calc(100% - 6rem);
311
+ }
312
+
313
+ .fr-fieldset__legend > h1:last-child::after,
314
+ .fr-fieldset__legend > h2:last-child::after,
315
+ .fr-fieldset__legend > h3:last-child::after,
316
+ .fr-fieldset__legend > h4:last-child::after,
317
+ .fr-fieldset__legend > h5:last-child::after,
318
+ .fr-fieldset__legend > h6:last-child::after,
319
+ .fr-fieldset__legend > p:last-child::after,
320
+ .fr-fieldset__legend > .fr-fieldset:last-child::after,
321
+ .fr-fieldset__element > h1:last-child::after,
322
+ .fr-fieldset__element > h2:last-child::after,
323
+ .fr-fieldset__element > h3:last-child::after,
324
+ .fr-fieldset__element > h4:last-child::after,
325
+ .fr-fieldset__element > h5:last-child::after,
326
+ .fr-fieldset__element > h6:last-child::after,
327
+ .fr-fieldset__element > p:last-child::after,
328
+ .fr-fieldset__element > .fr-fieldset:last-child::after {
329
+ content: "";
330
+ display: block;
331
+ margin-bottom: -1rem;
332
+ }
333
+
334
+ .fr-fieldset > .fr-messages-group {
335
+ flex: 1 1 100%;
336
+ padding-left: 0.5rem;
337
+ padding-right: 0.5rem;
338
+ }
339
+
340
+ .fr-fieldset > .fr-messages-group > .fr-message:last-child {
341
+ margin-bottom: 1rem;
342
+ }
343
+
344
+ .fr-message {
345
+ --comma: ", ";
346
+ --content: var(--comma);
347
+ display: flex;
348
+ flex-direction: row;
349
+ align-items: flex-start;
350
+ font-size: 0.75rem;
351
+ line-height: 1.25rem;
352
+ margin: 0 0 0.25rem 0;
353
+ }
354
+
355
+ .fr-message::after {
356
+ content: var(--content);
357
+ position: absolute;
358
+ width: 1px;
359
+ height: 1px;
360
+ padding: 0;
361
+ margin: -1px;
362
+ overflow: hidden;
363
+ clip: rect(0, 0, 0, 0);
364
+ white-space: nowrap; /* added line */
365
+ border: 0;
366
+ display: block;
367
+ }
368
+
369
+ .fr-message:last-child {
370
+ --comma: ". ";
371
+ margin-bottom: 0;
372
+ }
373
+
374
+ .fr-message--error::before,
375
+ .fr-message--valid::before,
376
+ .fr-message--warning::before,
377
+ .fr-message--info::before {
378
+ flex: 0 0 auto;
379
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
380
+ background-color: currentColor;
381
+ width: var(--icon-size);
382
+ height: var(--icon-size);
383
+ -webkit-mask-size: 100% 100%;
384
+ mask-size: 100% 100%;
385
+ --icon-size: 1rem;
386
+ content: "";
387
+ display: inline-block;
388
+ margin-right: 0.25rem;
389
+ margin-top: 0.125rem;
390
+ }
391
+
392
+ .fr-message--error::before {
393
+ -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");
394
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
395
+ }
396
+
397
+ .fr-message--valid::before {
398
+ -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");
399
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
400
+ }
401
+
402
+ .fr-message--info::before {
403
+ -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");
404
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
405
+ }
406
+
407
+ .fr-message--warning::before {
408
+ -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");
409
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--warning-fill.svg");
410
+ }
411
+
412
+ .fr-select-group--valid label,
413
+ .fr-input-group--valid label,
414
+ .fr-range-group--valid label,
415
+ .fr-upload-group--valid label {
416
+ color: var(--text-default-success);
417
+ }
418
+
419
+ .fr-select-group--error label,
420
+ .fr-input-group--error label,
421
+ .fr-range-group--error label,
422
+ .fr-upload-group--error label {
423
+ color: var(--text-default-error);
424
+ }
425
+
426
+ .fr-select-group--info label,
427
+ .fr-input-group--info label,
428
+ .fr-range-group--info label,
429
+ .fr-upload-group--info label {
430
+ color: var(--text-default-info);
431
+ }
432
+
433
+ .fr-select-group--disabled label,
434
+ .fr-select-group--disabled .fr-hint-text,
435
+ .fr-input-group--disabled label,
436
+ .fr-input-group--disabled .fr-hint-text,
437
+ .fr-range-group--disabled label,
438
+ .fr-range-group--disabled .fr-hint-text,
439
+ .fr-upload-group--disabled label,
440
+ .fr-upload-group--disabled .fr-hint-text {
441
+ color: var(--text-disabled-grey);
442
+ }
443
+
444
+ .fr-label--error {
445
+ color: var(--text-default-error);
446
+ }
447
+
448
+ .fr-label--success {
449
+ color: var(--text-default-success);
450
+ }
451
+
452
+ .fr-label--info {
453
+ color: var(--text-default-info);
454
+ }
455
+
456
+ .fr-label--disabled,
457
+ .fr-label--disabled .fr-hint-text {
458
+ color: var(--text-disabled-grey);
459
+ }
460
+
461
+ .fr-hint-text,
462
+ .fr-message {
463
+ color: var(--text-mention-grey);
464
+ }
465
+
466
+ .fr-message--error {
467
+ color: var(--text-default-error);
468
+ }
469
+
470
+ .fr-message--valid {
471
+ color: var(--text-default-success);
472
+ }
473
+
474
+ .fr-message--info {
475
+ color: var(--text-default-info);
476
+ }
477
+
478
+ .fr-message--warning {
479
+ color: var(--text-default-warning);
480
+ }
481
+
482
+ .fr-fieldset:disabled .fr-label,
483
+ .fr-fieldset:disabled .fr-hint-text,
484
+ .fr-fieldset:disabled .fr-fieldset__legend {
485
+ color: var(--text-disabled-grey);
486
+ }
487
+
488
+ .fr-fieldset input:disabled + label,
489
+ .fr-fieldset input:disabled + label .fr-hint-text,
490
+ .fr-fieldset input:disabled + label + .fr-hint-text {
491
+ color: var(--text-disabled-grey);
492
+ }
493
+
494
+ .fr-fieldset--error,
495
+ .fr-fieldset--error .fr-fieldset__legend {
496
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
497
+ }
498
+
499
+ .fr-fieldset--error .fr-fieldset__legend,
500
+ .fr-fieldset--error .fr-label {
501
+ color: var(--text-default-error);
502
+ }
503
+
504
+ .fr-fieldset--valid,
505
+ .fr-fieldset--valid .fr-fieldset__legend {
506
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
507
+ }
508
+
509
+ .fr-fieldset--valid .fr-fieldset__legend,
510
+ .fr-fieldset--valid .fr-label {
511
+ color: var(--text-default-success);
512
+ }
513
+
514
+ .fr-fieldset--info,
515
+ .fr-fieldset--info .fr-fieldset__legend {
516
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
517
+ }
518
+
519
+ .fr-fieldset--info .fr-fieldset__legend,
520
+ .fr-fieldset--info .fr-label {
521
+ color: var(--text-default-info);
522
+ }
523
+
524
+ .fr-select-group:not(:last-child),
525
+ .fr-input-group:not(:last-child) {
526
+ margin-bottom: 1.5rem;
527
+ }
528
+
529
+ .fr-select-group .fr-label .fr-hint-text,
530
+ .fr-input-group .fr-label .fr-hint-text {
531
+ margin-top: 0.25rem;
532
+ }
533
+
534
+ .fr-fieldset--inline .fr-fieldset__content {
535
+ display: flex;
536
+ align-items: baseline;
537
+ justify-content: flex-start;
538
+ flex-wrap: wrap;
539
+ margin: -0.75rem 0.5rem 0 0.5rem;
540
+ }
541
+
542
+ .fr-fieldset--inline .fr-checkbox-group {
543
+ display: inline-flex;
544
+ margin-bottom: 0;
545
+ }
546
+
547
+ .fr-fieldset--inline .fr-checkbox-group:first-child {
548
+ margin-top: 0;
549
+ }
550
+
551
+ .fr-fieldset--inline .fr-checkbox-group:not(:last-child) {
552
+ margin-right: 1.25rem;
553
+ }
554
+
555
+ .fr-fieldset--inline .fr-checkbox-group:last-child {
556
+ margin-bottom: 0;
557
+ }
558
+
559
+ .fr-fieldset--inline .fr-radio-group {
560
+ display: inline-flex;
561
+ }
562
+
563
+ .fr-fieldset--inline .fr-radio-group:not(:last-child) {
564
+ margin-right: 1.75rem;
565
+ }
566
+
567
+ .fr-fieldset--inline .fr-radio-group:first-child {
568
+ margin-top: 0;
569
+ }
570
+
571
+ .fr-fieldset--inline .fr-radio-group:last-child {
572
+ margin-bottom: 0;
573
+ }
574
+
575
+ .fr-fieldset__content {
576
+ position: relative;
577
+ margin: 0 0.5rem;
578
+ width: 100%;
579
+ }
580
+
581
+ .fr-fieldset__content .fr-radio-group:first-child,
582
+ .fr-fieldset__content .fr-checkbox-group:first-child {
583
+ margin-top: -0.75rem;
584
+ }
585
+
586
+ .fr-fieldset__content .fr-radio-group label,
587
+ .fr-fieldset__content .fr-checkbox-group label {
588
+ padding: 0.75rem 0;
589
+ }
590
+
591
+ .fr-fieldset__content .fr-radio-group:not(.fr-radio-rich) input[type=radio] + label::before,
592
+ .fr-fieldset__content .fr-checkbox-group input[type=checkbox] + label::before {
593
+ top: 0.75rem;
594
+ }
595
+
596
+ .fr-fieldset__content + .fr-error-text,
597
+ .fr-fieldset__content + .fr-valid-text,
598
+ .fr-fieldset__content + .fr-info-text {
599
+ margin-top: 0;
600
+ margin-left: 0.5rem;
601
+ margin-bottom: 1rem;
602
+ }
603
+
604
+ .fr-error-text,
605
+ .fr-valid-text,
606
+ .fr-info-text {
607
+ display: flex;
608
+ flex-direction: row;
609
+ align-items: center;
610
+ font-size: 0.75rem;
611
+ line-height: 1.25rem;
612
+ margin-top: 1rem;
613
+ margin-bottom: 0;
614
+ }
615
+
616
+ .fr-error-text::before,
617
+ .fr-valid-text::before,
618
+ .fr-info-text::before {
619
+ flex: 0 0 auto;
620
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
621
+ background-color: currentColor;
622
+ width: var(--icon-size);
623
+ height: var(--icon-size);
624
+ -webkit-mask-size: 100% 100%;
625
+ mask-size: 100% 100%;
626
+ --icon-size: 1rem;
627
+ content: "";
628
+ display: inline-block;
629
+ margin-right: 0.25rem;
630
+ }
631
+
632
+ .fr-error-text + .fr-error-text,
633
+ .fr-error-text + .fr-valid-text,
634
+ .fr-error-text + .fr-info-text,
635
+ .fr-valid-text + .fr-error-text,
636
+ .fr-valid-text + .fr-valid-text,
637
+ .fr-valid-text + .fr-info-text,
638
+ .fr-info-text + .fr-error-text,
639
+ .fr-info-text + .fr-valid-text,
640
+ .fr-info-text + .fr-info-text {
641
+ margin-top: 0.25rem;
642
+ }
643
+
644
+ .fr-error-text::before {
645
+ -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");
646
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--error-fill.svg");
647
+ }
648
+
649
+ .fr-valid-text::before {
650
+ -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");
651
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--success-fill.svg");
652
+ }
653
+
654
+ .fr-info-text::before {
655
+ -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");
656
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/fr--info-fill.svg");
657
+ }
658
+
659
+ .fr-error-text {
660
+ color: var(--text-default-error);
661
+ }
662
+
663
+ .fr-valid-text {
664
+ color: var(--text-default-success);
665
+ }
666
+
667
+ .fr-info-text {
668
+ color: var(--text-default-info);
669
+ }
670
+
671
+ .fr-fieldset--valid .fr-fieldset__content::before {
672
+ box-shadow: inset 2px 0 0 0 var(--border-plain-success);
673
+ }
674
+
675
+ .fr-fieldset--error .fr-fieldset__content::before {
676
+ box-shadow: inset 2px 0 0 0 var(--border-plain-error);
677
+ }
678
+
679
+ .fr-fieldset--info .fr-fieldset__content::before {
680
+ box-shadow: inset 2px 0 0 0 var(--border-plain-info);
681
+ }
682
+ @media (min-width: 36em) {
683
+ /*! media sm */
684
+ }
685
+ @media (min-width: 48em) {
686
+ /*! media md */
687
+ .fr-fieldset__element--inline\@md {
688
+ flex: 0 0 auto;
689
+ }
690
+
691
+ .fr-fieldset__element--year.fr-fieldset__element--inline\@md {
692
+ margin-right: 0;
693
+ }
694
+
695
+ .fr-fieldset__element--postal.fr-fieldset__element--inline\@md {
696
+ margin-right: 0;
697
+ }
698
+
699
+ .fr-fieldset__element--number.fr-fieldset__element--inline\@md {
700
+ margin-right: 0;
701
+ }
702
+ }
703
+ @media (min-width: 62em) {
704
+ /*! media lg */
705
+ }
706
+ @media (min-width: 78em) {
707
+ /*! media xl */
708
+ }
709
+ @media (-ms-high-contrast: active), (forced-colors: active) {
710
+ .fr-fieldset:disabled .fr-label,
711
+ .fr-fieldset:disabled .fr-hint-text,
712
+ .fr-fieldset:disabled .fr-fieldset__legend {
713
+ color: graytext;
714
+ }
715
+
716
+ .fr-fieldset input:disabled + label,
717
+ .fr-fieldset input:disabled + label .fr-hint-text,
718
+ .fr-fieldset input:disabled + label + .fr-hint-text {
719
+ color: graytext;
720
+ }
721
+
722
+ .fr-message--error::before,
723
+ .fr-message--error::after,
724
+ .fr-message--valid::before,
725
+ .fr-message--valid::after,
726
+ .fr-message--warning::before,
727
+ .fr-message--warning::after,
728
+ .fr-message--info::before,
729
+ .fr-message--info::after {
730
+ forced-color-adjust: none;
731
+ background-color: canvastext;
732
+ }
733
+
734
+ .fr-error-text::before,
735
+ .fr-valid-text::before,
736
+ .fr-info-text::before {
737
+ forced-color-adjust: none;
738
+ background-color: canvastext;
739
+ }
740
+ }
741
+ /*!
742
+ * DSFR v1.14.4 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
743
+ */
744
+ /* ¯¯¯¯¯¯¯¯¯ *\
745
+ INPUT
746
+ \* ˍˍˍˍˍˍˍˍˍ */
747
+ .fr-input {
748
+ display: block;
749
+ width: 100%;
750
+ border-radius: 0.25rem 0.25rem 0 0;
751
+ font-size: 1rem;
752
+ line-height: 1.5rem;
753
+ padding: 0.5rem 1rem;
754
+ color: var(--text-default-grey);
755
+ background-color: var(--background-contrast-grey);
756
+
757
+ --idle: transparent;
758
+ --hover: var(--background-contrast-grey-hover);
759
+ --active: var(--background-contrast-grey-active);
760
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey);
761
+ }
762
+
763
+ .fr-input:not(textarea) {
764
+ max-height: 2.5rem;
765
+ }
766
+
767
+ .fr-input::placeholder {
768
+ opacity: 1;
769
+ font-style: italic;
770
+ color: var(--text-mention-grey);
771
+ }
772
+
773
+ .fr-input::-webkit-contacts-auto-fill-button {
774
+ cursor: pointer;
775
+ background-color: var(--text-label-grey);
776
+
777
+ --idle: transparent;
778
+ --hover: var(--text-label-grey-hover);
779
+ --active: var(--text-label-grey-active);
780
+ }
781
+
782
+ .fr-input[type=date] {
783
+ position: relative;
784
+ min-height: 2.5rem;
785
+ }
786
+
787
+ .fr-input[type=date]::after {
788
+ content: "";
789
+ display: block;
790
+ position: absolute;
791
+ top: 0.75rem;
792
+ right: 1rem;
793
+ width: 1rem;
794
+ height: 1rem;
795
+ pointer-events: none;
796
+ }
797
+ @supports selector(::-webkit-calendar-picker-indicator) {
798
+ .fr-input[type=date] {
799
+ background-repeat: no-repeat;
800
+ background-position: calc(100% - 1rem) 50%;
801
+ background-size: 1rem 1rem;
802
+ padding-right: 3rem;
803
+ }
804
+
805
+ .fr-input[type=date]::-webkit-calendar-picker-indicator {
806
+ display: block;
807
+ padding: 0.5rem;
808
+ margin-right: -2.5rem;
809
+ }
810
+ }
811
+
812
+ .fr-input-wrap {
813
+ position: relative;
814
+ display: block;
815
+ }
816
+
817
+ .fr-input-wrap[class^=fr-icon-] .fr-input,
818
+ .fr-input-wrap[class*=" fr-icon-"] .fr-input,
819
+ .fr-input-wrap[class^=fr-fi-] .fr-input,
820
+ .fr-input-wrap[class*=" fr-fi-"] .fr-input {
821
+ padding-right: 3rem;
822
+ }
823
+
824
+ .fr-input-wrap[class^=fr-icon-]::before,
825
+ .fr-input-wrap[class*=" fr-icon-"]::before,
826
+ .fr-input-wrap[class^=fr-fi-]::before,
827
+ .fr-input-wrap[class*=" fr-fi-"]::before {
828
+ --icon-size: 1rem;
829
+ position: absolute;
830
+ top: 0.75rem;
831
+ right: 1rem;
832
+ bottom: 0.75rem;
833
+ margin: auto;
834
+ pointer-events: none;
835
+ }
836
+
837
+ .fr-input-wrap--addon,
838
+ .fr-input-wrap--action {
839
+ display: flex;
840
+ flex-direction: row;
841
+ width: 100%;
842
+ }
843
+
844
+ .fr-input-wrap--addon > *:first-child:not(:last-child) {
845
+ border-radius: 0.25rem 0 0 0;
846
+ }
847
+
848
+ .fr-input-wrap--addon > *:last-child:not(:first-child) {
849
+ border-radius: 0 0.25rem 0 0;
850
+ }
851
+
852
+ .fr-input-wrap--action .fr-btn {
853
+ margin-left: 1rem;
854
+ }
855
+
856
+ .fr-input-wrap + .fr-hint-text {
857
+ margin-top: 1rem;
858
+ }
859
+
860
+ .fr-input-group {
861
+ position: relative;
862
+ }
863
+
864
+ .fr-input-group .fr-message:first-child {
865
+ margin-top: 1rem;
866
+ }
867
+
868
+ .fr-input-group--valid::before,
869
+ .fr-input-group--error::before,
870
+ .fr-input-group--info::before {
871
+ content: "";
872
+ display: block;
873
+ pointer-events: none;
874
+ position: absolute;
875
+ top: 0;
876
+ right: -0.75rem;
877
+ bottom: 0;
878
+ left: -0.75rem;
879
+ background-repeat: no-repeat;
880
+ background-position: 0 0;
881
+ background-size: 0.125rem 100%;
882
+ }
883
+
884
+ textarea.fr-input {
885
+ min-height: 3.75rem;
886
+ }
887
+
888
+ .fr-input:disabled {
889
+ color: var(--text-disabled-grey);
890
+ box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
891
+ }
892
+
893
+ .fr-input:autofill,
894
+ .fr-input:autofill:hover,
895
+ .fr-input:autofill:focus,
896
+ .fr-input:-webkit-autofill,
897
+ .fr-input:-webkit-autofill:hover,
898
+ .fr-input:-webkit-autofill:focus {
899
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-grey), inset 0 0 0 1000px var(--background-contrast-info);
900
+ -webkit-text-fill-color: var(--text-label-grey);
901
+ }
902
+ @supports selector(::-webkit-calendar-picker-indicator) {
903
+ .fr-input[type=date]::after {
904
+ background-color: var(--background-contrast-grey);
905
+
906
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23161616' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
907
+ background-image: var(--data-uri-svg);
908
+ }
909
+
910
+ :root[data-fr-theme=dark] .fr-input[type=date]::after {
911
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23fff' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
912
+ }
913
+
914
+ .fr-input[type=date]:disabled {
915
+ color: var(--text-disabled-grey);
916
+ box-shadow: inset 0 -2px 0 0 var(--border-disabled-grey);
917
+ }
918
+
919
+ .fr-input[type=date]:disabled::after {
920
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23929292' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
921
+ background-image: var(--data-uri-svg);
922
+ }
923
+
924
+ :root[data-fr-theme=dark] .fr-input[type=date]:disabled::after {
925
+ --data-uri-svg: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' x='0px' y='0px' viewBox='0 0 24 24'><path fill='%23666' d='M17 3h4c.55 0 1 .45 1 1v16c0 .55-.45 1-1 1H3c-.55 0-1-.45-1-1V4c0-.55.45-1 1-1h4V1h2v2h6V1h2v2zm-2 2H9v2H7V5H4v4h16V5h-3v2h-2V5zm5 6H4v8h16v-8z'/></svg>");
926
+ }
927
+ }
928
+
929
+ .fr-input-wrap--addon > .fr-input:not(:last-child) {
930
+ box-shadow: inset 0 -2px 0 0 var(--border-action-high-blue-france);
931
+ }
932
+
933
+ .fr-fieldset--valid .fr-input,
934
+ .fr-fieldset--valid .fr-input-wrap--addon > .fr-input:not(:last-child),
935
+ .fr-input-group--valid .fr-input,
936
+ .fr-input-group--valid .fr-input-wrap--addon > .fr-input:not(:last-child) {
937
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-success);
938
+ }
939
+
940
+ .fr-fieldset--error .fr-input,
941
+ .fr-fieldset--error .fr-input-wrap--addon > .fr-input:not(:last-child),
942
+ .fr-input-group--error .fr-input,
943
+ .fr-input-group--error .fr-input-wrap--addon > .fr-input:not(:last-child) {
944
+ box-shadow: inset 0 -2px 0 0 var(--border-plain-error);
945
+ }
946
+
947
+ .fr-input-group--error::before {
948
+ background-image: linear-gradient(0deg, var(--border-plain-error), var(--border-plain-error));
949
+ }
950
+
951
+ .fr-input-group--valid::before {
952
+ background-image: linear-gradient(0deg, var(--border-plain-success), var(--border-plain-success));
953
+ }
954
+
955
+ .fr-input-group--info::before {
956
+ background-image: linear-gradient(0deg, var(--border-plain-info), var(--border-plain-info));
957
+ }
958
+ @media (min-width: 36em) {
959
+ /*! media sm */
960
+ }
961
+ @media (min-width: 48em) {
962
+ /*! media md */
963
+ }
964
+ @media (min-width: 62em) {
965
+ /*! media lg */
966
+ }
967
+ @media (min-width: 78em) {
968
+ /*! media xl */
969
+ }
970
+ @media (-ms-high-contrast: active), (forced-colors: active) {
971
+ .fr-input-wrap--addon > *:last-child:not(:first-child) {
972
+ max-height: 2.5rem;
973
+ }
974
+ }
975
+ input,
976
+ select,
977
+ textarea {
978
+ -webkit-appearance: none;
979
+ -moz-appearance: none;
980
+ appearance: none;
981
+ font-family: "Marianne", arial, sans-serif;
982
+ text-rendering: optimizeLegibility;
983
+ -webkit-font-smoothing: antialiased;
984
+ -moz-osx-font-smoothing: grayscale;
985
+ -webkit-text-size-adjust: 100%;
986
+ border-radius: 0;
987
+ border: 0;
988
+ background-color: transparent;
989
+ margin: 0;
990
+ }
991
+ @media (-ms-high-contrast: active), (forced-colors: active) {
992
+ input,
993
+ select,
994
+ textarea {
995
+ border: 1px solid;
996
+ }
997
+ }
998
+
999
+ input[type=search] {
1000
+ -webkit-appearance: none;
1001
+ -moz-appearance: none;
1002
+ appearance: none;
1003
+ }
1004
+
1005
+ input[type=checkbox],
1006
+ input[type=radio],
1007
+ input[type=range] {
1008
+ -webkit-appearance: auto;
1009
+ -moz-appearance: auto;
1010
+ appearance: auto;
1011
+ }
1012
+
1013
+ input::-webkit-contacts-auto-fill-button,
1014
+ input::-webkit-credentials-auto-fill-button {
1015
+ margin-left: 1rem;
1016
+ margin-right: -1px;
1017
+ width: 1.25rem;
1018
+ height: 1.25rem;
1019
+ -webkit-mask-size: 1.25rem 1.25rem;
1020
+ }
1021
+
1022
+ input[type=range]:focus::-webkit-slider-thumb {
1023
+ outline-offset: 2px;
1024
+ outline-width: 2px;
1025
+ outline-color: #0a76f6;
1026
+ }
1027
+
1028
+ input[type=range]:focus::-moz-range-thumb {
1029
+ outline-offset: 2px;
1030
+ outline-width: 2px;
1031
+ outline-color: #0a76f6;
1032
+ }
1033
+
1034
+ input[type=range]:focus::-ms-thumb {
1035
+ outline-offset: 2px;
1036
+ outline-width: 2px;
1037
+ outline-color: #0a76f6;
1038
+ }
1039
+
1040
+ 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 {
1041
+ outline-offset: 2px;
1042
+ outline-width: 2px;
1043
+ outline-color: #0a76f6;
1044
+ }
1045
+
1046
+ input[type=range]:focus::-webkit-slider-thumb {
1047
+ outline-style: solid;
1048
+ }
1049
+
1050
+ input[type=range]:focus::-moz-range-thumb {
1051
+ outline-style: solid;
1052
+ }
1053
+
1054
+ input[type=range]:focus::-ms-thumb {
1055
+ outline-style: solid;
1056
+ }
1057
+
1058
+ 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 {
1059
+ outline-style: solid;
1060
+ }
1061
+
1062
+ input[type=range]:focus:not(:focus-visible)::-webkit-slider-thumb {
1063
+ outline-style: none;
1064
+ }
1065
+
1066
+ input[type=range]:focus:not(:focus-visible)::-moz-range-thumb {
1067
+ outline-style: none;
1068
+ }
1069
+
1070
+ input[type=range]:focus:not(:focus-visible)::-ms-thumb {
1071
+ outline-style: none;
1072
+ }
1073
+
1074
+ 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) {
1075
+ outline-style: none;
1076
+ }
1077
+
1078
+ input[type=range]:focus-visible::-webkit-slider-thumb {
1079
+ outline-style: solid;
1080
+ }
1081
+
1082
+ input[type=range]:focus-visible::-moz-range-thumb {
1083
+ outline-style: solid;
1084
+ }
1085
+
1086
+ input[type=range]:focus-visible::-ms-thumb {
1087
+ outline-style: solid;
1088
+ }
1089
+
1090
+ 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 {
1091
+ outline-style: solid;
1092
+ }
1093
+
1094
+ @media (hover: hover) and (pointer: fine) {
1095
+ :root {
1096
+ --brighten: -1;
1097
+ }
1098
+ 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 {
1099
+ background-color: var(--hover-tint);
1100
+ }
1101
+ 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 {
1102
+ background-color: var(--active-tint);
1103
+ }
1104
+ a[href]:hover, a[href]:active {
1105
+ --underline-hover-width: var(--underline-max-width);
1106
+ }
1107
+ }
1108
+ button, input[type=button], input[type=image], input[type=reset], input[type=submit] {
1109
+ --hover-tint: var(--hover);
1110
+ --active-tint: var(--active);
1111
+ }
1112
+
1113
+ a {
1114
+ --hover-tint: var(--idle);
1115
+ --active-tint: var(--active);
1116
+ }
1117
+
1118
+ 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 {
1119
+ cursor: pointer;
1120
+ }
1121
+
1122
+ input[type=range]:disabled::-webkit-slider-thumb, input[type=range]:disabled::-webkit-slider-thumb:active {
1123
+ cursor: not-allowed;
1124
+ }
1125
+
1126
+ input[type=range]:disabled::-moz-range-thumb, input[type=range]:disabled::-moz-range-thumb:active {
1127
+ cursor: not-allowed;
1128
+ }
1129
+
1130
+ input[type=range]:disabled::-ms-thumb, input[type=range]:disabled::-ms-thumb:active {
1131
+ cursor: not-allowed;
1132
+ }
1133
+
1134
+ 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] {
1135
+ cursor: not-allowed;
1136
+ }
1137
+
1138
+ input[type=range]::-webkit-slider-thumb {
1139
+ cursor: grab;
1140
+ }
1141
+
1142
+ input[type=range]::-moz-range-thumb {
1143
+ cursor: grab;
1144
+ }
1145
+
1146
+ input[type=range]::-ms-thumb {
1147
+ cursor: grab;
1148
+ }
1149
+
1150
+ input[type=range]::-webkit-slider-thumb:active {
1151
+ cursor: grabbing;
1152
+ }
1153
+
1154
+ input[type=range]::-moz-range-thumb:active {
1155
+ cursor: grabbing;
1156
+ }
1157
+
1158
+ input[type=range]::-ms-thumb:active {
1159
+ cursor: grabbing;
1160
+ }
1161
+
1162
+ /**
1163
+ * Override de l'opacité chrome sur un élément disabled
1164
+ */
1165
+ 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]) {
1166
+ opacity: 1;
1167
+ }
1168
+
1169
+ *,
1170
+ *::before,
1171
+ *::after {
1172
+ box-sizing: inherit;
1173
+ }
1174
+
1175
+ :root {
1176
+ box-sizing: border-box;
1177
+ }
1178
+
1179
+ input,
1180
+ select,
1181
+ textarea,
1182
+ label,
1183
+ button,
1184
+ a {
1185
+ -webkit-tap-highlight-color: transparent;
1186
+ }
1187
+
1188
+ [class^=fr-icon-]::before, [class^=fr-icon-]::after, [class*=" fr-icon-"]::before, [class*=" fr-icon-"]::after, [class^=fr-fi-]::before, [class^=fr-fi-]::after, [class*=" fr-fi-"]::before, [class*=" fr-fi-"]::after {
1189
+ flex: 0 0 auto;
1190
+ display: inline-block;
1191
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
1192
+ background-color: currentColor;
1193
+ width: var(--icon-size);
1194
+ height: var(--icon-size);
1195
+ -webkit-mask-size: 100% 100%;
1196
+ mask-size: 100% 100%;
1197
+ }
1198
+ [class^=fr-icon-]::before, [class^=fr-icon-]::after, [class*=" fr-icon-"]::before, [class*=" fr-icon-"]::after, [class^=fr-fi-]::before, [class^=fr-fi-]::after, [class*=" fr-fi-"]::before, [class*=" fr-fi-"]::after {
1199
+ --icon-size: 1.5rem;
1200
+ }
1201
+ [class^=fr-icon-]::before, [class*=" fr-icon-"]::before, [class^=fr-fi-]::before, [class*=" fr-fi-"]::before {
1202
+ content: "";
1203
+ }
1204
+
1205
+ @media (-ms-high-contrast: active) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (forced-colors: active), (forced-colors: active) and (-ms-high-contrast: active), (forced-colors: active) and (forced-colors: active) {
1206
+ [class^=fr-icon-]::before, [class^=fr-icon-]::after, [class*=" fr-icon-"]::before, [class*=" fr-icon-"]::after, [class^=fr-fi-]::before, [class^=fr-fi-]::after, [class*=" fr-fi-"]::before, [class*=" fr-fi-"]::after {
1207
+ forced-color-adjust: none;
1208
+ background-color: canvastext;
1209
+ }
1210
+ }
1211
+ @media (-ms-high-contrast: active) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (forced-colors: active), (forced-colors: active) and (-ms-high-contrast: active), (forced-colors: active) and (forced-colors: active) {
1212
+ button[class^=fr-icon-]:not([disabled])::before, button[class^=fr-icon-]:not([disabled])::after, button[class*=" fr-icon-"]:not([disabled])::before, button[class*=" fr-icon-"]:not([disabled])::after, button[class^=fr-fi-]:not([disabled])::before, button[class^=fr-fi-]:not([disabled])::after, button[class*=" fr-fi-"]:not([disabled])::before, button[class*=" fr-fi-"]:not([disabled])::after {
1213
+ background-color: buttontext;
1214
+ }
1215
+ }
1216
+ @media (-ms-high-contrast: active) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (forced-colors: active), (forced-colors: active) and (-ms-high-contrast: active), (forced-colors: active) and (forced-colors: active) {
1217
+ a[href][class^=fr-icon-]::before, a[href][class^=fr-icon-]::after, a[href][class*=" fr-icon-"]::before, a[href][class*=" fr-icon-"]::after, a[href][class^=fr-fi-]::before, a[href][class^=fr-fi-]::after, a[href][class*=" fr-fi-"]::before, a[href][class*=" fr-fi-"]::after {
1218
+ background-color: linktext;
1219
+ }
1220
+ }
1221
+ @media (-ms-high-contrast: active) and (-ms-high-contrast: active), (-ms-high-contrast: active) and (forced-colors: active), (forced-colors: active) and (-ms-high-contrast: active), (forced-colors: active) and (forced-colors: active) {
1222
+ a[class^=fr-icon-]:not([href])::before, a[class^=fr-icon-]:not([href])::after, a[class*=" fr-icon-"]:not([href])::before, a[class*=" fr-icon-"]:not([href])::after, a[class^=fr-fi-]:not([href])::before, a[class^=fr-fi-]:not([href])::after, a[class*=" fr-fi-"]:not([href])::before, a[class*=" fr-fi-"]:not([href])::after, button[class^=fr-icon-]:disabled::before, button[class^=fr-icon-]:disabled::after, button[class*=" fr-icon-"]:disabled::before, button[class*=" fr-icon-"]:disabled::after, button[class^=fr-fi-]:disabled::before, button[class^=fr-fi-]:disabled::after, button[class*=" fr-fi-"]:disabled::before, button[class*=" fr-fi-"]:disabled::after, input[class^=fr-icon-]:disabled::before, input[class^=fr-icon-]:disabled::after, input[class*=" fr-icon-"]:disabled::before, input[class*=" fr-icon-"]:disabled::after, input[class^=fr-fi-]:disabled::before, input[class^=fr-fi-]:disabled::after, input[class*=" fr-fi-"]:disabled::before, input[class*=" fr-fi-"]:disabled::after, input[type=checkbox][class^=fr-icon-]:disabled::before, input[type=checkbox][class^=fr-icon-]:disabled::after, input[type=checkbox][class*=" fr-icon-"]:disabled::before, input[type=checkbox][class*=" fr-icon-"]:disabled::after, input[type=checkbox][class^=fr-fi-]:disabled::before, input[type=checkbox][class^=fr-fi-]:disabled::after, input[type=checkbox][class*=" fr-fi-"]:disabled::before, input[type=checkbox][class*=" fr-fi-"]:disabled::after, input[type=checkbox]:disabled + label[class^=fr-icon-]::before, input[type=checkbox]:disabled + label[class^=fr-icon-]::after, input[type=checkbox]:disabled + label[class*=" fr-icon-"]::before, input[type=checkbox]:disabled + label[class*=" fr-icon-"]::after, input[type=checkbox]:disabled + label[class^=fr-fi-]::before, input[type=checkbox]:disabled + label[class^=fr-fi-]::after, input[type=checkbox]:disabled + label[class*=" fr-fi-"]::before, input[type=checkbox]:disabled + label[class*=" fr-fi-"]::after, input[type=radio][class^=fr-icon-]:disabled::before, input[type=radio][class^=fr-icon-]:disabled::after, input[type=radio][class*=" fr-icon-"]:disabled::before, input[type=radio][class*=" fr-icon-"]:disabled::after, input[type=radio][class^=fr-fi-]:disabled::before, input[type=radio][class^=fr-fi-]:disabled::after, input[type=radio][class*=" fr-fi-"]:disabled::before, input[type=radio][class*=" fr-fi-"]:disabled::after, input[type=radio]:disabled + label[class^=fr-icon-]::before, input[type=radio]:disabled + label[class^=fr-icon-]::after, input[type=radio]:disabled + label[class*=" fr-icon-"]::before, input[type=radio]:disabled + label[class*=" fr-icon-"]::after, input[type=radio]:disabled + label[class^=fr-fi-]::before, input[type=radio]:disabled + label[class^=fr-fi-]::after, input[type=radio]:disabled + label[class*=" fr-fi-"]::before, input[type=radio]:disabled + label[class*=" fr-fi-"]::after, select[class^=fr-icon-]:disabled::before, select[class^=fr-icon-]:disabled::after, select[class*=" fr-icon-"]:disabled::before, select[class*=" fr-icon-"]:disabled::after, select[class^=fr-fi-]:disabled::before, select[class^=fr-fi-]:disabled::after, select[class*=" fr-fi-"]:disabled::before, select[class*=" fr-fi-"]:disabled::after, textarea[class^=fr-icon-]:disabled::before, textarea[class^=fr-icon-]:disabled::after, textarea[class*=" fr-icon-"]:disabled::before, textarea[class*=" fr-icon-"]:disabled::after, textarea[class^=fr-fi-]:disabled::before, textarea[class^=fr-fi-]:disabled::after, textarea[class*=" fr-fi-"]:disabled::before, textarea[class*=" fr-fi-"]:disabled::after, video[class^=fr-icon-]:not([href])::before, video[class^=fr-icon-]:not([href])::after, video[class*=" fr-icon-"]:not([href])::before, video[class*=" fr-icon-"]:not([href])::after, video[class^=fr-fi-]:not([href])::before, video[class^=fr-fi-]:not([href])::after, video[class*=" fr-fi-"]:not([href])::before, video[class*=" fr-fi-"]:not([href])::after, audio[class^=fr-icon-]:not([href])::before, audio[class^=fr-icon-]:not([href])::after, audio[class*=" fr-icon-"]:not([href])::before, audio[class*=" fr-icon-"]:not([href])::after, audio[class^=fr-fi-]:not([href])::before, audio[class^=fr-fi-]:not([href])::after, audio[class*=" fr-fi-"]:not([href])::before, audio[class*=" fr-fi-"]:not([href])::after {
1223
+ background-color: graytext;
1224
+ }
1225
+ }
1226
+ .fr-icon--xs::before, .fr-icon--xs::after {
1227
+ --icon-size: 0.75rem;
1228
+ }
1229
+ .fr-icon--sm::before, .fr-icon--sm::after {
1230
+ --icon-size: 1rem;
1231
+ }
1232
+ .fr-icon--md::before, .fr-icon--md::after {
1233
+ --icon-size: 1.5rem;
1234
+ }
1235
+ .fr-icon--lg::before, .fr-icon--lg::after {
1236
+ --icon-size: 2rem;
1237
+ }
1238
+
1239
+ :host {
1240
+ display: block;
1241
+ text-rendering: optimizeLegibility;
1242
+ -webkit-font-smoothing: antialiased;
1243
+ -moz-osx-font-smoothing: grayscale;
1244
+ -webkit-text-size-adjust: 100%;
1245
+ font-size: 1rem;
1246
+ line-height: 1.5rem;
1247
+ background-color: var(--background-default-grey);
1248
+ --idle: transparent;
1249
+ --hover: var(--background-default-grey-hover);
1250
+ --active: var(--background-default-grey-active);
1251
+ color: var(--text-default-grey);
1252
+ background-color: transparent;
1253
+ }
1254
+
1255
+ .fr-input-group {
1256
+ box-sizing: border-box;
1257
+ }
1258
+
1259
+ .fr-input-group:not(:last-child) {
1260
+ margin-bottom: 0;
1261
+ }
1262
+
1263
+ .fr-input-wrap--addon :global(::slotted([slot="button"])) {
1264
+ border-radius: 0 0.25rem 0 0;
1265
+ overflow: hidden;
1266
+ }
1267
+
1268
+ .fr-input-wrap--action :global(::slotted([slot="button"])) {
1269
+ margin-left: 1rem;
1270
+ }</style>