@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.
- package/README.md +102 -21
- package/dist/assets/assets.d.ts +1 -0
- package/dist/assets/assets.js +1 -0
- package/dist/assets/dsfr-icons.css +1 -0
- package/dist/composants/Alerte.svelte +83 -0
- package/dist/composants/Alerte.svelte.d.ts +32 -0
- package/dist/composants/AncresParcours.svelte +132 -0
- package/dist/composants/AncresParcours.svelte.d.ts +11 -0
- package/dist/composants/BandeauPage.svelte +218 -0
- package/dist/composants/BandeauPage.svelte.d.ts +58 -0
- package/dist/composants/BlocFonctionnalites.svelte +570 -0
- package/dist/composants/BlocFonctionnalites.svelte.d.ts +105 -0
- package/dist/composants/Bouton.svelte +156 -0
- package/dist/composants/Bouton.svelte.d.ts +36 -0
- package/dist/composants/CentreAide.svelte +223 -0
- package/dist/composants/CentreAide.svelte.d.ts +41 -0
- package/dist/composants/FiltresCatalogue.svelte +147 -0
- package/dist/composants/FiltresCatalogue.svelte.d.ts +15 -0
- package/dist/composants/Icone.svelte +42 -0
- package/dist/composants/Icone.svelte.d.ts +7 -0
- package/dist/composants/Lien.svelte +233 -0
- package/dist/composants/Lien.svelte.d.ts +39 -0
- package/dist/composants/MultiSelect.svelte +931 -0
- package/dist/composants/MultiSelect.svelte.d.ts +51 -0
- package/dist/composants/Reactions.svelte +360 -0
- package/dist/composants/Reactions.svelte.d.ts +23 -0
- package/dist/composants/ResumePssi.svelte +92 -0
- package/dist/composants/ResumePssi.svelte.d.ts +6 -0
- package/dist/composants/Tag.svelte +113 -0
- package/dist/composants/Tag.svelte.d.ts +35 -0
- package/dist/composants/blog/BandeauTitre.svelte +150 -0
- package/dist/composants/blog/BandeauTitre.svelte.d.ts +29 -0
- package/dist/composants/blog/CarteArticle.svelte +69 -0
- package/dist/composants/blog/CarteArticle.svelte.d.ts +8 -0
- package/dist/composants/blog/IconeChevronBas.svelte +22 -0
- package/dist/composants/blog/IconeChevronBas.svelte.d.ts +26 -0
- package/dist/composants/blog/IconeMenuLateral.svelte +15 -0
- package/dist/composants/blog/IconeMenuLateral.svelte.d.ts +26 -0
- package/dist/composants/blog/ListeArticles.svelte +62 -0
- package/dist/composants/blog/ListeArticles.svelte.d.ts +9 -0
- package/dist/composants/blog/ListeDeroulante.svelte +57 -0
- package/dist/composants/blog/ListeDeroulante.svelte.d.ts +10 -0
- package/dist/composants/blog/PageCrisp.svelte +244 -0
- package/dist/composants/blog/PageCrisp.svelte.d.ts +8 -0
- package/dist/composants/blog/SommaireBureau.svelte +64 -0
- package/dist/composants/blog/SommaireBureau.svelte.d.ts +9 -0
- package/dist/composants/blog/SommaireMobile.svelte +115 -0
- package/dist/composants/blog/SommaireMobile.svelte.d.ts +9 -0
- package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte +184 -0
- package/dist/composants/carrousel-tuiles/CarrouselTuiles.svelte.d.ts +34 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte +16 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheDroite.svelte.d.ts +26 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte +12 -0
- package/dist/composants/carrousel-tuiles/IconeFlecheGauche.svelte.d.ts +26 -0
- package/dist/composants/carrousel-tuiles/Tuile.svelte +72 -0
- package/dist/composants/carrousel-tuiles/Tuile.svelte.d.ts +10 -0
- package/dist/composants/icones/Fleche.svelte +25 -0
- package/dist/composants/icones/Fleche.svelte.d.ts +6 -0
- package/dist/composants/icones/LienExterne.svelte +20 -0
- package/dist/composants/icones/LienExterne.svelte.d.ts +6 -0
- package/dist/composants/marelle/Etape.svelte +165 -0
- package/dist/composants/marelle/Etape.svelte.d.ts +32 -0
- package/dist/composants/marelle/Marelle.svelte +97 -0
- package/dist/composants/marelle/Marelle.svelte.d.ts +44 -0
- package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte +158 -0
- package/dist/composants/mes-services-cyber/bandeau/Bandeau.svelte.d.ts +3 -0
- package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte +125 -0
- package/dist/composants/mes-services-cyber/lien/LienDiagnosticCyber.svelte.d.ts +7 -0
- package/dist/composants/pied-de-page/NavigationPiedDePage.svelte +62 -0
- package/dist/composants/pied-de-page/NavigationPiedDePage.svelte.d.ts +6 -0
- package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte +96 -0
- package/dist/composants/suite-cyber/AccueilSuiteCyber.svelte.d.ts +6 -0
- package/dist/composants/suite-cyber/LiensSuiteCyber.svelte +99 -0
- package/dist/composants/suite-cyber/LiensSuiteCyber.svelte.d.ts +14 -0
- package/dist/composants/suite-cyber/SuiteCyber.svelte +296 -0
- package/dist/composants/suite-cyber/SuiteCyber.svelte.d.ts +6 -0
- package/dist/composants/vitrines-produits/briques/Brique.svelte +50 -0
- package/dist/composants/vitrines-produits/briques/Brique.svelte.d.ts +9 -0
- package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte +144 -0
- package/dist/composants/vitrines-produits/briques/BriqueContenuADeuxColonnes.svelte.d.ts +29 -0
- package/dist/composants/vitrines-produits/briques/BriqueHero.svelte +246 -0
- package/dist/composants/vitrines-produits/briques/BriqueHero.svelte.d.ts +31 -0
- package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte +50 -0
- package/dist/composants/vitrines-produits/briques/BriqueTitreMultimedia.svelte.d.ts +25 -0
- package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte +14 -0
- package/dist/composants/vitrines-produits/briques/LecteurVideo.svelte.d.ts +9 -0
- package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte +148 -0
- package/dist/composants/vitrines-produits/briques/PresentationANSSI.svelte.d.ts +37 -0
- package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte +139 -0
- package/dist/composants/vitrines-produits/briques/RejoindreLaCommunaute.svelte.d.ts +36 -0
- package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte +18 -0
- package/dist/composants/vitrines-produits/briques/temoignages/IconeTemoignage.svelte.d.ts +26 -0
- package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte +168 -0
- package/dist/composants/vitrines-produits/briques/temoignages/Temoignages.svelte.d.ts +13 -0
- package/dist/directives/actions.svelte.d.ts +32 -0
- package/dist/directives/actions.svelte.js +158 -0
- package/dist/dsfr/DsfrAccordion.svelte +889 -0
- package/dist/dsfr/DsfrAccordion.svelte.d.ts +40 -0
- package/dist/dsfr/DsfrAlert.svelte +2097 -0
- package/dist/dsfr/DsfrAlert.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrBadge.svelte +532 -0
- package/dist/dsfr/DsfrBadge.svelte.d.ts +41 -0
- package/dist/dsfr/DsfrBadgesGroup.svelte +610 -0
- package/dist/dsfr/DsfrBadgesGroup.svelte.d.ts +25 -0
- package/dist/dsfr/DsfrBreadcrumb.svelte +657 -0
- package/dist/dsfr/DsfrBreadcrumb.svelte.d.ts +25 -0
- package/dist/dsfr/DsfrButton.svelte +1821 -0
- package/dist/dsfr/DsfrButton.svelte.d.ts +68 -0
- package/dist/dsfr/DsfrButtonsGroup.svelte +1896 -0
- package/dist/dsfr/DsfrButtonsGroup.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrCallout.svelte +242 -0
- package/dist/dsfr/DsfrCallout.svelte.d.ts +46 -0
- package/dist/dsfr/DsfrCard.svelte +10223 -0
- package/dist/dsfr/DsfrCard.svelte.d.ts +102 -0
- package/dist/dsfr/DsfrCheckbox.svelte +1280 -0
- package/dist/dsfr/DsfrCheckbox.svelte.d.ts +69 -0
- package/dist/dsfr/DsfrCheckboxesGroup.svelte +1532 -0
- package/dist/dsfr/DsfrCheckboxesGroup.svelte.d.ts +73 -0
- package/dist/dsfr/DsfrConnect.svelte +511 -0
- package/dist/dsfr/DsfrConnect.svelte.d.ts +15 -0
- package/dist/dsfr/DsfrContainer.svelte +894 -0
- package/dist/dsfr/DsfrContainer.svelte.d.ts +31 -0
- package/dist/dsfr/DsfrContent.svelte +1140 -0
- package/dist/dsfr/DsfrContent.svelte.d.ts +60 -0
- package/dist/dsfr/DsfrDropdown.svelte +335 -0
- package/dist/dsfr/DsfrDropdown.svelte.d.ts +73 -0
- package/dist/dsfr/DsfrFooter.svelte +2370 -0
- package/dist/dsfr/DsfrFooter.svelte.d.ts +77 -0
- package/dist/dsfr/DsfrHeader.svelte +4162 -0
- package/dist/dsfr/DsfrHeader.svelte.d.ts +131 -0
- package/dist/dsfr/DsfrHighlight.svelte +294 -0
- package/dist/dsfr/DsfrHighlight.svelte.d.ts +33 -0
- package/dist/dsfr/DsfrInput.svelte +1270 -0
- package/dist/dsfr/DsfrInput.svelte.d.ts +86 -0
- package/dist/dsfr/DsfrLabel.svelte +438 -0
- package/dist/dsfr/DsfrLabel.svelte.d.ts +65 -0
- package/dist/dsfr/DsfrLink.svelte +1007 -0
- package/dist/dsfr/DsfrLink.svelte.d.ts +66 -0
- package/dist/dsfr/DsfrLogo.svelte +228 -0
- package/dist/dsfr/DsfrLogo.svelte.d.ts +11 -0
- package/dist/dsfr/DsfrMessagesGroup.svelte +260 -0
- package/dist/dsfr/DsfrMessagesGroup.svelte.d.ts +46 -0
- package/dist/dsfr/DsfrModal.svelte +2983 -0
- package/dist/dsfr/DsfrModal.svelte.d.ts +56 -0
- package/dist/dsfr/DsfrNavigation.svelte +7626 -0
- package/dist/dsfr/DsfrNotice.svelte +2948 -0
- package/dist/dsfr/DsfrNotice.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrPagination.svelte +1036 -0
- package/dist/dsfr/DsfrPagination.svelte.d.ts +35 -0
- package/dist/dsfr/DsfrQuote.svelte +646 -0
- package/dist/dsfr/DsfrQuote.svelte.d.ts +29 -0
- package/dist/dsfr/DsfrRadio.svelte +1307 -0
- package/dist/dsfr/DsfrRadio.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrRadiosGroup.svelte +1629 -0
- package/dist/dsfr/DsfrRadiosGroup.svelte.d.ts +76 -0
- package/dist/dsfr/DsfrRange.svelte +1329 -0
- package/dist/dsfr/DsfrRange.svelte.d.ts +77 -0
- package/dist/dsfr/DsfrSearch.svelte +2015 -0
- package/dist/dsfr/DsfrSearch.svelte.d.ts +51 -0
- package/dist/dsfr/DsfrSegmented.svelte +422 -0
- package/dist/dsfr/DsfrSegmented.svelte.d.ts +34 -0
- package/dist/dsfr/DsfrSelect.svelte +1068 -0
- package/dist/dsfr/DsfrSelect.svelte.d.ts +86 -0
- package/dist/dsfr/DsfrShare.svelte +2228 -0
- package/dist/dsfr/DsfrShare.svelte.d.ts +40 -0
- package/dist/dsfr/DsfrSideMenu.svelte +1211 -0
- package/dist/dsfr/DsfrSideMenu.svelte.d.ts +34 -0
- package/dist/dsfr/DsfrSkipLink.svelte +990 -0
- package/dist/dsfr/DsfrSkipLink.svelte.d.ts +13 -0
- package/dist/dsfr/DsfrStepper.svelte +340 -0
- package/dist/dsfr/DsfrStepper.svelte.d.ts +18 -0
- package/dist/dsfr/DsfrTable.svelte +829 -0
- package/dist/dsfr/DsfrTable.svelte.d.ts +202 -0
- package/dist/dsfr/DsfrTabnav.svelte +1149 -0
- package/dist/dsfr/DsfrTabnav.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrTabs.svelte +926 -0
- package/dist/dsfr/DsfrTabs.svelte.d.ts +28 -0
- package/dist/dsfr/DsfrTag.svelte +1269 -0
- package/dist/dsfr/DsfrTag.svelte.d.ts +59 -0
- package/dist/dsfr/DsfrTagsGroup.svelte +1351 -0
- package/dist/dsfr/DsfrTagsGroup.svelte.d.ts +37 -0
- package/dist/dsfr/DsfrTextarea.svelte +1385 -0
- package/dist/dsfr/DsfrTextarea.svelte.d.ts +72 -0
- package/dist/dsfr/DsfrTile.svelte +7645 -0
- package/dist/dsfr/DsfrTile.svelte.d.ts +79 -0
- package/dist/dsfr/DsfrToggle.svelte +1453 -0
- package/dist/dsfr/DsfrToggle.svelte.d.ts +56 -0
- package/dist/dsfr/DsfrTooltip.svelte +396 -0
- package/dist/dsfr/DsfrTooltip.svelte.d.ts +36 -0
- package/dist/dsfr/DsfrTranscription.svelte +2962 -0
- package/dist/dsfr/DsfrTranscription.svelte.d.ts +39 -0
- package/dist/dsfr/DsfrTranslate.svelte +1384 -0
- package/dist/dsfr/DsfrTranslate.svelte.d.ts +19 -0
- package/dist/dsfr/DsfrUser.svelte +736 -0
- package/dist/dsfr/DsfrUser.svelte.d.ts +65 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +79 -0
- package/dist/styles/apparence-bouton.scss +154 -0
- package/dist/styles/dsfr-icons.css +1 -0
- package/dist/styles/dsfr-icons.scss +4 -0
- package/dist/styles/dsfr-variables.scss +28 -0
- package/dist/styles/mixins-dsfr.scss +226 -0
- package/dist/styles/mixins.scss +51 -0
- package/dist/types/commun.d.ts +63 -0
- package/dist/types/commun.js +1 -0
- package/dist/types/global.d.ts +24 -0
- package/dist/types/global.js +9 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.js +1 -0
- package/dist/ui-kit-components.json +142 -100
- package/dist/utilitaires/createFormValidation.svelte.d.ts +34 -0
- package/dist/utilitaires/createFormValidation.svelte.js +183 -0
- package/dist/utilitaires/icons-stylesheet.d.ts +370 -0
- package/dist/utilitaires/icons-stylesheet.js +33 -0
- package/dist/utilitaires/index.d.ts +14 -0
- package/dist/utilitaires/index.js +26 -0
- package/dist/web-types.json +149 -101
- package/dist/webcomponents/lab-anssi-ui-kit.iife.js +36 -9
- package/dist/webcomponents/lab-anssi-ui-kit.jsx.d.ts +42 -24
- package/package.json +49 -43
- package/dist/index.html +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
@use "@gouvfr/dsfr/src/module/color";
|
|
2
|
+
@import "@gouvfr/dsfr/src/dsfr/core/index";
|
|
3
|
+
@import "@gouvfr/dsfr/src/dsfr/core/style/display/module/no-scroll";
|
|
4
|
+
@import "@gouvfr/dsfr/src/dsfr/core/style/spacing/module/elevation";
|
|
5
|
+
@import "@gouvfr/dsfr/src/dsfr/core/style/color/module"; // Light Theme
|
|
6
|
+
@import "@gouvfr/dsfr/src/dsfr/scheme/style/module"; // Dark Theme
|
|
7
|
+
|
|
8
|
+
@include generate-margin-vars();
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
@include init-underline;
|
|
12
|
+
@include enable-underline;
|
|
13
|
+
@include enable-external;
|
|
14
|
+
|
|
15
|
+
--text-decoration: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-themeable="false"] {
|
|
19
|
+
@include color.define();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
dsfr-container:not(:defined) {
|
|
23
|
+
display: block;
|
|
24
|
+
margin: 0 auto;
|
|
25
|
+
max-width: 78rem;
|
|
26
|
+
padding-inline: 1rem;
|
|
27
|
+
width: 100%;
|
|
28
|
+
}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
@use "src/module/color";
|
|
2
|
+
@use "@gouvfr/dsfr/src/dsfr/core/index" as *;
|
|
3
|
+
|
|
4
|
+
$checkmark-scale: var(--checkmark-scale, 0.7) !default;
|
|
5
|
+
$checkmark-size: var(--checkmark-size, 24px) !default;
|
|
6
|
+
$dash-height: var(--dash-height, 2px) !default;
|
|
7
|
+
|
|
8
|
+
/// Ajoute un style `display` au composant hôte dans le Shadow DOM.
|
|
9
|
+
/// Permet également d'injecter du contenu CSS supplémentaire via `@content`.
|
|
10
|
+
///
|
|
11
|
+
/// @param {String} $display [block] - La valeur de la propriété CSS `display` à appliquer au `:host`.
|
|
12
|
+
/// @content - Contenu CSS additionnel à insérer dans le bloc `:host`.
|
|
13
|
+
///
|
|
14
|
+
@mixin set-shadow-host($display: "block", $font-size: true, $tag: null) {
|
|
15
|
+
$host: ":host";
|
|
16
|
+
|
|
17
|
+
@if $tag {
|
|
18
|
+
$host: "#{$host}(#{$tag})";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#{$host} {
|
|
22
|
+
display: #{$display};
|
|
23
|
+
@include text-adjustments();
|
|
24
|
+
@if $font-size {
|
|
25
|
+
@include text-style(md);
|
|
26
|
+
}
|
|
27
|
+
@include color.background(
|
|
28
|
+
default grey,
|
|
29
|
+
(
|
|
30
|
+
legacy: false,
|
|
31
|
+
)
|
|
32
|
+
);
|
|
33
|
+
@include color.text(
|
|
34
|
+
default grey,
|
|
35
|
+
(
|
|
36
|
+
legacy: false,
|
|
37
|
+
)
|
|
38
|
+
);
|
|
39
|
+
background-color: transparent;
|
|
40
|
+
|
|
41
|
+
@content;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/// Applique `box-sizing: border-box` au composant spécifié et à tous ses descendants.
|
|
46
|
+
///
|
|
47
|
+
/// @param {String} $component - Le nom du composant à cibler (utilisé dans la classe `.fr-#{$component}`).
|
|
48
|
+
/// @content Permet d'injecter du contenu additionnel à l'intérieur du bloc du composant.
|
|
49
|
+
///
|
|
50
|
+
@mixin set-dsfr-sizing($component) {
|
|
51
|
+
.fr-#{$component} {
|
|
52
|
+
box-sizing: border-box;
|
|
53
|
+
|
|
54
|
+
@content;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/// Reproduis une coche (checkmark) en pure CSS via des bordures.
|
|
59
|
+
///
|
|
60
|
+
/// @param {Color} $color [var(--border-action-high-blue-france)] - Couleur de la coche.
|
|
61
|
+
///
|
|
62
|
+
@mixin set-icon-check($icon-color: var(--border-action-high-blue-france)) {
|
|
63
|
+
content: "";
|
|
64
|
+
display: inline-block;
|
|
65
|
+
width: $checkmark-size;
|
|
66
|
+
height: $checkmark-size;
|
|
67
|
+
background-color: var(--icon-check-color, $icon-color);
|
|
68
|
+
clip-path: polygon(41.7% 63.2%, 80% 24.9%, 85.8% 30.8%, 41.7% 75%, 15.2% 48.5%, 21% 42.6%);
|
|
69
|
+
|
|
70
|
+
@content;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/// Reproduis un tiret (indéterminé) en pure CSS via un arrière-plan.
|
|
74
|
+
///
|
|
75
|
+
/// @param {Color} $icon-color [var(--border-action-high-blue-france)] - Couleur du tiret.
|
|
76
|
+
///
|
|
77
|
+
@mixin set-icon-indeterminate($icon-color: var(--border-action-high-blue-france)) {
|
|
78
|
+
content: "";
|
|
79
|
+
display: inline-block;
|
|
80
|
+
background-color: $icon-color;
|
|
81
|
+
width: calc($checkmark-size * 0.38);
|
|
82
|
+
height: $dash-height;
|
|
83
|
+
|
|
84
|
+
@content;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/// Applique des styles personnalisés à une case à cocher en affichant une coche personnalisée.
|
|
88
|
+
///
|
|
89
|
+
/// Cette mixin masque l'icône par défaut de la case à cocher et ajoute une coche stylisée
|
|
90
|
+
/// en pure CSS lorsque la case est cochée.
|
|
91
|
+
///
|
|
92
|
+
@mixin set-themeable-checkbox() {
|
|
93
|
+
input[type="checkbox"] {
|
|
94
|
+
&:checked + label,
|
|
95
|
+
&:disabled + label,
|
|
96
|
+
&:indeterminate + label {
|
|
97
|
+
&::before {
|
|
98
|
+
--data-uri-svg: none;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&::after {
|
|
102
|
+
position: absolute;
|
|
103
|
+
z-index: 1;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
&:checked:not(:indeterminate) + label {
|
|
108
|
+
&::after {
|
|
109
|
+
@include set-icon-check(var(--text-inverted-blue-france)) {
|
|
110
|
+
left: var(--checkbox-gap, -2rem);
|
|
111
|
+
top: calc((#{$checkmark-size} * #{$checkmark-scale}) / 2);
|
|
112
|
+
transform: translateY(-50%);
|
|
113
|
+
scale: $checkmark-scale;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&:disabled + label {
|
|
119
|
+
&::after {
|
|
120
|
+
--icon-check-color: currentColor;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&:indeterminate + label {
|
|
125
|
+
&::before {
|
|
126
|
+
background-color: var(--background-active-blue-france);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
&::after {
|
|
130
|
+
@include set-icon-indeterminate(var(--text-inverted-blue-france)) {
|
|
131
|
+
top: calc(($checkmark-size - $dash-height) / 2);
|
|
132
|
+
left: calc(var(--checkbox-gap, -2rem) + (#{$checkmark-size} / 2));
|
|
133
|
+
transform: translateX(-50%);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.fr-label {
|
|
140
|
+
&::before {
|
|
141
|
+
--data-uri-svg: none;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/// Applique les styles pour les cases à cocher en taille "small" (sm)
|
|
147
|
+
///
|
|
148
|
+
/// Cette mixin ajuste les variables CSS pour
|
|
149
|
+
/// réduire l'écart entre les éléments, la taille de la coche et le positionnement vertical du label.
|
|
150
|
+
///
|
|
151
|
+
@mixin set-themeable-checkbox-sm() {
|
|
152
|
+
&--sm {
|
|
153
|
+
--checkbox-gap: var(--checkbox-gap-sm, -1.5rem);
|
|
154
|
+
--checkmark-size: 1rem;
|
|
155
|
+
--checkmark-scale: 1;
|
|
156
|
+
|
|
157
|
+
label::after {
|
|
158
|
+
margin-top: 0.25rem;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/// Applique des styles personnalisés pour différentes variantes de boutons.
|
|
164
|
+
///
|
|
165
|
+
/// Cette mixin définit les styles pour les variantes secondary, inverted-primary et inverted-secondary,
|
|
166
|
+
/// en gérant les états hover, active et disabled avec des couleurs et des bordures appropriées.
|
|
167
|
+
///
|
|
168
|
+
@mixin set-custom-button-kind() {
|
|
169
|
+
&--secondary {
|
|
170
|
+
--hover: var(--background-default-grey-hover);
|
|
171
|
+
--active: var(--background-default-grey-active);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
&--inverted-primary {
|
|
175
|
+
--hover: var(--background-default-grey-hover);
|
|
176
|
+
--active: var(--background-default-grey-active);
|
|
177
|
+
background-color: var(--background-default-grey);
|
|
178
|
+
box-shadow: inset 0 0 0 1px var(--background-default-grey);
|
|
179
|
+
color: var(--text-action-high-blue-france);
|
|
180
|
+
|
|
181
|
+
&:disabled {
|
|
182
|
+
box-shadow: inset 0 0 0 1px var(--border-disabled-grey);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
&--inverted-secondary,
|
|
187
|
+
&--inverted-tertiary,
|
|
188
|
+
&--inverted-tertiary-no-outline {
|
|
189
|
+
--hover: var(--background-transparent-hover, rgb(255 255 255 / 8%));
|
|
190
|
+
--active: var(--background-transparent-active, rgb(255 255 255 / 16%));
|
|
191
|
+
--background-action-high-blue-france: transparent;
|
|
192
|
+
--background-disabled-grey: transparent;
|
|
193
|
+
|
|
194
|
+
color: var(--text-inverted-grey);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
&--inverted-secondary {
|
|
198
|
+
box-shadow: inset 0 0 0 1px var(--background-default-grey);
|
|
199
|
+
|
|
200
|
+
&:disabled {
|
|
201
|
+
box-shadow: inset 0 0 0 1px var(--border-disabled-grey);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
&--inverted-tertiary {
|
|
206
|
+
box-shadow: inset 0 0 0 1px rgb(255 255 255 / 40%);
|
|
207
|
+
box-shadow: inset 0 0 0 1px rgb(from var(--background-default-grey) r g b / 0.4);
|
|
208
|
+
|
|
209
|
+
&:disabled {
|
|
210
|
+
box-shadow: inset 0 0 0 1px rgb(255 255 255 / 40%);
|
|
211
|
+
box-shadow: inset 0 0 0 1px rgb(from var(--background-default-grey) r g b / 0.4);
|
|
212
|
+
opacity: 0.6;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
&-no-outline {
|
|
216
|
+
&,
|
|
217
|
+
&:disabled {
|
|
218
|
+
box-shadow: none;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
&:disabled {
|
|
222
|
+
opacity: 0.6;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
@use "sass:math";
|
|
2
|
+
|
|
3
|
+
/// Ajoute un style d'outline personnalisé lors du focus clavier (`:focus-visible`).
|
|
4
|
+
@mixin set-focus() {
|
|
5
|
+
outline: {
|
|
6
|
+
color: #0a76f6;
|
|
7
|
+
offset: 2px;
|
|
8
|
+
style: solid;
|
|
9
|
+
width: 2px;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// Réinitialise le style de base d'un bouton pour supprimer les styles par défaut du navigateur.
|
|
14
|
+
@mixin reset-bouton() {
|
|
15
|
+
background-color: transparent;
|
|
16
|
+
font-family: inherit;
|
|
17
|
+
appearance: none;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/// Mixin pour cacher visuellement un élément tout en le gardant accessible aux lecteurs d'écran.
|
|
22
|
+
///
|
|
23
|
+
/// @author [WCAG 2.2 Technique C7](https://www.w3.org/WAI/WCAG22/Techniques/css/C7)
|
|
24
|
+
///
|
|
25
|
+
@mixin visually-hidden() {
|
|
26
|
+
clip-path: inset(100%);
|
|
27
|
+
clip: rect(1px, 1px, 1px, 1px);
|
|
28
|
+
height: 1px;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
position: absolute;
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
padding: 0;
|
|
33
|
+
width: 1px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/// Applique un rayon de bordure personnalisable via une variable CSS avec une valeur par défaut.
|
|
37
|
+
///
|
|
38
|
+
/// @param {Number} $radius [0] - La valeur par défaut du rayon de bordure en cas où la variable CSS `--lab-border-radius` n'est pas définie.
|
|
39
|
+
///
|
|
40
|
+
@mixin set-border-radius($radius: 0) {
|
|
41
|
+
border-radius: var(--lab-border-radius, #{$radius});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// Convertit une valeur en pixels en unité rem.
|
|
45
|
+
///
|
|
46
|
+
/// @param {Number} $size - La valeur en pixels à convertir en rem.
|
|
47
|
+
/// @return {Number} La valeur convertie en rem (basée sur une taille de base de 16px).
|
|
48
|
+
///
|
|
49
|
+
@function rem($size) {
|
|
50
|
+
@return math.div($size, 16px) * 1rem;
|
|
51
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le fichier `commun.ts` contient des types communs partagés entre plusieurs composants d'un même "scope".
|
|
3
|
+
* Ces `types` peuvent être utilisés pour assurer la cohérence et la réutilisabilité au sein de ce scope.
|
|
4
|
+
*/
|
|
5
|
+
import type { Image } from "./global";
|
|
6
|
+
export type Action = {
|
|
7
|
+
titre: string;
|
|
8
|
+
lien: string;
|
|
9
|
+
target?: "_self" | "_blank" | "_parent" | "_top";
|
|
10
|
+
};
|
|
11
|
+
export type Tuiles = {
|
|
12
|
+
titre: string;
|
|
13
|
+
contenu?: string;
|
|
14
|
+
illustration?: Image;
|
|
15
|
+
}[];
|
|
16
|
+
export type EtapeMarelle = {
|
|
17
|
+
titre: string;
|
|
18
|
+
description: string;
|
|
19
|
+
lien?: {
|
|
20
|
+
href: string;
|
|
21
|
+
texte: string;
|
|
22
|
+
target: "_self" | "_blank" | "_parent" | "_top";
|
|
23
|
+
};
|
|
24
|
+
illustration: Image;
|
|
25
|
+
};
|
|
26
|
+
export type Temoignage = {
|
|
27
|
+
auteur: string;
|
|
28
|
+
citation: string;
|
|
29
|
+
source: string;
|
|
30
|
+
};
|
|
31
|
+
export type Lien = {
|
|
32
|
+
label: string;
|
|
33
|
+
href: string;
|
|
34
|
+
};
|
|
35
|
+
type Feuille = {
|
|
36
|
+
label: string;
|
|
37
|
+
};
|
|
38
|
+
export type NoeudFilAriane = Lien | Feuille;
|
|
39
|
+
export type InfosTag = {
|
|
40
|
+
label: string;
|
|
41
|
+
couleurTexte: string;
|
|
42
|
+
couleurFond: string;
|
|
43
|
+
};
|
|
44
|
+
export type TableDesMatieres = {
|
|
45
|
+
profondeur: number;
|
|
46
|
+
texte: string;
|
|
47
|
+
id: string;
|
|
48
|
+
}[];
|
|
49
|
+
export type ResumeArticle = {
|
|
50
|
+
idCategorie: string;
|
|
51
|
+
titre: string;
|
|
52
|
+
href: string;
|
|
53
|
+
};
|
|
54
|
+
export type CategoriesArticle = Record<string, InfosTag>;
|
|
55
|
+
export type Kind = "primary" | "secondary" | "tertiary" | "tertiary-no-outline" | "inverted-primary" | "inverted-secondary" | "inverted-tertiary" | "inverted-tertiary-no-outline";
|
|
56
|
+
export type TranslateLanguage = {
|
|
57
|
+
active: boolean;
|
|
58
|
+
id: string;
|
|
59
|
+
name: string;
|
|
60
|
+
locale: string;
|
|
61
|
+
href: string;
|
|
62
|
+
};
|
|
63
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le fichier `global.ts` contient les `types` globaux utilisés dans l'application.
|
|
3
|
+
* Il regroupe les `types` pouvant être utilisés par l'ensemble des éléments de l'application (DSFR & LAB).
|
|
4
|
+
* Ces `types` peuvent être étendus, modifiés ou être combinés pour créer des `types` plus complexes selon les besoins de l'application.
|
|
5
|
+
*
|
|
6
|
+
* > [!NOTE] : Les `types` définis ici respectent les conventions de nommage propre au contexte qui ont engendrés leurs créations.
|
|
7
|
+
* > Cela signifie que les `types` en provenance du DSFR sont nommés selon les conventions du DSFR et il est en de même pour les `types` en provenance du LAB.
|
|
8
|
+
*/
|
|
9
|
+
export type Accent = "défaut" | "green-tilleul-verveine" | "green-bourgeon" | "green-emeraude" | "green-menthe" | "green-archipel" | "blue-ecume" | "blue-cumulus" | "purple-glycine" | "pink-macaron" | "pink-tuile" | "yellow-tournesol" | "yellow-moutarde" | "orange-terre-battue" | "brown-cafe-creme" | "brown-caramel" | "brown-opera" | "beige-gris-galet";
|
|
10
|
+
export type iconPlace = "only" | "left" | "right";
|
|
11
|
+
export type Size = "sm" | "md" | "lg" | "xl";
|
|
12
|
+
export type Status = "success" | "warning" | "error" | "info" | "new";
|
|
13
|
+
export type TextSize = "xs" | "sm" | "md" | "lg" | "xl" | "lead";
|
|
14
|
+
export type TextWeight = "light" | "regular" | "bold" | "heavy";
|
|
15
|
+
export type Target = "self" | "blank";
|
|
16
|
+
export type Image = {
|
|
17
|
+
lien: string;
|
|
18
|
+
alt: string;
|
|
19
|
+
};
|
|
20
|
+
export type Video = {
|
|
21
|
+
source: string;
|
|
22
|
+
sourcesoustitres?: string;
|
|
23
|
+
imagedecouverture?: string;
|
|
24
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Le fichier `global.ts` contient les `types` globaux utilisés dans l'application.
|
|
3
|
+
* Il regroupe les `types` pouvant être utilisés par l'ensemble des éléments de l'application (DSFR & LAB).
|
|
4
|
+
* Ces `types` peuvent être étendus, modifiés ou être combinés pour créer des `types` plus complexes selon les besoins de l'application.
|
|
5
|
+
*
|
|
6
|
+
* > [!NOTE] : Les `types` définis ici respectent les conventions de nommage propre au contexte qui ont engendrés leurs créations.
|
|
7
|
+
* > Cela signifie que les `types` en provenance du DSFR sont nommés selon les conventions du DSFR et il est en de même pour les `types` en provenance du LAB.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|