@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,657 @@
1
+ <svelte:options
2
+ customElement={{
3
+ tag: "dsfr-breadcrumb",
4
+ props: {
5
+ id: { attribute: "id", type: "String" },
6
+ segments: { attribute: "segments", type: "Array" },
7
+ buttonAriaLabel: { attribute: "button-aria-label", type: "String" },
8
+ buttonLabel: { attribute: "button-label", type: "String" },
9
+ markup: { attribute: "markup", type: "String" },
10
+ inverse: { attribute: "inverse", type: "Boolean" },
11
+ hasMarginVariant: { attribute: "has-margin-variant", type: "Boolean" },
12
+ },
13
+ }}
14
+ />
15
+
16
+ <script lang="ts">let { id, segments = [], markup = "a", buttonAriaLabel, buttonLabel, inverse, hasMarginVariant } = $props();
17
+ let isExpanded = $state(false);
18
+ function isLastItem(index) {
19
+ return index === segments.length - 1;
20
+ }
21
+ </script>
22
+
23
+ <nav
24
+ role="navigation"
25
+ class={[
26
+ "fr-breadcrumb",
27
+ { "fr-breadcrumb--inverse": inverse, "fr-breadcrumb--margin": hasMarginVariant },
28
+ ]}
29
+ aria-label={buttonAriaLabel}
30
+ >
31
+ <button
32
+ type="button"
33
+ class="fr-breadcrumb__button"
34
+ aria-expanded={isExpanded}
35
+ aria-controls={id}
36
+ onclick={() => (isExpanded = !isExpanded)}
37
+ >
38
+ {buttonLabel}
39
+ </button>
40
+ <div {id} class={["fr-collapse", { "fr-collapse--expanded": isExpanded }]}>
41
+ <ol class="fr-breadcrumb__list">
42
+ {#each segments as segment, index (segment.id)}
43
+ <li>
44
+ <svelte:element
45
+ this={markup === "button" ? "button" : "a"}
46
+ class="fr-breadcrumb__link"
47
+ id={segment.id}
48
+ type={markup === "button" ? "button" : undefined}
49
+ href={markup === "a" && !isLastItem(index) ? segment.href : undefined}
50
+ aria-current={isLastItem(index) ? "page" : undefined}
51
+ >
52
+ {segment.label}
53
+ </svelte:element>
54
+ </li>
55
+ {/each}
56
+ </ol>
57
+ </div>
58
+ </nav>
59
+
60
+ <style>@charset "UTF-8";
61
+ button {
62
+ -webkit-appearance: none;
63
+ -moz-appearance: none;
64
+ appearance: none;
65
+ border: none;
66
+ margin: 0;
67
+ color: inherit;
68
+ background-color: transparent;
69
+ font-family: inherit;
70
+ font-size: inherit;
71
+ }
72
+ @media (-ms-high-contrast: active), (forced-colors: active) {
73
+ button {
74
+ color: buttontext;
75
+ }
76
+ }
77
+
78
+ @media (-ms-high-contrast: active), (forced-colors: active) {
79
+ button:disabled {
80
+ color: graytext;
81
+ }
82
+ }
83
+
84
+ a {
85
+ text-decoration: var(--text-decoration);
86
+ color: inherit;
87
+ }
88
+ @media (-ms-high-contrast: active), (forced-colors: active) {
89
+ a:not([href]) {
90
+ color: graytext;
91
+ }
92
+ }
93
+
94
+ :root {
95
+ --underline-max-width: 100%;
96
+ --underline-hover-width: 0;
97
+ --underline-idle-width: var(--underline-max-width);
98
+ --underline-x: calc(var(--underline-max-width) * 0);
99
+ --underline-thickness: 0.0625em;
100
+ --underline-img: linear-gradient(0deg, currentColor, currentColor);
101
+ --external-link-content: '';
102
+ --text-decoration: none;
103
+ }
104
+
105
+ [href] {
106
+ background-image: var(--underline-img), var(--underline-img);
107
+ background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));
108
+ background-repeat: no-repeat, no-repeat;
109
+ transition: background-size 0s;
110
+ background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);
111
+ }
112
+ @media (-ms-high-contrast: active), (forced-colors: active) {
113
+ [href], [href]:visited {
114
+ color: linktext;
115
+ }
116
+ }
117
+
118
+ [target=_blank]::after {
119
+ flex: 0 0 auto;
120
+ display: inline-block;
121
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
122
+ background-color: currentColor;
123
+ width: var(--icon-size);
124
+ height: var(--icon-size);
125
+ -webkit-mask-size: 100% 100%;
126
+ mask-size: 100% 100%;
127
+ }
128
+ [target=_blank]::after {
129
+ --icon-size: 1rem;
130
+ }
131
+ [target=_blank]::after {
132
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
133
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
134
+ }
135
+ @media (-ms-high-contrast: active), (forced-colors: active) {
136
+ [target=_blank]::after {
137
+ forced-color-adjust: none;
138
+ background-color: linktext;
139
+ }
140
+ }
141
+ [target=_blank]::after {
142
+ content: var(--external-link-content);
143
+ margin-left: 0.25rem;
144
+ }
145
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
146
+ flex: 0 0 auto;
147
+ display: inline-block;
148
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
149
+ background-color: currentColor;
150
+ width: var(--icon-size);
151
+ height: var(--icon-size);
152
+ -webkit-mask-size: 100% 100%;
153
+ mask-size: 100% 100%;
154
+ }
155
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
156
+ --icon-size: 1rem;
157
+ }
158
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
159
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
160
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/system/external-link-line.svg");
161
+ }
162
+ @media (-ms-high-contrast: active), (forced-colors: active) {
163
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
164
+ forced-color-adjust: none;
165
+ background-color: linktext;
166
+ }
167
+ }
168
+ [target=_blank][class^=fr-icon-]::after, [target=_blank][class*=" fr-icon-"]::after, [target=_blank][class^=fr-fi-]::after, [target=_blank][class*=" fr-fi-"]::after {
169
+ content: var(--external-link-content);
170
+ margin-left: 0.25rem;
171
+ }
172
+
173
+ form[target=_blank]::after {
174
+ content: none;
175
+ }
176
+
177
+ .fr-raw-link {
178
+ --text-decoration: none;
179
+ }
180
+ .fr-raw-link[href],
181
+ .fr-raw-link [href] {
182
+ --underline-img: none;
183
+ --external-link-content: none;
184
+ }
185
+
186
+ .fr-reset-link {
187
+ --text-decoration: underline;
188
+ }
189
+ .fr-reset-link[href],
190
+ .fr-reset-link [href] {
191
+ --underline-img: none;
192
+ text-underline-offset: 2px;
193
+ }
194
+
195
+ input[type=range]:focus::-webkit-slider-thumb {
196
+ outline-offset: 2px;
197
+ outline-width: 2px;
198
+ outline-color: #0a76f6;
199
+ }
200
+
201
+ input[type=range]:focus::-moz-range-thumb {
202
+ outline-offset: 2px;
203
+ outline-width: 2px;
204
+ outline-color: #0a76f6;
205
+ }
206
+
207
+ input[type=range]:focus::-ms-thumb {
208
+ outline-offset: 2px;
209
+ outline-width: 2px;
210
+ outline-color: #0a76f6;
211
+ }
212
+
213
+ 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 {
214
+ outline-offset: 2px;
215
+ outline-width: 2px;
216
+ outline-color: #0a76f6;
217
+ }
218
+
219
+ input[type=range]:focus::-webkit-slider-thumb {
220
+ outline-style: solid;
221
+ }
222
+
223
+ input[type=range]:focus::-moz-range-thumb {
224
+ outline-style: solid;
225
+ }
226
+
227
+ input[type=range]:focus::-ms-thumb {
228
+ outline-style: solid;
229
+ }
230
+
231
+ 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 {
232
+ outline-style: solid;
233
+ }
234
+
235
+ input[type=range]:focus:not(:focus-visible)::-webkit-slider-thumb {
236
+ outline-style: none;
237
+ }
238
+
239
+ input[type=range]:focus:not(:focus-visible)::-moz-range-thumb {
240
+ outline-style: none;
241
+ }
242
+
243
+ input[type=range]:focus:not(:focus-visible)::-ms-thumb {
244
+ outline-style: none;
245
+ }
246
+
247
+ 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) {
248
+ outline-style: none;
249
+ }
250
+
251
+ input[type=range]:focus-visible::-webkit-slider-thumb {
252
+ outline-style: solid;
253
+ }
254
+
255
+ input[type=range]:focus-visible::-moz-range-thumb {
256
+ outline-style: solid;
257
+ }
258
+
259
+ input[type=range]:focus-visible::-ms-thumb {
260
+ outline-style: solid;
261
+ }
262
+
263
+ 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 {
264
+ outline-style: solid;
265
+ }
266
+
267
+ @media (hover: hover) and (pointer: fine) {
268
+ :root {
269
+ --brighten: -1;
270
+ }
271
+ 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 {
272
+ background-color: var(--hover-tint);
273
+ }
274
+ 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 {
275
+ background-color: var(--active-tint);
276
+ }
277
+ a[href]:hover, a[href]:active {
278
+ --underline-hover-width: var(--underline-max-width);
279
+ }
280
+ }
281
+ button, input[type=button], input[type=image], input[type=reset], input[type=submit] {
282
+ --hover-tint: var(--hover);
283
+ --active-tint: var(--active);
284
+ }
285
+
286
+ a {
287
+ --hover-tint: var(--idle);
288
+ --active-tint: var(--active);
289
+ }
290
+
291
+ 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 {
292
+ cursor: pointer;
293
+ }
294
+
295
+ input[type=range]:disabled::-webkit-slider-thumb, input[type=range]:disabled::-webkit-slider-thumb:active {
296
+ cursor: not-allowed;
297
+ }
298
+
299
+ input[type=range]:disabled::-moz-range-thumb, input[type=range]:disabled::-moz-range-thumb:active {
300
+ cursor: not-allowed;
301
+ }
302
+
303
+ input[type=range]:disabled::-ms-thumb, input[type=range]:disabled::-ms-thumb:active {
304
+ cursor: not-allowed;
305
+ }
306
+
307
+ 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] {
308
+ cursor: not-allowed;
309
+ }
310
+
311
+ input[type=range]::-webkit-slider-thumb {
312
+ cursor: grab;
313
+ }
314
+
315
+ input[type=range]::-moz-range-thumb {
316
+ cursor: grab;
317
+ }
318
+
319
+ input[type=range]::-ms-thumb {
320
+ cursor: grab;
321
+ }
322
+
323
+ input[type=range]::-webkit-slider-thumb:active {
324
+ cursor: grabbing;
325
+ }
326
+
327
+ input[type=range]::-moz-range-thumb:active {
328
+ cursor: grabbing;
329
+ }
330
+
331
+ input[type=range]::-ms-thumb:active {
332
+ cursor: grabbing;
333
+ }
334
+
335
+ :root {
336
+ --ul-type: disc;
337
+ --ol-type: decimal;
338
+ --ul-start: 1rem;
339
+ --ol-start: 1.5rem;
340
+ --xl-block: 0.5rem;
341
+ --li-bottom: 0.25rem;
342
+ --xl-base: 1em;
343
+ --ol-content: counters(li-counter, ".") ".\00a0\00a0";
344
+ }
345
+
346
+ ul,
347
+ ol,
348
+ dl {
349
+ margin: 0;
350
+ padding: 0;
351
+ margin-block-start: var(--xl-block);
352
+ margin-block-end: var(--xl-block);
353
+ --xl-size: var(--xl-base);
354
+ }
355
+
356
+ ul {
357
+ list-style-type: var(--ul-type);
358
+ padding-inline-start: var(--ul-start);
359
+ }
360
+ ul > li::marker {
361
+ font-size: calc(var(--xl-size) * 0.9);
362
+ }
363
+ @media (-ms-high-contrast: active), (forced-colors: active) {
364
+ ul > li::marker {
365
+ color: graytext;
366
+ }
367
+ }
368
+
369
+ ol {
370
+ list-style-type: var(--ol-type);
371
+ padding-inline-start: var(--ol-start);
372
+ counter-reset: li-counter;
373
+ }
374
+ ol > li {
375
+ counter-increment: li-counter;
376
+ }
377
+ ol > li::marker {
378
+ content: var(--ol-content);
379
+ font-size: var(--xl-size);
380
+ font-weight: bold;
381
+ }
382
+
383
+ dl,
384
+ dd {
385
+ margin: 0;
386
+ padding-inline-start: var(--ul-start);
387
+ }
388
+
389
+ li,
390
+ dd,
391
+ dt {
392
+ --xl-base: calc(var(--xl-size) * 0.9);
393
+ padding-bottom: var(--li-bottom);
394
+ }
395
+
396
+ .fr-raw-list {
397
+ --ul-type: none;
398
+ --ol-type: none;
399
+ --ul-start: 0;
400
+ --ol-start: 0;
401
+ --xl-block: 0;
402
+ --li-bottom: 0;
403
+ --ol-content: none;
404
+ }
405
+
406
+ .fr-list {
407
+ --ul-type: disc;
408
+ --ol-type: decimal;
409
+ --ul-start: 1rem;
410
+ --ol-start: 1.5rem;
411
+ --xl-block: 0.5rem;
412
+ --li-bottom: 0.25rem;
413
+ --xl-base: 1em;
414
+ --ol-content: counters(li-counter, ".") ".\00a0\00a0";
415
+ }
416
+
417
+ .fr-collapse {
418
+ --collapse: -99999px;
419
+ --collapser: '';
420
+ --collapse-max-height: none;
421
+ overflow: hidden;
422
+ transition: visibility 0.3s;
423
+ max-height: var(--collapse-max-height);
424
+ }
425
+ .fr-collapse--expanded {
426
+ overflow-x: hidden;
427
+ overflow-y: auto;
428
+ }
429
+ @media (prefers-reduced-motion: reduce) {
430
+ .fr-collapse {
431
+ transition: none;
432
+ }
433
+ }
434
+ .fr-collapse::before {
435
+ display: block;
436
+ content: "";
437
+ content: var(--collapser);
438
+ transition: margin-top 0.3s;
439
+ margin-top: 0;
440
+ }
441
+ @media (prefers-reduced-motion: reduce) {
442
+ .fr-collapse::before {
443
+ transition: none;
444
+ }
445
+ }
446
+ .fr-collapse:not(.fr-collapse--expanded):not(.fr-collapsing) {
447
+ --collapse-max-height: 0;
448
+ }
449
+ .fr-collapse:not(.fr-collapse--expanded) {
450
+ visibility: hidden;
451
+ }
452
+ .fr-collapse:not(.fr-collapse--expanded)::before {
453
+ margin-top: -99999px;
454
+ margin-top: var(--collapse);
455
+ }
456
+
457
+ /* ¯¯¯¯¯¯¯¯¯ *\
458
+ BREADCRUMB
459
+ \* ˍˍˍˍˍˍˍˍˍ */
460
+ @media (min-width: 36em) {
461
+ /*! media sm */
462
+ }
463
+ @media (min-width: 48em) {
464
+ /*! media md */
465
+ }
466
+ @media (min-width: 62em) {
467
+ /*! media lg */
468
+ }
469
+ @media (min-width: 78em) {
470
+ /*! media xl */
471
+ }
472
+ /**
473
+ un padding de 4px et une marge négative en compensation sont mis en place afin d'éviter de couper le focus.
474
+ */
475
+ .fr-breadcrumb {
476
+ margin: 1rem 0 2rem;
477
+ }
478
+ @media (min-width: 48em) {
479
+ .fr-breadcrumb {
480
+ margin-bottom: 2.5rem;
481
+ }
482
+ }
483
+ .fr-breadcrumb {
484
+ font-size: 0.75rem;
485
+ line-height: 1.25rem;
486
+ --text-spacing: 0 0 0.5rem;
487
+ position: relative;
488
+ }
489
+ .fr-breadcrumb__button {
490
+ background-image: var(--underline-img), var(--underline-img);
491
+ background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));
492
+ background-repeat: no-repeat, no-repeat;
493
+ transition: background-size 0s;
494
+ background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);
495
+ font-size: 0.75rem;
496
+ line-height: 1.25rem;
497
+ margin: 0;
498
+ padding: 0;
499
+ --hover-tint: var(--idle);
500
+ --active-tint: var(--idle);
501
+ }
502
+ .fr-breadcrumb__button:hover, .fr-breadcrumb__button:active {
503
+ --underline-hover-width: var(--underline-max-width);
504
+ }
505
+ .fr-breadcrumb__button {
506
+ color: inherit;
507
+ }
508
+ .fr-breadcrumb__button[aria-expanded=true] {
509
+ display: none;
510
+ }
511
+ @media (min-width: 48em) {
512
+ .fr-breadcrumb__button {
513
+ display: none;
514
+ }
515
+ }
516
+ .fr-breadcrumb .fr-collapse {
517
+ margin-left: -4px;
518
+ margin-right: -4px;
519
+ padding-left: 4px;
520
+ padding-right: 4px;
521
+ transform: translateY(-4px);
522
+ }
523
+ @media (min-width: 48em) {
524
+ .fr-breadcrumb .fr-collapse {
525
+ margin-left: 0;
526
+ margin-right: 0;
527
+ padding-left: 0;
528
+ padding-right: 0;
529
+ transform: none;
530
+ visibility: inherit;
531
+ overflow: visible;
532
+ max-height: none;
533
+ }
534
+ .fr-breadcrumb .fr-collapse::before {
535
+ content: none;
536
+ }
537
+ }
538
+ .fr-breadcrumb__list {
539
+ --ul-type: none;
540
+ --ol-type: none;
541
+ --ul-start: 0;
542
+ --ol-start: 0;
543
+ --xl-block: 0;
544
+ --li-bottom: 0;
545
+ --ol-content: none;
546
+ transform: translateY(4px);
547
+ }
548
+ @media (min-width: 48em) {
549
+ .fr-breadcrumb__list {
550
+ transform: none;
551
+ }
552
+ }
553
+ .fr-breadcrumb__list li {
554
+ display: inline;
555
+ line-height: 1.75rem;
556
+ /**
557
+ * flèche séparatrice en font-icon
558
+ */
559
+ }
560
+ @media (-ms-high-contrast: active), (forced-colors: active) {
561
+ .fr-breadcrumb__list li:not(:first-child)::before {
562
+ forced-color-adjust: none;
563
+ background-color: canvastext;
564
+ }
565
+ }
566
+ .fr-breadcrumb__list li:not(:first-child)::before {
567
+ flex: 0 0 auto;
568
+ display: inline-block;
569
+ vertical-align: calc((0.75em - var(--icon-size)) * 0.5);
570
+ background-color: currentColor;
571
+ width: var(--icon-size);
572
+ height: var(--icon-size);
573
+ -webkit-mask-size: 100% 100%;
574
+ mask-size: 100% 100%;
575
+ }
576
+ .fr-breadcrumb__list li:not(:first-child)::before {
577
+ -webkit-mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/arrows/arrow-right-s-line.svg");
578
+ mask-image: url("https://lab-anssi-ui-kit-prod-s3-assets.cellar-c2.services.clever-cloud.com/icones/dsfr/arrows/arrow-right-s-line.svg");
579
+ }
580
+ .fr-breadcrumb__list li:not(:first-child)::before {
581
+ --icon-size: 1rem;
582
+ }
583
+ .fr-breadcrumb__list li:not(:first-child)::before {
584
+ content: "";
585
+ margin-left: 0.25rem;
586
+ margin-right: 0.25rem;
587
+ vertical-align: -0.0625em;
588
+ }
589
+ .fr-breadcrumb__link {
590
+ vertical-align: 0.25rem;
591
+ position: relative;
592
+ background-image: var(--underline-img), var(--underline-img);
593
+ background-position: var(--underline-x) 100%, var(--underline-x) calc(100% - var(--underline-thickness));
594
+ background-repeat: no-repeat, no-repeat;
595
+ transition: background-size 0s;
596
+ background-size: var(--underline-hover-width) calc(var(--underline-thickness) * 2), var(--underline-idle-width) var(--underline-thickness);
597
+ --hover-tint: var(--idle);
598
+ --active-tint: var(--idle);
599
+ font-size: 0.75rem;
600
+ line-height: 1.25rem;
601
+ }
602
+ .fr-breadcrumb__link:hover, .fr-breadcrumb__link:active {
603
+ --underline-hover-width: var(--underline-max-width);
604
+ }
605
+ .fr-breadcrumb__link {
606
+ padding: 0;
607
+ }
608
+ @media (-ms-high-contrast: active), (forced-colors: active) {
609
+ .fr-breadcrumb__link {
610
+ text-decoration: underline;
611
+ text-underline-offset: 5px;
612
+ }
613
+ }
614
+ .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
615
+ pointer-events: none;
616
+ cursor: default;
617
+ --underline-img: none;
618
+ }
619
+ @media (-ms-high-contrast: active), (forced-colors: active) {
620
+ .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
621
+ text-decoration: none;
622
+ }
623
+ }
624
+
625
+ .fr-breadcrumb {
626
+ color: var(--text-mention-grey);
627
+ }
628
+ .fr-breadcrumb__link[aria-current]:not([aria-current=false]) {
629
+ color: var(--text-default-grey);
630
+ }
631
+
632
+ :host {
633
+ display: block;
634
+ text-rendering: optimizeLegibility;
635
+ -webkit-font-smoothing: antialiased;
636
+ -moz-osx-font-smoothing: grayscale;
637
+ -webkit-text-size-adjust: 100%;
638
+ font-size: 1rem;
639
+ line-height: 1.5rem;
640
+ background-color: var(--background-default-grey);
641
+ --idle: transparent;
642
+ --hover: var(--background-default-grey-hover);
643
+ --active: var(--background-default-grey-active);
644
+ color: var(--text-default-grey);
645
+ background-color: transparent;
646
+ }
647
+
648
+ .fr-breadcrumb {
649
+ box-sizing: border-box;
650
+ }
651
+ .fr-breadcrumb--inverse {
652
+ --text-mention-grey: var(--grey-1000-50);
653
+ --text-default-grey: var(--grey-1000-50);
654
+ }
655
+ .fr-breadcrumb--margin {
656
+ margin: var(--dsfr-breadcrumb-margin, initial);
657
+ }</style>
@@ -0,0 +1,25 @@
1
+ type Segment = {
2
+ id: string;
3
+ label: string;
4
+ href: string;
5
+ };
6
+ type Markup = "a" | "button";
7
+ interface Props {
8
+ /** Attribut 'id' du collapse du fil d'arianne */
9
+ id: string;
10
+ /** Liste des segments du fil d'arianne */
11
+ segments: Segment[];
12
+ /** Attribut 'aria-label' du bouton déclencheur */
13
+ buttonAriaLabel: string;
14
+ /** Texte du bouton déclencheur */
15
+ buttonLabel: string;
16
+ /** Variation inverse */
17
+ inverse?: boolean;
18
+ /** Tag html des boutons (default: a) */
19
+ markup?: Markup;
20
+ /** Si vrai, applique la possibilité de personnaliser les marges à l'aide d'une custom property */
21
+ hasMarginVariant?: boolean;
22
+ }
23
+ declare const DsfrBreadcrumb: import("svelte").Component<Props, {}, "">;
24
+ type DsfrBreadcrumb = ReturnType<typeof DsfrBreadcrumb>;
25
+ export default DsfrBreadcrumb;