@gouvfr/dsfr 1.5.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (754) hide show
  1. package/.config/config.js +1 -1
  2. package/.config/config.json +43 -38
  3. package/.config/icon.json +1 -1
  4. package/.config/icon.scss +2 -4
  5. package/dist/component/accordion/accordion.css +1 -1
  6. package/dist/component/accordion/accordion.legacy.css +1 -1
  7. package/dist/component/accordion/accordion.legacy.min.css +1 -1
  8. package/dist/component/accordion/accordion.main.css +1 -1
  9. package/dist/component/accordion/accordion.main.min.css +1 -1
  10. package/dist/component/accordion/accordion.min.css +1 -1
  11. package/dist/component/accordion/accordion.module.js +2 -2
  12. package/dist/component/accordion/accordion.module.js.map +1 -1
  13. package/dist/component/accordion/accordion.module.min.js +1 -1
  14. package/dist/component/accordion/accordion.module.min.js.map +1 -1
  15. package/dist/component/accordion/accordion.nomodule.js +2 -2
  16. package/dist/component/accordion/accordion.nomodule.js.map +1 -1
  17. package/dist/component/accordion/accordion.nomodule.min.js +1 -1
  18. package/dist/component/accordion/accordion.nomodule.min.js.map +1 -1
  19. package/dist/component/alert/alert.css +1 -1
  20. package/dist/component/alert/alert.legacy.css +1 -1
  21. package/dist/component/alert/alert.legacy.min.css +1 -1
  22. package/dist/component/alert/alert.main.css +1 -1
  23. package/dist/component/alert/alert.main.min.css +1 -1
  24. package/dist/component/alert/alert.min.css +1 -1
  25. package/dist/component/badge/badge.css +1 -1
  26. package/dist/component/badge/badge.legacy.css +1 -1
  27. package/dist/component/badge/badge.legacy.min.css +1 -1
  28. package/dist/component/badge/badge.main.css +1 -1
  29. package/dist/component/badge/badge.main.min.css +1 -1
  30. package/dist/component/badge/badge.min.css +1 -1
  31. package/dist/component/breadcrumb/breadcrumb.css +1 -1
  32. package/dist/component/breadcrumb/breadcrumb.legacy.css +1 -1
  33. package/dist/component/breadcrumb/breadcrumb.legacy.min.css +1 -1
  34. package/dist/component/breadcrumb/breadcrumb.main.css +1 -1
  35. package/dist/component/breadcrumb/breadcrumb.main.min.css +1 -1
  36. package/dist/component/breadcrumb/breadcrumb.min.css +1 -1
  37. package/dist/component/breadcrumb/breadcrumb.module.js +2 -2
  38. package/dist/component/breadcrumb/breadcrumb.module.js.map +1 -1
  39. package/dist/component/breadcrumb/breadcrumb.module.min.js +1 -1
  40. package/dist/component/breadcrumb/breadcrumb.module.min.js.map +1 -1
  41. package/dist/component/breadcrumb/breadcrumb.nomodule.js +2 -2
  42. package/dist/component/breadcrumb/breadcrumb.nomodule.js.map +1 -1
  43. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js +1 -1
  44. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js.map +1 -1
  45. package/dist/component/button/button.css +1 -1
  46. package/dist/component/button/button.legacy.css +1 -1
  47. package/dist/component/button/button.legacy.min.css +1 -1
  48. package/dist/component/button/button.main.css +1 -1
  49. package/dist/component/button/button.main.min.css +1 -1
  50. package/dist/component/button/button.min.css +1 -1
  51. package/dist/component/button/button.module.js +2 -2
  52. package/dist/component/button/button.module.js.map +1 -1
  53. package/dist/component/button/button.module.min.js +1 -1
  54. package/dist/component/button/button.module.min.js.map +1 -1
  55. package/dist/component/button/button.nomodule.js +2 -2
  56. package/dist/component/button/button.nomodule.js.map +1 -1
  57. package/dist/component/button/button.nomodule.min.js +1 -1
  58. package/dist/component/button/button.nomodule.min.js.map +1 -1
  59. package/dist/component/callout/callout.css +1 -1
  60. package/dist/component/callout/callout.legacy.css +1 -1
  61. package/dist/component/callout/callout.legacy.min.css +1 -1
  62. package/dist/component/callout/callout.main.css +1 -1
  63. package/dist/component/callout/callout.main.min.css +1 -1
  64. package/dist/component/callout/callout.min.css +1 -1
  65. package/dist/component/card/card.css +1 -1
  66. package/dist/component/card/card.legacy.css +1 -1
  67. package/dist/component/card/card.legacy.min.css +1 -1
  68. package/dist/component/card/card.main.css +1 -1
  69. package/dist/component/card/card.main.min.css +1 -1
  70. package/dist/component/card/card.min.css +1 -1
  71. package/dist/component/checkbox/checkbox.css +1 -1
  72. package/dist/component/checkbox/checkbox.legacy.css +1 -1
  73. package/dist/component/checkbox/checkbox.legacy.min.css +1 -1
  74. package/dist/component/checkbox/checkbox.main.css +1 -1
  75. package/dist/component/checkbox/checkbox.main.min.css +1 -1
  76. package/dist/component/checkbox/checkbox.min.css +1 -1
  77. package/dist/component/component.css +1 -1
  78. package/dist/component/component.legacy.css +1 -1
  79. package/dist/component/component.legacy.min.css +1 -1
  80. package/dist/component/component.main.css +1 -1
  81. package/dist/component/component.main.min.css +1 -1
  82. package/dist/component/component.min.css +1 -1
  83. package/dist/component/component.module.js +11 -8
  84. package/dist/component/component.module.js.map +1 -1
  85. package/dist/component/component.module.min.js +2 -2
  86. package/dist/component/component.module.min.js.map +1 -1
  87. package/dist/component/component.nomodule.js +11 -8
  88. package/dist/component/component.nomodule.js.map +1 -1
  89. package/dist/component/component.nomodule.min.js +2 -2
  90. package/dist/component/component.nomodule.min.js.map +1 -1
  91. package/dist/component/connect/connect.css +1 -1
  92. package/dist/component/connect/connect.legacy.css +1 -1
  93. package/dist/component/connect/connect.legacy.min.css +1 -1
  94. package/dist/component/connect/connect.main.css +1 -1
  95. package/dist/component/connect/connect.main.min.css +1 -1
  96. package/dist/component/connect/connect.min.css +1 -1
  97. package/dist/component/consent/consent.css +1 -1
  98. package/dist/component/consent/consent.legacy.css +1 -1
  99. package/dist/component/consent/consent.legacy.min.css +1 -1
  100. package/dist/component/consent/consent.main.css +1 -1
  101. package/dist/component/consent/consent.main.min.css +1 -1
  102. package/dist/component/consent/consent.min.css +1 -1
  103. package/dist/component/content/content.css +1 -1
  104. package/dist/component/content/content.legacy.css +1 -1
  105. package/dist/component/content/content.legacy.min.css +1 -1
  106. package/dist/component/content/content.main.css +1 -1
  107. package/dist/component/content/content.main.min.css +1 -1
  108. package/dist/component/content/content.min.css +1 -1
  109. package/dist/component/display/display.module.js +2 -2
  110. package/dist/component/display/display.module.js.map +1 -1
  111. package/dist/component/display/display.module.min.js +1 -1
  112. package/dist/component/display/display.module.min.js.map +1 -1
  113. package/dist/component/display/display.nomodule.js +2 -2
  114. package/dist/component/display/display.nomodule.js.map +1 -1
  115. package/dist/component/display/display.nomodule.min.js +1 -1
  116. package/dist/component/display/display.nomodule.min.js.map +1 -1
  117. package/dist/component/download/download.css +1 -1
  118. package/dist/component/download/download.min.css +1 -1
  119. package/dist/component/download/download.module.js +11 -8
  120. package/dist/component/download/download.module.js.map +1 -1
  121. package/dist/component/download/download.module.min.js +2 -2
  122. package/dist/component/download/download.module.min.js.map +1 -1
  123. package/dist/component/download/download.nomodule.js +11 -8
  124. package/dist/component/download/download.nomodule.js.map +1 -1
  125. package/dist/component/download/download.nomodule.min.js +2 -2
  126. package/dist/component/download/download.nomodule.min.js.map +1 -1
  127. package/dist/component/follow/follow.css +1 -1
  128. package/dist/component/follow/follow.legacy.css +1 -1
  129. package/dist/component/follow/follow.legacy.min.css +1 -1
  130. package/dist/component/follow/follow.main.css +1 -1
  131. package/dist/component/follow/follow.main.min.css +1 -1
  132. package/dist/component/follow/follow.min.css +1 -1
  133. package/dist/component/footer/footer.css +1 -1
  134. package/dist/component/footer/footer.legacy.css +1 -1
  135. package/dist/component/footer/footer.legacy.min.css +1 -1
  136. package/dist/component/footer/footer.main.css +1 -1
  137. package/dist/component/footer/footer.main.min.css +1 -1
  138. package/dist/component/footer/footer.min.css +1 -1
  139. package/dist/component/form/form.css +1 -1
  140. package/dist/component/form/form.legacy.css +1 -1
  141. package/dist/component/form/form.legacy.min.css +1 -1
  142. package/dist/component/form/form.main.css +1 -1
  143. package/dist/component/form/form.main.min.css +1 -1
  144. package/dist/component/form/form.min.css +1 -1
  145. package/dist/component/header/header.css +1 -1
  146. package/dist/component/header/header.legacy.css +1 -1
  147. package/dist/component/header/header.legacy.min.css +1 -1
  148. package/dist/component/header/header.main.css +1 -1
  149. package/dist/component/header/header.main.min.css +1 -1
  150. package/dist/component/header/header.min.css +1 -1
  151. package/dist/component/header/header.module.js +2 -2
  152. package/dist/component/header/header.module.js.map +1 -1
  153. package/dist/component/header/header.module.min.js +1 -1
  154. package/dist/component/header/header.module.min.js.map +1 -1
  155. package/dist/component/header/header.nomodule.js +2 -2
  156. package/dist/component/header/header.nomodule.js.map +1 -1
  157. package/dist/component/header/header.nomodule.min.js +1 -1
  158. package/dist/component/header/header.nomodule.min.js.map +1 -1
  159. package/dist/component/highlight/highlight.css +1 -1
  160. package/dist/component/highlight/highlight.legacy.css +1 -1
  161. package/dist/component/highlight/highlight.legacy.min.css +1 -1
  162. package/dist/component/highlight/highlight.main.css +1 -1
  163. package/dist/component/highlight/highlight.main.min.css +1 -1
  164. package/dist/component/highlight/highlight.min.css +1 -1
  165. package/dist/component/input/input.css +1 -1
  166. package/dist/component/input/input.legacy.css +1 -1
  167. package/dist/component/input/input.legacy.min.css +1 -1
  168. package/dist/component/input/input.main.css +1 -1
  169. package/dist/component/input/input.main.min.css +1 -1
  170. package/dist/component/input/input.min.css +1 -1
  171. package/dist/component/link/link.css +1 -1
  172. package/dist/component/link/link.legacy.css +1 -1
  173. package/dist/component/link/link.legacy.min.css +1 -1
  174. package/dist/component/link/link.main.css +1 -1
  175. package/dist/component/link/link.main.min.css +1 -1
  176. package/dist/component/link/link.min.css +1 -1
  177. package/dist/component/logo/logo.css +1 -1
  178. package/dist/component/logo/logo.legacy.css +1 -1
  179. package/dist/component/logo/logo.legacy.min.css +1 -1
  180. package/dist/component/logo/logo.main.css +1 -1
  181. package/dist/component/logo/logo.main.min.css +1 -1
  182. package/dist/component/logo/logo.min.css +1 -1
  183. package/dist/component/modal/modal.css +1 -1
  184. package/dist/component/modal/modal.legacy.css +1 -1
  185. package/dist/component/modal/modal.legacy.min.css +1 -1
  186. package/dist/component/modal/modal.main.css +1 -1
  187. package/dist/component/modal/modal.main.min.css +1 -1
  188. package/dist/component/modal/modal.min.css +1 -1
  189. package/dist/component/modal/modal.module.js +2 -2
  190. package/dist/component/modal/modal.module.js.map +1 -1
  191. package/dist/component/modal/modal.module.min.js +1 -1
  192. package/dist/component/modal/modal.module.min.js.map +1 -1
  193. package/dist/component/modal/modal.nomodule.js +2 -2
  194. package/dist/component/modal/modal.nomodule.js.map +1 -1
  195. package/dist/component/modal/modal.nomodule.min.js +1 -1
  196. package/dist/component/modal/modal.nomodule.min.js.map +1 -1
  197. package/dist/component/navigation/navigation.css +1 -1
  198. package/dist/component/navigation/navigation.legacy.css +1 -1
  199. package/dist/component/navigation/navigation.legacy.min.css +1 -1
  200. package/dist/component/navigation/navigation.main.css +1 -1
  201. package/dist/component/navigation/navigation.main.min.css +1 -1
  202. package/dist/component/navigation/navigation.min.css +1 -1
  203. package/dist/component/navigation/navigation.module.js +2 -2
  204. package/dist/component/navigation/navigation.module.js.map +1 -1
  205. package/dist/component/navigation/navigation.module.min.js +1 -1
  206. package/dist/component/navigation/navigation.module.min.js.map +1 -1
  207. package/dist/component/navigation/navigation.nomodule.js +2 -2
  208. package/dist/component/navigation/navigation.nomodule.js.map +1 -1
  209. package/dist/component/navigation/navigation.nomodule.min.js +1 -1
  210. package/dist/component/navigation/navigation.nomodule.min.js.map +1 -1
  211. package/dist/component/pagination/pagination.css +1 -1
  212. package/dist/component/pagination/pagination.legacy.css +1 -1
  213. package/dist/component/pagination/pagination.legacy.min.css +1 -1
  214. package/dist/component/pagination/pagination.main.css +1 -1
  215. package/dist/component/pagination/pagination.main.min.css +1 -1
  216. package/dist/component/pagination/pagination.min.css +1 -1
  217. package/dist/component/quote/quote.css +1 -1
  218. package/dist/component/quote/quote.legacy.css +1 -1
  219. package/dist/component/quote/quote.legacy.min.css +1 -1
  220. package/dist/component/quote/quote.main.css +1 -1
  221. package/dist/component/quote/quote.main.min.css +1 -1
  222. package/dist/component/quote/quote.min.css +1 -1
  223. package/dist/component/radio/radio.css +1 -1
  224. package/dist/component/radio/radio.legacy.css +1 -1
  225. package/dist/component/radio/radio.legacy.min.css +1 -1
  226. package/dist/component/radio/radio.main.css +1 -1
  227. package/dist/component/radio/radio.main.min.css +1 -1
  228. package/dist/component/radio/radio.min.css +1 -1
  229. package/dist/component/search/search.css +1 -1
  230. package/dist/component/search/search.legacy.css +1 -1
  231. package/dist/component/search/search.legacy.min.css +1 -1
  232. package/dist/component/search/search.main.css +1 -1
  233. package/dist/component/search/search.main.min.css +1 -1
  234. package/dist/component/search/search.min.css +1 -1
  235. package/dist/component/select/select.css +1 -1
  236. package/dist/component/select/select.legacy.css +1 -1
  237. package/dist/component/select/select.legacy.min.css +1 -1
  238. package/dist/component/select/select.main.css +1 -1
  239. package/dist/component/select/select.main.min.css +1 -1
  240. package/dist/component/select/select.min.css +1 -1
  241. package/dist/component/share/share.css +1 -1
  242. package/dist/component/share/share.legacy.css +1 -1
  243. package/dist/component/share/share.legacy.min.css +1 -1
  244. package/dist/component/share/share.main.css +1 -1
  245. package/dist/component/share/share.main.min.css +1 -1
  246. package/dist/component/share/share.min.css +1 -1
  247. package/dist/component/sidemenu/sidemenu.css +1 -1
  248. package/dist/component/sidemenu/sidemenu.legacy.css +1 -1
  249. package/dist/component/sidemenu/sidemenu.legacy.min.css +1 -1
  250. package/dist/component/sidemenu/sidemenu.main.css +1 -1
  251. package/dist/component/sidemenu/sidemenu.main.min.css +1 -1
  252. package/dist/component/sidemenu/sidemenu.min.css +1 -1
  253. package/dist/component/sidemenu/sidemenu.module.js +2 -2
  254. package/dist/component/sidemenu/sidemenu.module.js.map +1 -1
  255. package/dist/component/sidemenu/sidemenu.module.min.js +1 -1
  256. package/dist/component/sidemenu/sidemenu.module.min.js.map +1 -1
  257. package/dist/component/sidemenu/sidemenu.nomodule.js +2 -2
  258. package/dist/component/sidemenu/sidemenu.nomodule.js.map +1 -1
  259. package/dist/component/sidemenu/sidemenu.nomodule.min.js +1 -1
  260. package/dist/component/sidemenu/sidemenu.nomodule.min.js.map +1 -1
  261. package/dist/component/skiplink/skiplink.css +1 -1
  262. package/dist/component/skiplink/skiplink.legacy.css +1 -1
  263. package/dist/component/skiplink/skiplink.legacy.min.css +1 -1
  264. package/dist/component/skiplink/skiplink.main.css +1 -1
  265. package/dist/component/skiplink/skiplink.main.min.css +1 -1
  266. package/dist/component/skiplink/skiplink.min.css +1 -1
  267. package/dist/component/summary/summary.css +1 -1
  268. package/dist/component/summary/summary.legacy.css +1 -1
  269. package/dist/component/summary/summary.legacy.min.css +1 -1
  270. package/dist/component/summary/summary.main.css +1 -1
  271. package/dist/component/summary/summary.main.min.css +1 -1
  272. package/dist/component/summary/summary.min.css +1 -1
  273. package/dist/component/tab/tab.css +1 -1
  274. package/dist/component/tab/tab.legacy.css +1 -1
  275. package/dist/component/tab/tab.legacy.min.css +1 -1
  276. package/dist/component/tab/tab.main.css +1 -1
  277. package/dist/component/tab/tab.main.min.css +1 -1
  278. package/dist/component/tab/tab.min.css +1 -1
  279. package/dist/component/tab/tab.module.js +2 -2
  280. package/dist/component/tab/tab.module.js.map +1 -1
  281. package/dist/component/tab/tab.module.min.js +1 -1
  282. package/dist/component/tab/tab.module.min.js.map +1 -1
  283. package/dist/component/tab/tab.nomodule.js +2 -2
  284. package/dist/component/tab/tab.nomodule.js.map +1 -1
  285. package/dist/component/tab/tab.nomodule.min.js +1 -1
  286. package/dist/component/tab/tab.nomodule.min.js.map +1 -1
  287. package/dist/component/table/table.css +1 -1
  288. package/dist/component/table/table.legacy.css +1 -1
  289. package/dist/component/table/table.legacy.min.css +1 -1
  290. package/dist/component/table/table.main.css +1 -1
  291. package/dist/component/table/table.main.min.css +1 -1
  292. package/dist/component/table/table.min.css +1 -1
  293. package/dist/component/table/table.module.js +2 -2
  294. package/dist/component/table/table.module.js.map +1 -1
  295. package/dist/component/table/table.module.min.js +1 -1
  296. package/dist/component/table/table.module.min.js.map +1 -1
  297. package/dist/component/table/table.nomodule.js +2 -2
  298. package/dist/component/table/table.nomodule.js.map +1 -1
  299. package/dist/component/table/table.nomodule.min.js +1 -1
  300. package/dist/component/table/table.nomodule.min.js.map +1 -1
  301. package/dist/component/tag/tag.css +1 -1
  302. package/dist/component/tag/tag.legacy.css +1 -1
  303. package/dist/component/tag/tag.legacy.min.css +1 -1
  304. package/dist/component/tag/tag.main.css +1 -1
  305. package/dist/component/tag/tag.main.min.css +1 -1
  306. package/dist/component/tag/tag.min.css +1 -1
  307. package/dist/component/tag/tag.module.js +2 -2
  308. package/dist/component/tag/tag.module.js.map +1 -1
  309. package/dist/component/tag/tag.module.min.js +1 -1
  310. package/dist/component/tag/tag.module.min.js.map +1 -1
  311. package/dist/component/tag/tag.nomodule.js +2 -2
  312. package/dist/component/tag/tag.nomodule.js.map +1 -1
  313. package/dist/component/tag/tag.nomodule.min.js +1 -1
  314. package/dist/component/tag/tag.nomodule.min.js.map +1 -1
  315. package/dist/component/tile/tile.css +1 -1
  316. package/dist/component/tile/tile.legacy.css +1 -1
  317. package/dist/component/tile/tile.legacy.min.css +1 -1
  318. package/dist/component/tile/tile.main.css +1 -1
  319. package/dist/component/tile/tile.main.min.css +1 -1
  320. package/dist/component/tile/tile.min.css +1 -1
  321. package/dist/component/toggle/toggle.css +1 -1
  322. package/dist/component/toggle/toggle.legacy.css +1 -1
  323. package/dist/component/toggle/toggle.legacy.min.css +1 -1
  324. package/dist/component/toggle/toggle.main.css +1 -1
  325. package/dist/component/toggle/toggle.main.min.css +1 -1
  326. package/dist/component/toggle/toggle.min.css +1 -1
  327. package/dist/component/toggle/toggle.module.js +2 -2
  328. package/dist/component/toggle/toggle.module.js.map +1 -1
  329. package/dist/component/toggle/toggle.module.min.js +1 -1
  330. package/dist/component/toggle/toggle.module.min.js.map +1 -1
  331. package/dist/component/toggle/toggle.nomodule.js +2 -2
  332. package/dist/component/toggle/toggle.nomodule.js.map +1 -1
  333. package/dist/component/toggle/toggle.nomodule.min.js +1 -1
  334. package/dist/component/toggle/toggle.nomodule.min.js.map +1 -1
  335. package/dist/component/upload/upload.css +1 -1
  336. package/dist/component/upload/upload.min.css +1 -1
  337. package/dist/core/core.css +1 -1
  338. package/dist/core/core.legacy.css +1 -1
  339. package/dist/core/core.legacy.min.css +1 -1
  340. package/dist/core/core.main.css +1 -1
  341. package/dist/core/core.main.min.css +1 -1
  342. package/dist/core/core.min.css +1 -1
  343. package/dist/core/core.module.js +2 -2
  344. package/dist/core/core.module.js.map +1 -1
  345. package/dist/core/core.module.min.js +2 -2
  346. package/dist/core/core.module.min.js.map +1 -1
  347. package/dist/core/core.nomodule.js +2 -2
  348. package/dist/core/core.nomodule.js.map +1 -1
  349. package/dist/core/core.nomodule.min.js +2 -2
  350. package/dist/core/core.nomodule.min.js.map +1 -1
  351. package/dist/dsfr/dsfr.css +1 -1
  352. package/dist/dsfr/dsfr.legacy.css +1 -1
  353. package/dist/dsfr/dsfr.legacy.min.css +1 -1
  354. package/dist/dsfr/dsfr.main.css +1 -1
  355. package/dist/dsfr/dsfr.main.min.css +1 -1
  356. package/dist/dsfr/dsfr.min.css +1 -1
  357. package/dist/dsfr/dsfr.module.js +11 -8
  358. package/dist/dsfr/dsfr.module.js.map +1 -1
  359. package/dist/dsfr/dsfr.module.min.js +2 -2
  360. package/dist/dsfr/dsfr.module.min.js.map +1 -1
  361. package/dist/dsfr/{dsfr-deprecated.nomodule.js → dsfr.nomodule.js} +12 -9
  362. package/dist/dsfr/dsfr.nomodule.js.map +1 -0
  363. package/dist/dsfr/{dsfr-deprecated.nomodule.min.js → dsfr.nomodule.min.js} +3 -3
  364. package/dist/dsfr/dsfr.nomodule.min.js.map +1 -0
  365. package/dist/dsfr.css +1 -1
  366. package/dist/dsfr.legacy.css +1 -1
  367. package/dist/dsfr.legacy.min.css +1 -1
  368. package/dist/dsfr.main.css +1 -1
  369. package/dist/dsfr.main.min.css +1 -1
  370. package/dist/dsfr.min.css +1 -1
  371. package/dist/dsfr.module.js +11 -8
  372. package/dist/dsfr.module.js.map +1 -1
  373. package/dist/dsfr.module.min.js +2 -2
  374. package/dist/dsfr.module.min.js.map +1 -1
  375. package/dist/dsfr.nomodule.js +11 -8
  376. package/dist/dsfr.nomodule.js.map +1 -1
  377. package/dist/dsfr.nomodule.min.js +2 -2
  378. package/dist/dsfr.nomodule.min.js.map +1 -1
  379. package/dist/icons/system/{delete-line.svg → delete-bin-fill.svg} +0 -0
  380. package/dist/icons/system/{delete-fill.svg → delete-bin-line.svg} +0 -0
  381. package/dist/legacy/legacy.nomodule.js +1 -1
  382. package/dist/legacy/legacy.nomodule.min.js +1 -1
  383. package/dist/scheme/scheme.css +1 -1
  384. package/dist/scheme/scheme.min.css +1 -1
  385. package/dist/scheme/scheme.module.js +2 -2
  386. package/dist/scheme/scheme.module.js.map +1 -1
  387. package/dist/scheme/scheme.module.min.js +1 -1
  388. package/dist/scheme/scheme.module.min.js.map +1 -1
  389. package/dist/utility/README.md +12 -1
  390. package/dist/utility/icons/README.md +7 -1
  391. package/dist/utility/icons/icons-buildings/README.md +7 -1
  392. package/dist/utility/icons/icons-buildings/icons-buildings.css +19 -1
  393. package/dist/utility/icons/icons-buildings/icons-buildings.css.map +1 -1
  394. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.css +9 -1
  395. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.css.map +1 -1
  396. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.min.css +2 -2
  397. package/dist/utility/icons/icons-buildings/icons-buildings.legacy.min.css.map +1 -1
  398. package/dist/utility/icons/icons-buildings/icons-buildings.main.css +11 -1
  399. package/dist/utility/icons/icons-buildings/icons-buildings.main.css.map +1 -1
  400. package/dist/utility/icons/icons-buildings/icons-buildings.main.min.css +2 -2
  401. package/dist/utility/icons/icons-buildings/icons-buildings.main.min.css.map +1 -1
  402. package/dist/utility/icons/icons-buildings/icons-buildings.min.css +3 -3
  403. package/dist/utility/icons/icons-buildings/icons-buildings.min.css.map +1 -1
  404. package/dist/utility/icons/icons-business/README.md +7 -1
  405. package/dist/utility/icons/icons-business/icons-business.css +100 -1
  406. package/dist/utility/icons/icons-business/icons-business.css.map +1 -1
  407. package/dist/utility/icons/icons-business/icons-business.legacy.css +45 -1
  408. package/dist/utility/icons/icons-business/icons-business.legacy.css.map +1 -1
  409. package/dist/utility/icons/icons-business/icons-business.legacy.min.css +2 -2
  410. package/dist/utility/icons/icons-business/icons-business.legacy.min.css.map +1 -1
  411. package/dist/utility/icons/icons-business/icons-business.main.css +56 -1
  412. package/dist/utility/icons/icons-business/icons-business.main.css.map +1 -1
  413. package/dist/utility/icons/icons-business/icons-business.main.min.css +2 -2
  414. package/dist/utility/icons/icons-business/icons-business.main.min.css.map +1 -1
  415. package/dist/utility/icons/icons-business/icons-business.min.css +3 -3
  416. package/dist/utility/icons/icons-business/icons-business.min.css.map +1 -1
  417. package/dist/utility/icons/icons-communication/README.md +7 -1
  418. package/dist/utility/icons/icons-communication/icons-communication.css +1 -1
  419. package/dist/utility/icons/icons-communication/icons-communication.css.map +1 -1
  420. package/dist/utility/icons/icons-communication/icons-communication.legacy.css +1 -1
  421. package/dist/utility/icons/icons-communication/icons-communication.legacy.min.css +1 -1
  422. package/dist/utility/icons/icons-communication/icons-communication.main.css +1 -1
  423. package/dist/utility/icons/icons-communication/icons-communication.main.css.map +1 -1
  424. package/dist/utility/icons/icons-communication/icons-communication.main.min.css +1 -1
  425. package/dist/utility/icons/icons-communication/icons-communication.min.css +1 -1
  426. package/dist/utility/icons/icons-design/README.md +7 -1
  427. package/dist/utility/icons/icons-design/icons-design.css +19 -1
  428. package/dist/utility/icons/icons-design/icons-design.css.map +1 -1
  429. package/dist/utility/icons/icons-design/icons-design.legacy.css +9 -1
  430. package/dist/utility/icons/icons-design/icons-design.legacy.css.map +1 -1
  431. package/dist/utility/icons/icons-design/icons-design.legacy.min.css +2 -2
  432. package/dist/utility/icons/icons-design/icons-design.legacy.min.css.map +1 -1
  433. package/dist/utility/icons/icons-design/icons-design.main.css +11 -1
  434. package/dist/utility/icons/icons-design/icons-design.main.css.map +1 -1
  435. package/dist/utility/icons/icons-design/icons-design.main.min.css +2 -2
  436. package/dist/utility/icons/icons-design/icons-design.main.min.css.map +1 -1
  437. package/dist/utility/icons/icons-design/icons-design.min.css +3 -3
  438. package/dist/utility/icons/icons-design/icons-design.min.css.map +1 -1
  439. package/dist/utility/icons/icons-development/README.md +7 -1
  440. package/dist/utility/icons/icons-development/icons-development.css +1 -1
  441. package/dist/utility/icons/icons-development/icons-development.css.map +1 -1
  442. package/dist/utility/icons/icons-development/icons-development.legacy.css +1 -1
  443. package/dist/utility/icons/icons-development/icons-development.legacy.min.css +1 -1
  444. package/dist/utility/icons/icons-development/icons-development.main.css +1 -1
  445. package/dist/utility/icons/icons-development/icons-development.main.css.map +1 -1
  446. package/dist/utility/icons/icons-development/icons-development.main.min.css +1 -1
  447. package/dist/utility/icons/icons-development/icons-development.min.css +1 -1
  448. package/dist/utility/icons/icons-device/README.md +7 -1
  449. package/dist/utility/icons/icons-device/icons-device.css +55 -1
  450. package/dist/utility/icons/icons-device/icons-device.css.map +1 -1
  451. package/dist/utility/icons/icons-device/icons-device.legacy.css +25 -1
  452. package/dist/utility/icons/icons-device/icons-device.legacy.css.map +1 -1
  453. package/dist/utility/icons/icons-device/icons-device.legacy.min.css +2 -2
  454. package/dist/utility/icons/icons-device/icons-device.legacy.min.css.map +1 -1
  455. package/dist/utility/icons/icons-device/icons-device.main.css +31 -1
  456. package/dist/utility/icons/icons-device/icons-device.main.css.map +1 -1
  457. package/dist/utility/icons/icons-device/icons-device.main.min.css +2 -2
  458. package/dist/utility/icons/icons-device/icons-device.main.min.css.map +1 -1
  459. package/dist/utility/icons/icons-device/icons-device.min.css +3 -3
  460. package/dist/utility/icons/icons-device/icons-device.min.css.map +1 -1
  461. package/dist/utility/icons/icons-document/README.md +7 -1
  462. package/dist/utility/icons/icons-document/icons-document.css +55 -1
  463. package/dist/utility/icons/icons-document/icons-document.css.map +1 -1
  464. package/dist/utility/icons/icons-document/icons-document.legacy.css +25 -1
  465. package/dist/utility/icons/icons-document/icons-document.legacy.css.map +1 -1
  466. package/dist/utility/icons/icons-document/icons-document.legacy.min.css +2 -2
  467. package/dist/utility/icons/icons-document/icons-document.legacy.min.css.map +1 -1
  468. package/dist/utility/icons/icons-document/icons-document.main.css +31 -1
  469. package/dist/utility/icons/icons-document/icons-document.main.css.map +1 -1
  470. package/dist/utility/icons/icons-document/icons-document.main.min.css +2 -2
  471. package/dist/utility/icons/icons-document/icons-document.main.min.css.map +1 -1
  472. package/dist/utility/icons/icons-document/icons-document.min.css +3 -3
  473. package/dist/utility/icons/icons-document/icons-document.min.css.map +1 -1
  474. package/dist/utility/icons/icons-editor/README.md +7 -1
  475. package/dist/utility/icons/icons-editor/icons-editor.css +64 -1
  476. package/dist/utility/icons/icons-editor/icons-editor.css.map +1 -1
  477. package/dist/utility/icons/icons-editor/icons-editor.legacy.css +29 -1
  478. package/dist/utility/icons/icons-editor/icons-editor.legacy.css.map +1 -1
  479. package/dist/utility/icons/icons-editor/icons-editor.legacy.min.css +2 -2
  480. package/dist/utility/icons/icons-editor/icons-editor.legacy.min.css.map +1 -1
  481. package/dist/utility/icons/icons-editor/icons-editor.main.css +36 -1
  482. package/dist/utility/icons/icons-editor/icons-editor.main.css.map +1 -1
  483. package/dist/utility/icons/icons-editor/icons-editor.main.min.css +2 -2
  484. package/dist/utility/icons/icons-editor/icons-editor.main.min.css.map +1 -1
  485. package/dist/utility/icons/icons-editor/icons-editor.min.css +3 -3
  486. package/dist/utility/icons/icons-editor/icons-editor.min.css.map +1 -1
  487. package/dist/utility/icons/icons-finance/README.md +7 -1
  488. package/dist/utility/icons/icons-finance/icons-finance.css +1 -1
  489. package/dist/utility/icons/icons-finance/icons-finance.css.map +1 -1
  490. package/dist/utility/icons/icons-finance/icons-finance.legacy.css +1 -1
  491. package/dist/utility/icons/icons-finance/icons-finance.legacy.min.css +1 -1
  492. package/dist/utility/icons/icons-finance/icons-finance.main.css +1 -1
  493. package/dist/utility/icons/icons-finance/icons-finance.main.css.map +1 -1
  494. package/dist/utility/icons/icons-finance/icons-finance.main.min.css +1 -1
  495. package/dist/utility/icons/icons-finance/icons-finance.min.css +1 -1
  496. package/dist/utility/icons/icons-health/README.md +7 -1
  497. package/dist/utility/icons/icons-health/icons-health.css +1 -1
  498. package/dist/utility/icons/icons-health/icons-health.css.map +1 -1
  499. package/dist/utility/icons/icons-health/icons-health.legacy.css +1 -1
  500. package/dist/utility/icons/icons-health/icons-health.legacy.min.css +1 -1
  501. package/dist/utility/icons/icons-health/icons-health.main.css +1 -1
  502. package/dist/utility/icons/icons-health/icons-health.main.css.map +1 -1
  503. package/dist/utility/icons/icons-health/icons-health.main.min.css +1 -1
  504. package/dist/utility/icons/icons-health/icons-health.min.css +1 -1
  505. package/dist/utility/icons/icons-logo/README.md +7 -1
  506. package/dist/utility/icons/icons-logo/icons-logo.css +253 -1
  507. package/dist/utility/icons/icons-logo/icons-logo.css.map +1 -1
  508. package/dist/utility/icons/icons-logo/icons-logo.legacy.css +113 -1
  509. package/dist/utility/icons/icons-logo/icons-logo.legacy.css.map +1 -1
  510. package/dist/utility/icons/icons-logo/icons-logo.legacy.min.css +2 -2
  511. package/dist/utility/icons/icons-logo/icons-logo.legacy.min.css.map +1 -1
  512. package/dist/utility/icons/icons-logo/icons-logo.main.css +141 -1
  513. package/dist/utility/icons/icons-logo/icons-logo.main.css.map +1 -1
  514. package/dist/utility/icons/icons-logo/icons-logo.main.min.css +2 -2
  515. package/dist/utility/icons/icons-logo/icons-logo.main.min.css.map +1 -1
  516. package/dist/utility/icons/icons-logo/icons-logo.min.css +3 -3
  517. package/dist/utility/icons/icons-logo/icons-logo.min.css.map +1 -1
  518. package/dist/utility/icons/icons-map/README.md +7 -1
  519. package/dist/utility/icons/icons-map/icons-map.css +37 -1
  520. package/dist/utility/icons/icons-map/icons-map.css.map +1 -1
  521. package/dist/utility/icons/icons-map/icons-map.legacy.css +17 -1
  522. package/dist/utility/icons/icons-map/icons-map.legacy.css.map +1 -1
  523. package/dist/utility/icons/icons-map/icons-map.legacy.min.css +2 -2
  524. package/dist/utility/icons/icons-map/icons-map.legacy.min.css.map +1 -1
  525. package/dist/utility/icons/icons-map/icons-map.main.css +21 -1
  526. package/dist/utility/icons/icons-map/icons-map.main.css.map +1 -1
  527. package/dist/utility/icons/icons-map/icons-map.main.min.css +2 -2
  528. package/dist/utility/icons/icons-map/icons-map.main.min.css.map +1 -1
  529. package/dist/utility/icons/icons-map/icons-map.min.css +3 -3
  530. package/dist/utility/icons/icons-map/icons-map.min.css.map +1 -1
  531. package/dist/utility/icons/icons-media/README.md +7 -1
  532. package/dist/utility/icons/icons-media/icons-media.css +145 -1
  533. package/dist/utility/icons/icons-media/icons-media.css.map +1 -1
  534. package/dist/utility/icons/icons-media/icons-media.legacy.css +65 -1
  535. package/dist/utility/icons/icons-media/icons-media.legacy.css.map +1 -1
  536. package/dist/utility/icons/icons-media/icons-media.legacy.min.css +2 -2
  537. package/dist/utility/icons/icons-media/icons-media.legacy.min.css.map +1 -1
  538. package/dist/utility/icons/icons-media/icons-media.main.css +81 -1
  539. package/dist/utility/icons/icons-media/icons-media.main.css.map +1 -1
  540. package/dist/utility/icons/icons-media/icons-media.main.min.css +2 -2
  541. package/dist/utility/icons/icons-media/icons-media.main.min.css.map +1 -1
  542. package/dist/utility/icons/icons-media/icons-media.min.css +3 -3
  543. package/dist/utility/icons/icons-media/icons-media.min.css.map +1 -1
  544. package/dist/utility/icons/icons-others/README.md +7 -1
  545. package/dist/utility/icons/icons-others/icons-others.css +1 -1
  546. package/dist/utility/icons/icons-others/icons-others.css.map +1 -1
  547. package/dist/utility/icons/icons-others/icons-others.legacy.css +1 -1
  548. package/dist/utility/icons/icons-others/icons-others.legacy.min.css +1 -1
  549. package/dist/utility/icons/icons-others/icons-others.main.css +1 -1
  550. package/dist/utility/icons/icons-others/icons-others.main.css.map +1 -1
  551. package/dist/utility/icons/icons-others/icons-others.main.min.css +1 -1
  552. package/dist/utility/icons/icons-others/icons-others.min.css +1 -1
  553. package/dist/utility/icons/icons-system/README.md +7 -1
  554. package/dist/utility/icons/icons-system/icons-system.css +49 -29
  555. package/dist/utility/icons/icons-system/icons-system.css.map +1 -1
  556. package/dist/utility/icons/icons-system/icons-system.legacy.css +23 -13
  557. package/dist/utility/icons/icons-system/icons-system.legacy.css.map +1 -1
  558. package/dist/utility/icons/icons-system/icons-system.legacy.min.css +2 -2
  559. package/dist/utility/icons/icons-system/icons-system.legacy.min.css.map +1 -1
  560. package/dist/utility/icons/icons-system/icons-system.main.css +27 -17
  561. package/dist/utility/icons/icons-system/icons-system.main.css.map +1 -1
  562. package/dist/utility/icons/icons-system/icons-system.main.min.css +2 -2
  563. package/dist/utility/icons/icons-system/icons-system.main.min.css.map +1 -1
  564. package/dist/utility/icons/icons-system/icons-system.min.css +3 -3
  565. package/dist/utility/icons/icons-system/icons-system.min.css.map +1 -1
  566. package/dist/utility/icons/icons-user/README.md +7 -1
  567. package/dist/utility/icons/icons-user/icons-user.css +55 -19
  568. package/dist/utility/icons/icons-user/icons-user.css.map +1 -1
  569. package/dist/utility/icons/icons-user/icons-user.legacy.css +25 -9
  570. package/dist/utility/icons/icons-user/icons-user.legacy.css.map +1 -1
  571. package/dist/utility/icons/icons-user/icons-user.legacy.min.css +2 -2
  572. package/dist/utility/icons/icons-user/icons-user.legacy.min.css.map +1 -1
  573. package/dist/utility/icons/icons-user/icons-user.main.css +31 -11
  574. package/dist/utility/icons/icons-user/icons-user.main.css.map +1 -1
  575. package/dist/utility/icons/icons-user/icons-user.main.min.css +2 -2
  576. package/dist/utility/icons/icons-user/icons-user.main.min.css.map +1 -1
  577. package/dist/utility/icons/icons-user/icons-user.min.css +3 -3
  578. package/dist/utility/icons/icons-user/icons-user.min.css.map +1 -1
  579. package/dist/utility/icons/icons-weather/README.md +7 -1
  580. package/dist/utility/icons/icons-weather/icons-weather.css +19 -1
  581. package/dist/utility/icons/icons-weather/icons-weather.css.map +1 -1
  582. package/dist/utility/icons/icons-weather/icons-weather.legacy.css +9 -1
  583. package/dist/utility/icons/icons-weather/icons-weather.legacy.css.map +1 -1
  584. package/dist/utility/icons/icons-weather/icons-weather.legacy.min.css +2 -2
  585. package/dist/utility/icons/icons-weather/icons-weather.legacy.min.css.map +1 -1
  586. package/dist/utility/icons/icons-weather/icons-weather.main.css +11 -1
  587. package/dist/utility/icons/icons-weather/icons-weather.main.css.map +1 -1
  588. package/dist/utility/icons/icons-weather/icons-weather.main.min.css +2 -2
  589. package/dist/utility/icons/icons-weather/icons-weather.main.min.css.map +1 -1
  590. package/dist/utility/icons/icons-weather/icons-weather.min.css +3 -3
  591. package/dist/utility/icons/icons-weather/icons-weather.min.css.map +1 -1
  592. package/dist/utility/icons/icons.css +861 -49
  593. package/dist/utility/icons/icons.css.map +1 -1
  594. package/dist/utility/icons/icons.legacy.css +383 -21
  595. package/dist/utility/icons/icons.legacy.css.map +1 -1
  596. package/dist/utility/icons/icons.legacy.min.css +2 -2
  597. package/dist/utility/icons/icons.legacy.min.css.map +1 -1
  598. package/dist/utility/icons/icons.main.css +477 -27
  599. package/dist/utility/icons/icons.main.css.map +1 -1
  600. package/dist/utility/icons/icons.main.min.css +2 -2
  601. package/dist/utility/icons/icons.main.min.css.map +1 -1
  602. package/dist/utility/icons/icons.min.css +3 -3
  603. package/dist/utility/icons/icons.min.css.map +1 -1
  604. package/dist/utility/utility.css +861 -49
  605. package/dist/utility/utility.css.map +1 -1
  606. package/dist/utility/utility.legacy.css +383 -21
  607. package/dist/utility/utility.legacy.css.map +1 -1
  608. package/dist/utility/utility.legacy.min.css +2 -2
  609. package/dist/utility/utility.legacy.min.css.map +1 -1
  610. package/dist/utility/utility.main.css +477 -27
  611. package/dist/utility/utility.main.css.map +1 -1
  612. package/dist/utility/utility.main.min.css +2 -2
  613. package/dist/utility/utility.main.min.css.map +1 -1
  614. package/dist/utility/utility.min.css +3 -3
  615. package/dist/utility/utility.min.css.map +1 -1
  616. package/example/component/accordion/index.html +111 -141
  617. package/example/component/tab/index.html +100 -105
  618. package/example/component/table/index.html +98 -98
  619. package/example/utility/icons/icons-buildings/index.html +2 -0
  620. package/example/utility/icons/icons-business/index.html +2 -0
  621. package/example/utility/icons/icons-communication/index.html +2 -0
  622. package/example/utility/icons/icons-design/index.html +2 -0
  623. package/example/utility/icons/icons-development/index.html +2 -0
  624. package/example/utility/icons/icons-device/index.html +2 -0
  625. package/example/utility/icons/icons-document/index.html +2 -0
  626. package/example/utility/icons/icons-editor/index.html +2 -0
  627. package/example/utility/icons/icons-finance/index.html +2 -0
  628. package/example/utility/icons/icons-health/index.html +2 -0
  629. package/example/utility/icons/icons-logo/index.html +2 -0
  630. package/example/utility/icons/icons-map/index.html +2 -0
  631. package/example/utility/icons/icons-media/index.html +2 -0
  632. package/example/utility/icons/icons-others/index.html +2 -0
  633. package/example/utility/icons/icons-system/index.html +8 -6
  634. package/example/utility/icons/icons-user/index.html +46 -74
  635. package/example/utility/icons/icons-weather/index.html +18 -16
  636. package/example/utility/icons/index.html +2 -0
  637. package/example/utility/index.html +13 -0
  638. package/package.json +1 -1
  639. package/src/component/download/script/download/assess-file.js +9 -5
  640. package/src/component/download/script/download/download-selector.js +0 -1
  641. package/src/core/icon/system/{delete-line.svg → delete-bin-fill.svg} +0 -0
  642. package/src/core/icon/system/{delete-fill.svg → delete-bin-line.svg} +0 -0
  643. package/src/utility/.folder.yml +8 -1
  644. package/src/utility/icons/.folder.yml +2 -2
  645. package/src/utility/icons/deprecated/style/_setting.scss +1 -0
  646. package/src/utility/icons/icons-buildings/.package.yml +2 -2
  647. package/src/utility/icons/icons-buildings/deprecated/style/_legacy.scss +8 -0
  648. package/src/utility/icons/icons-buildings/deprecated/style/_module.scss +6 -0
  649. package/src/utility/icons/icons-buildings/deprecated/style/_setting.scss +1 -0
  650. package/src/utility/icons/icons-buildings/legacy.scss +4 -0
  651. package/src/utility/icons/icons-buildings/main.scss +4 -0
  652. package/src/utility/icons/icons-business/.package.yml +2 -2
  653. package/src/utility/icons/icons-business/deprecated/style/_legacy.scss +8 -0
  654. package/src/utility/icons/icons-business/deprecated/style/_module.scss +6 -0
  655. package/src/utility/icons/icons-business/deprecated/style/_setting.scss +1 -0
  656. package/src/utility/icons/icons-business/legacy.scss +4 -0
  657. package/src/utility/icons/icons-business/main.scss +4 -0
  658. package/src/utility/icons/icons-communication/.package.yml +2 -2
  659. package/src/utility/icons/icons-communication/deprecated/style/_legacy.scss +8 -0
  660. package/src/utility/icons/icons-communication/deprecated/style/_module.scss +6 -0
  661. package/src/utility/icons/icons-communication/deprecated/style/_setting.scss +1 -0
  662. package/src/utility/icons/icons-communication/legacy.scss +4 -0
  663. package/src/utility/icons/icons-communication/main.scss +4 -0
  664. package/src/utility/icons/icons-design/.package.yml +2 -2
  665. package/src/utility/icons/icons-design/deprecated/style/_legacy.scss +8 -0
  666. package/src/utility/icons/icons-design/deprecated/style/_module.scss +6 -0
  667. package/src/utility/icons/icons-design/deprecated/style/_setting.scss +1 -0
  668. package/src/utility/icons/icons-design/legacy.scss +4 -0
  669. package/src/utility/icons/icons-design/main.scss +4 -0
  670. package/src/utility/icons/icons-development/.package.yml +2 -2
  671. package/src/utility/icons/icons-development/deprecated/style/_legacy.scss +8 -0
  672. package/src/utility/icons/icons-development/deprecated/style/_module.scss +6 -0
  673. package/src/utility/icons/icons-development/deprecated/style/_setting.scss +1 -0
  674. package/src/utility/icons/icons-development/legacy.scss +4 -0
  675. package/src/utility/icons/icons-development/main.scss +4 -0
  676. package/src/utility/icons/icons-device/.package.yml +2 -2
  677. package/src/utility/icons/icons-device/deprecated/style/_legacy.scss +8 -0
  678. package/src/utility/icons/icons-device/deprecated/style/_module.scss +6 -0
  679. package/src/utility/icons/icons-device/deprecated/style/_setting.scss +1 -0
  680. package/src/utility/icons/icons-device/legacy.scss +4 -0
  681. package/src/utility/icons/icons-device/main.scss +4 -0
  682. package/src/utility/icons/icons-document/.package.yml +2 -2
  683. package/src/utility/icons/icons-document/deprecated/style/_legacy.scss +8 -0
  684. package/src/utility/icons/icons-document/deprecated/style/_module.scss +6 -0
  685. package/src/utility/icons/icons-document/deprecated/style/_setting.scss +1 -0
  686. package/src/utility/icons/icons-document/legacy.scss +4 -0
  687. package/src/utility/icons/icons-document/main.scss +4 -0
  688. package/src/utility/icons/icons-editor/.package.yml +2 -2
  689. package/src/utility/icons/icons-editor/deprecated/style/_legacy.scss +8 -0
  690. package/src/utility/icons/icons-editor/deprecated/style/_module.scss +6 -0
  691. package/src/utility/icons/icons-editor/deprecated/style/_setting.scss +1 -0
  692. package/src/utility/icons/icons-editor/legacy.scss +4 -0
  693. package/src/utility/icons/icons-editor/main.scss +4 -0
  694. package/src/utility/icons/icons-finance/.package.yml +2 -2
  695. package/src/utility/icons/icons-finance/deprecated/style/_legacy.scss +8 -0
  696. package/src/utility/icons/icons-finance/deprecated/style/_module.scss +6 -0
  697. package/src/utility/icons/icons-finance/deprecated/style/_setting.scss +1 -0
  698. package/src/utility/icons/icons-finance/legacy.scss +4 -0
  699. package/src/utility/icons/icons-finance/main.scss +4 -0
  700. package/src/utility/icons/icons-health/.package.yml +2 -2
  701. package/src/utility/icons/icons-health/deprecated/style/_legacy.scss +8 -0
  702. package/src/utility/icons/icons-health/deprecated/style/_module.scss +6 -0
  703. package/src/utility/icons/icons-health/deprecated/style/_setting.scss +1 -0
  704. package/src/utility/icons/icons-health/legacy.scss +4 -0
  705. package/src/utility/icons/icons-health/main.scss +4 -0
  706. package/src/utility/icons/icons-logo/.package.yml +2 -2
  707. package/src/utility/icons/icons-logo/deprecated/style/_legacy.scss +8 -0
  708. package/src/utility/icons/icons-logo/deprecated/style/_module.scss +6 -0
  709. package/src/utility/icons/icons-logo/deprecated/style/_setting.scss +1 -0
  710. package/src/utility/icons/icons-logo/legacy.scss +4 -0
  711. package/src/utility/icons/icons-logo/main.scss +4 -0
  712. package/src/utility/icons/icons-map/.package.yml +2 -2
  713. package/src/utility/icons/icons-map/deprecated/style/_legacy.scss +8 -0
  714. package/src/utility/icons/icons-map/deprecated/style/_module.scss +6 -0
  715. package/src/utility/icons/icons-map/deprecated/style/_setting.scss +1 -0
  716. package/src/utility/icons/icons-map/legacy.scss +4 -0
  717. package/src/utility/icons/icons-map/main.scss +4 -0
  718. package/src/utility/icons/icons-media/.package.yml +2 -2
  719. package/src/utility/icons/icons-media/deprecated/style/_legacy.scss +24 -0
  720. package/src/utility/icons/icons-media/deprecated/style/_module.scss +22 -0
  721. package/src/utility/icons/icons-media/deprecated/style/_setting.scss +1 -0
  722. package/src/utility/icons/icons-media/legacy.scss +4 -0
  723. package/src/utility/icons/icons-media/main.scss +4 -0
  724. package/src/utility/icons/icons-others/.package.yml +2 -2
  725. package/src/utility/icons/icons-others/deprecated/style/_legacy.scss +8 -0
  726. package/src/utility/icons/icons-others/deprecated/style/_module.scss +6 -0
  727. package/src/utility/icons/icons-others/deprecated/style/_setting.scss +1 -0
  728. package/src/utility/icons/icons-others/legacy.scss +4 -0
  729. package/src/utility/icons/icons-others/main.scss +4 -0
  730. package/src/utility/icons/icons-system/.package.yml +2 -2
  731. package/src/utility/icons/icons-system/deprecated/style/_legacy.scss +16 -0
  732. package/src/utility/icons/icons-system/deprecated/style/_module.scss +16 -0
  733. package/src/utility/icons/icons-system/deprecated/style/_setting.scss +1 -0
  734. package/src/utility/icons/icons-system/legacy.scss +1 -1
  735. package/src/utility/icons/icons-system/main.scss +1 -1
  736. package/src/utility/icons/icons-user/.package.yml +2 -2
  737. package/src/utility/icons/icons-user/deprecated/style/_legacy.scss +24 -0
  738. package/src/utility/icons/icons-user/deprecated/style/_module.scss +22 -0
  739. package/src/utility/icons/icons-user/deprecated/style/_setting.scss +1 -0
  740. package/src/utility/icons/icons-user/legacy.scss +4 -0
  741. package/src/utility/icons/icons-user/main.scss +4 -0
  742. package/src/utility/icons/icons-weather/.package.yml +2 -2
  743. package/src/utility/icons/icons-weather/deprecated/style/_legacy.scss +8 -0
  744. package/src/utility/icons/icons-weather/deprecated/style/_module.scss +6 -0
  745. package/src/utility/icons/icons-weather/deprecated/style/_setting.scss +1 -0
  746. package/src/utility/icons/icons-weather/legacy.scss +4 -0
  747. package/src/utility/icons/icons-weather/main.scss +4 -0
  748. package/dist/dsfr/dsfr-deprecated.nomodule.js.map +0 -1
  749. package/dist/dsfr/dsfr-deprecated.nomodule.min.js.map +0 -1
  750. package/dist/icons/user/account-fill.svg +0 -1
  751. package/dist/icons/user/account-line.svg +0 -1
  752. package/src/core/icon/user/account-fill.svg +0 -1
  753. package/src/core/icon/user/account-line.svg +0 -1
  754. package/src/utility/icons/icons-system/deprecated/style/_settings.scss +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"modal.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["api","window","ModalSelector","MODAL","internals","ns","selector","SCROLL_SHADOW","BODY","ModalButton","core","DisclosureButton","constructor","super","DisclosureType","OPENED","instanceClassName","ModalAttribute","CONCEALING_BACKDROP","attr","Modal","Disclosure","this","scrolling","resize","bind","resizing","init","listen","click","listenKey","KeyCodes","ESCAPE","conceal","body","element","getDescendantInstances","e","target","node","getAttribute","disclose","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","style","getComputedStyle","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","activeElement","waiting","wait","handling","handle","focusing","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","length","focus","addEventListener","document","stun","child","children","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","indexOf","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","button","checked","selected","ModalsGroup","DisclosuresGroup","focusTrap","apply","value","initial","ModalBody","Instance","shade","isResizing","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","request","offset","isBreakpoint","Breakpoints","MD","isLegacy","maxHeight","innerHeight","setProperty","modal","register","RootSelector","ROOT"],"mappings":"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"}
1
+ {"version":3,"file":"modal.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.1'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["api","window","ModalSelector","MODAL","internals","ns","selector","SCROLL_SHADOW","BODY","ModalButton","core","DisclosureButton","constructor","super","DisclosureType","OPENED","instanceClassName","ModalAttribute","CONCEALING_BACKDROP","attr","Modal","Disclosure","this","scrolling","resize","bind","resizing","init","listen","click","listenKey","KeyCodes","ESCAPE","conceal","body","element","getDescendantInstances","e","target","node","getAttribute","disclose","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","style","getComputedStyle","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","activeElement","waiting","wait","handling","handle","focusing","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","length","focus","addEventListener","document","stun","child","children","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","indexOf","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","button","checked","selected","ModalsGroup","DisclosuresGroup","focusTrap","apply","value","initial","ModalBody","Instance","shade","isResizing","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","request","offset","isBreakpoint","Breakpoints","MD","isLegacy","maxHeight","innerHeight","setProperty","modal","register","RootSelector","ROOT"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
2
2
 
3
3
  (function () {
4
4
  'use strict';
@@ -7,7 +7,7 @@
7
7
  prefix: 'fr',
8
8
  namespace: 'dsfr',
9
9
  organisation: '@gouvfr',
10
- version: '1.5.0'
10
+ version: '1.5.1'
11
11
  };
12
12
 
13
13
  var api = window[config.namespace];
@@ -1 +1 @@
1
- {"version":3,"file":"modal.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["const","super","let","this"],"mappings":"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"}
1
+ {"version":3,"file":"modal.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.1'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["const","super","let","this"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /*! DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
2
2
  !function(){"use strict";var t=window.dsfr,e={MODAL:t.internals.ns.selector("modal"),SCROLL_SHADOW:t.internals.ns.selector("scroll-shadow"),BODY:t.internals.ns.selector("modal__body")},n=function(e){function n(){e.call(this,t.core.DisclosureType.OPENED)}e&&(n.__proto__=e),n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n;var i={instanceClassName:{configurable:!0}};return i.instanceClassName.get=function(){return"ModalButton"},Object.defineProperties(n,i),n}(t.core.DisclosureButton),i={CONCEALING_BACKDROP:t.internals.ns.attr("concealing-backdrop")},o=function(o){function s(){o.call(this,t.core.DisclosureType.OPENED,e.MODAL,n,"ModalsGroup"),this.scrolling=this.resize.bind(this,!1),this.resizing=this.resize.bind(this,!0)}o&&(s.__proto__=o),s.prototype=Object.create(o&&o.prototype),s.prototype.constructor=s;var r={body:{configurable:!0}},a={instanceClassName:{configurable:!0}};return a.instanceClassName.get=function(){return"Modal"},s.prototype.init=function(){o.prototype.init.call(this),this.listen("click",this.click.bind(this)),this.listenKey(t.core.KeyCodes.ESCAPE,this.conceal.bind(this,!1,!1),!0,!0)},r.body.get=function(){return this.element.getDescendantInstances("ModalBody","Modal")[0]},s.prototype.click=function(t){t.target===this.node&&"false"!==this.getAttribute(i.CONCEALING_BACKDROP)&&this.conceal()},s.prototype.disclose=function(t){return!!o.prototype.disclose.call(this,t)&&(this.body&&this.body.activate(),this.isScrollLocked=!0,this.setAttribute("aria-modal","true"),this.setAttribute("open","true"),!0)},s.prototype.conceal=function(t,e){return!!o.prototype.conceal.call(this,t,e)&&(this.isScrollLocked=!1,this.removeAttribute("aria-modal"),this.removeAttribute("open"),this.body&&this.body.deactivate(),!0)},Object.defineProperties(s.prototype,r),Object.defineProperties(s,a),s}(t.core.Disclosure),s=['[tabindex="0"]',"a[href]","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])","audio[controls]","video[controls]",'[contenteditable]:not([contenteditable="false"])',"details>summary:first-of-type","details","iframe"].join(),r=['[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'].join(),a=function(t,e){if(!(t instanceof Element))return!1;var n=window.getComputedStyle(t);if(!n)return!1;if("hidden"===n.visibility)return!1;for(void 0===e&&(e=t);e.contains(t);){if("none"===n.display)return!1;t=t.parentElement}return!0},l=function(t,e){this.element=null,this.activeElement=null,this.onTrap=t,this.onUntrap=e,this.waiting=this.wait.bind(this),this.handling=this.handle.bind(this),this.focusing=this.maintainFocus.bind(this),this.current=null},c={trapped:{configurable:!0},focusables:{configurable:!0}};c.trapped.get=function(){return null!==this.element},l.prototype.trap=function(t){this.trapped&&this.untrap(),this.element=t,this.isTrapping=!0,this.wait(),this.onTrap&&this.onTrap()},l.prototype.wait=function(){a(this.element)?this.trapping():window.requestAnimationFrame(this.waiting)},l.prototype.trapping=function(){if(this.isTrapping){this.isTrapping=!1;var t=this.focusables;t.length&&t[0].focus(),this.element.setAttribute("aria-modal",!0),window.addEventListener("keydown",this.handling),document.body.addEventListener("focus",this.focusing,!0)}},l.prototype.stun=function(t){for(var e=0,n=t.children;e<n.length;e+=1){var i=n[e];i!==this.element&&(i.contains(this.element)?this.stun(i):this.stunneds.push(new u(i)))}},l.prototype.maintainFocus=function(t){if(!this.element.contains(t.target)){var e=this.focusables;if(0===e.length)return;var n=e[0];t.preventDefault(),n.focus()}},l.prototype.handle=function(t){if(9===t.keyCode){var e=this.focusables;if(0!==e.length){var n=e[0],i=e[e.length-1],o=e.indexOf(document.activeElement);t.shiftKey?!this.element.contains(document.activeElement)||o<1?(t.preventDefault(),i.focus()):(document.activeElement.tabIndex>0||e[o-1].tabIndex>0)&&(t.preventDefault(),e[o-1].focus()):this.element.contains(document.activeElement)&&o!==e.length-1&&-1!==o?document.activeElement.tabIndex>0&&(t.preventDefault(),e[o+1].focus()):(t.preventDefault(),n.focus())}}},c.focusables.get=function(){var e=this,n=t.internals.dom.querySelectorAllArray(this.element,s),i=t.internals.dom.querySelectorAllArray(document.documentElement,'input[type="radio"]');if(i.length){for(var o={},l=0,c=i;l<c.length;l+=1){var u=c[l],d=u.getAttribute("name");void 0===o[d]&&(o[d]=new p(d)),o[d].push(u)}n=n.filter((function(t){if("input"!==t.tagName.toLowerCase()||"radio"!==t.getAttribute("type").toLowerCase())return!0;var e=t.getAttribute("name");return o[e].keep(t)}))}var h=t.internals.dom.querySelectorAllArray(this.element,r);h.sort((function(t,e){return t.tabIndex-e.tabIndex}));var f=n.filter((function(t){return-1===h.indexOf(t)}));return h.concat(f).filter((function(t){return"-1"!==t.tabIndex&&a(t,e.element)}))},l.prototype.untrap=function(){this.trapped&&(this.isTrapping=!1,this.element.removeAttribute("aria-modal"),window.removeEventListener("keydown",this.handling),document.body.removeEventListener("focus",this.focusing,!0),this.element=null,this.onUntrap&&this.onUntrap())},l.prototype.dispose=function(){this.untrap()},Object.defineProperties(l.prototype,c);var u=function(t){this.element=t,this.inert=t.getAttribute("inert"),this.element.setAttribute("inert","")};u.prototype.unstun=function(){null===this.inert?this.element.removeAttribute("inert"):this.element.setAttribute("inert",this.inert)};var p=function(t){this.name=t,this.buttons=[]};p.prototype.push=function(t){this.buttons.push(t),(t===document.activeElement||t.checked||void 0===this.selected)&&(this.selected=t)},p.prototype.keep=function(t){return this.selected===t};var d=function(t){function e(){t.call(this,"Modal",!1),this.focusTrap=new l}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={instanceClassName:{configurable:!0}};return n.instanceClassName.get=function(){return"ModalsGroup"},e.prototype.apply=function(e,n){t.prototype.apply.call(this,e,n),null===this.current?this.focusTrap.untrap():this.focusTrap.trap(this.current.node)},Object.defineProperties(e,n),e}(t.core.DisclosuresGroup),h=function(n){function i(){n.apply(this,arguments)}n&&(i.__proto__=n),i.prototype=Object.create(n&&n.prototype),i.prototype.constructor=i;var o={instanceClassName:{configurable:!0}};return o.instanceClassName.get=function(){return"ModalBody"},i.prototype.init=function(){this.listen("scroll",this.shade.bind(this))},i.prototype.activate=function(){this.isResizing=!0,this.resize()},i.prototype.deactivate=function(){this.isResizing=!1},i.prototype.shade=function(){this.node.scrollHeight>this.node.clientHeight?this.node.offsetHeight+this.node.scrollTop>=this.node.scrollHeight?this.removeClass(e.SCROLL_SHADOW):this.addClass(e.SCROLL_SHADOW):this.removeClass(e.SCROLL_SHADOW)},i.prototype.resize=function(){this.adjust(),this.request(this.adjust.bind(this))},i.prototype.adjust=function(){var e=32*(this.isBreakpoint(t.core.Breakpoints.MD)?2:1);this.isLegacy?this.style.maxHeight=window.innerHeight-e+"px":this.style.setProperty("--modal-max-height",window.innerHeight-e+"px"),this.shade()},Object.defineProperties(i,o),i}(t.core.Instance);t.modal={Modal:o,ModalButton:n,ModalBody:h,ModalsGroup:d,ModalSelector:e},t.internals.register(t.modal.ModalSelector.MODAL,t.modal.Modal),t.internals.register(t.modal.ModalSelector.BODY,t.modal.ModalBody),t.internals.register(t.core.RootSelector.ROOT,t.modal.ModalsGroup)}();
3
3
  //# sourceMappingURL=modal.nomodule.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["const","api","window","ModalSelector","MODAL","internals","ns","selector","SCROLL_SHADOW","BODY","ModalButton","super","core","DisclosureType","OPENED","staticAccessors","instanceClassName","DisclosureButton","ModalAttribute","CONCEALING_BACKDROP","attr","Modal","this","scrolling","resize","bind","resizing","init","listen","click","listenKey","KeyCodes","ESCAPE","conceal","prototypeAccessors","body","element","getDescendantInstances","e","target","node","getAttribute","disclose","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","Disclosure","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","style","getComputedStyle","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","activeElement","waiting","wait","handling","handle","focusing","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","length","focus","addEventListener","document","stun","children","child","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","indexOf","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","button","checked","selected","ModalsGroup","focusTrap","apply","value","initial","DisclosuresGroup","ModalBody","shade","isResizing","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","request","offset","isBreakpoint","Breakpoints","MD","isLegacy","maxHeight","innerHeight","setProperty","Instance","modal","register","RootSelector","ROOT"],"mappings":"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"}
1
+ {"version":3,"file":"modal.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/modal/script/modal/modal-selector.js","../../../src/component/modal/script/modal/modal-button.js","../../../src/component/modal/script/modal/modal-attribute.js","../../../src/component/modal/script/modal/modal.js","../../../src/component/modal/script/modal/focus-trap.js","../../../src/component/modal/script/modal/modals-group.js","../../../src/component/modal/script/modal/modal-body.js","../../../src/component/modal/index.js","../../../src/component/modal/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.1'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const ModalSelector = {\n MODAL: api.internals.ns.selector('modal'),\n SCROLL_SHADOW: api.internals.ns.selector('scroll-shadow'),\n BODY: api.internals.ns.selector('modal__body')\n};\n","import api from '../../api.js';\n\nclass ModalButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.OPENED);\n }\n\n static get instanceClassName () {\n return 'ModalButton';\n }\n}\n\nexport { ModalButton };\n","import api from '../../api';\n\nexport const ModalAttribute = {\n CONCEALING_BACKDROP: api.internals.ns.attr('concealing-backdrop')\n};\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\nimport { ModalButton } from './modal-button.js';\nimport { ModalAttribute } from './modal-attribute';\n\nclass Modal extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.OPENED, ModalSelector.MODAL, ModalButton, 'ModalsGroup');\n this.scrolling = this.resize.bind(this, false);\n this.resizing = this.resize.bind(this, true);\n }\n\n static get instanceClassName () {\n return 'Modal';\n }\n\n init () {\n super.init();\n this.listen('click', this.click.bind(this));\n this.listenKey(api.core.KeyCodes.ESCAPE, this.conceal.bind(this, false, false), true, true);\n }\n\n get body () {\n return this.element.getDescendantInstances('ModalBody', 'Modal')[0];\n }\n\n click (e) {\n if (e.target === this.node && this.getAttribute(ModalAttribute.CONCEALING_BACKDROP) !== 'false') this.conceal();\n }\n\n disclose (withhold) {\n if (!super.disclose(withhold)) return false;\n if (this.body) this.body.activate();\n this.isScrollLocked = true;\n this.setAttribute('aria-modal', 'true');\n this.setAttribute('open', 'true');\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!super.conceal(withhold, preventFocus)) return false;\n this.isScrollLocked = false;\n this.removeAttribute('aria-modal');\n this.removeAttribute('open');\n if (this.body) this.body.deactivate();\n return true;\n }\n}\n\nexport { Modal };\n","import api from '../../api.js';\n\nconst unordereds = [\n '[tabindex=\"0\"]',\n 'a[href]',\n 'button:not([disabled])',\n 'input:not([disabled])',\n 'select:not([disabled])',\n 'textarea:not([disabled])',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n 'details>summary:first-of-type',\n 'details',\n 'iframe'\n];\n\nconst UNORDEREDS = unordereds.join();\n\nconst ordereds = [\n '[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'\n];\n\nconst ORDEREDS = ordereds.join();\n\nconst IS_STUNNING = false;\n\nconst isFocusable = (element, container) => {\n if (!(element instanceof Element)) return false;\n const style = window.getComputedStyle(element);\n if (!style) return false;\n if (style.visibility === 'hidden') return false;\n if (container === undefined) container = element;\n\n while (container.contains(element)) {\n if (style.display === 'none') return false;\n element = element.parentElement;\n }\n\n return true;\n};\n\nclass FocusTrap {\n constructor (onTrap, onUntrap) {\n this.element = null;\n this.activeElement = null;\n this.onTrap = onTrap;\n this.onUntrap = onUntrap;\n this.waiting = this.wait.bind(this);\n this.handling = this.handle.bind(this);\n this.focusing = this.maintainFocus.bind(this);\n this.current = null;\n }\n\n get trapped () { return this.element !== null; }\n\n trap (element) {\n if (this.trapped) this.untrap();\n\n this.element = element;\n this.isTrapping = true;\n this.wait();\n\n if (this.onTrap) this.onTrap();\n }\n\n wait () {\n if (!isFocusable(this.element)) {\n window.requestAnimationFrame(this.waiting);\n return;\n }\n\n this.trapping();\n }\n\n trapping () {\n if (!this.isTrapping) return;\n this.isTrapping = false;\n const focusables = this.focusables;\n if (focusables.length) focusables[0].focus();\n this.element.setAttribute('aria-modal', true);\n window.addEventListener('keydown', this.handling);\n document.body.addEventListener('focus', this.focusing, true);\n\n if (IS_STUNNING) {\n this.stunneds = [];\n this.stun(document.body);\n }\n }\n\n stun (node) {\n for (const child of node.children) {\n if (child === this.element) continue;\n if (child.contains(this.element)) {\n this.stun(child);\n continue;\n }\n this.stunneds.push(new Stunned(child));\n }\n }\n\n maintainFocus (event) {\n if (!this.element.contains(event.target)) {\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n const first = focusables[0];\n event.preventDefault();\n first.focus();\n }\n }\n\n handle (e) {\n if (e.keyCode !== 9) return;\n\n const focusables = this.focusables;\n if (focusables.length === 0) return;\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n\n const index = focusables.indexOf(document.activeElement);\n\n if (e.shiftKey) {\n if (!this.element.contains(document.activeElement) || index < 1) {\n e.preventDefault();\n last.focus();\n } else if (document.activeElement.tabIndex > 0 || focusables[index - 1].tabIndex > 0) {\n e.preventDefault();\n focusables[index - 1].focus();\n }\n } else {\n if (!this.element.contains(document.activeElement) || index === focusables.length - 1 || index === -1) {\n e.preventDefault();\n first.focus();\n } else if (document.activeElement.tabIndex > 0) {\n e.preventDefault();\n focusables[index + 1].focus();\n }\n }\n }\n\n get focusables () {\n let unordereds = api.internals.dom.querySelectorAllArray(this.element, UNORDEREDS);\n\n /**\n * filtrage des radiobutttons de même name (la navigations d'un groupe de radio se fait à la flèche et non pas au tab\n **/\n const radios = api.internals.dom.querySelectorAllArray(document.documentElement, 'input[type=\"radio\"]');\n\n if (radios.length) {\n const groups = {};\n\n for (const radio of radios) {\n const name = radio.getAttribute('name');\n if (groups[name] === undefined) groups[name] = new RadioButtonGroup(name);\n groups[name].push(radio);\n }\n\n unordereds = unordereds.filter((unordered) => {\n if (unordered.tagName.toLowerCase() !== 'input' || unordered.getAttribute('type').toLowerCase() !== 'radio') return true;\n const name = unordered.getAttribute('name');\n return groups[name].keep(unordered);\n });\n }\n\n const ordereds = api.internals.dom.querySelectorAllArray(this.element, ORDEREDS);\n\n ordereds.sort((a, b) => a.tabIndex - b.tabIndex);\n\n const noDuplicates = unordereds.filter((element) => ordereds.indexOf(element) === -1);\n const concateneds = ordereds.concat(noDuplicates);\n return concateneds.filter((element) => element.tabIndex !== '-1' && isFocusable(element, this.element));\n }\n\n untrap () {\n if (!this.trapped) return;\n this.isTrapping = false;\n\n this.element.removeAttribute('aria-modal');\n window.removeEventListener('keydown', this.handling);\n document.body.removeEventListener('focus', this.focusing, true);\n\n this.element = null;\n\n if (IS_STUNNING) {\n for (const stunned of this.stunneds) stunned.unstun();\n this.stunneds = [];\n }\n\n if (this.onUntrap) this.onUntrap();\n }\n\n dispose () {\n this.untrap();\n }\n}\n\nclass Stunned {\n constructor (element) {\n this.element = element;\n // this.hidden = element.getAttribute('aria-hidden');\n this.inert = element.getAttribute('inert');\n\n // this.element.setAttribute('aria-hidden', true);\n this.element.setAttribute('inert', '');\n }\n\n unstun () {\n /*\n if (this.hidden === null) this.element.removeAttribute('aria-hidden');\n else this.element.setAttribute('aria-hidden', this.hidden);\n */\n\n if (this.inert === null) this.element.removeAttribute('inert');\n else this.element.setAttribute('inert', this.inert);\n }\n}\n\nclass RadioButtonGroup {\n constructor (name) {\n this.name = name;\n this.buttons = [];\n }\n\n push (button) {\n this.buttons.push(button);\n if (button === document.activeElement || button.checked || this.selected === undefined) this.selected = button;\n }\n\n keep (button) {\n return this.selected === button;\n }\n}\n\nexport { FocusTrap };\n","import api from '../../api.js';\nimport { FocusTrap } from './focus-trap.js';\n\nclass ModalsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('Modal', false);\n this.focusTrap = new FocusTrap();\n }\n\n static get instanceClassName () {\n return 'ModalsGroup';\n }\n\n apply (value, initial) {\n super.apply(value, initial);\n if (this.current === null) this.focusTrap.untrap();\n else this.focusTrap.trap(this.current.node);\n }\n}\n\nexport { ModalsGroup };\n","import api from '../../api.js';\nimport { ModalSelector } from './modal-selector.js';\n\nconst OFFSET = 32; // 32px => 8v => 2rem\n\nclass ModalBody extends api.core.Instance {\n static get instanceClassName () {\n return 'ModalBody';\n }\n\n init () {\n this.listen('scroll', this.shade.bind(this));\n }\n\n activate () {\n this.isResizing = true;\n this.resize();\n }\n\n deactivate () {\n this.isResizing = false;\n }\n\n shade () {\n if (this.node.scrollHeight > this.node.clientHeight) {\n if (this.node.offsetHeight + this.node.scrollTop >= this.node.scrollHeight) {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n } else {\n this.addClass(ModalSelector.SCROLL_SHADOW);\n }\n } else {\n this.removeClass(ModalSelector.SCROLL_SHADOW);\n }\n }\n\n resize () {\n this.adjust();\n this.request(this.adjust.bind(this));\n }\n\n adjust () {\n const offset = OFFSET * (this.isBreakpoint(api.core.Breakpoints.MD) ? 2 : 1);\n if (this.isLegacy) this.style.maxHeight = `${window.innerHeight - offset}px`;\n else this.style.setProperty('--modal-max-height', `${window.innerHeight - offset}px`);\n this.shade();\n }\n}\n\nexport { ModalBody };\n","import api from './api.js';\n\nimport { Modal } from './script/modal/modal.js';\nimport { ModalButton } from './script/modal/modal-button.js';\nimport { ModalsGroup } from './script/modal/modals-group.js';\nimport { ModalBody } from './script/modal/modal-body.js';\nimport { ModalSelector } from './script/modal/modal-selector.js';\n\napi.modal = {\n Modal: Modal,\n ModalButton: ModalButton,\n ModalBody: ModalBody,\n ModalsGroup: ModalsGroup,\n ModalSelector: ModalSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.modal.ModalSelector.MODAL, api.modal.Modal);\napi.internals.register(api.modal.ModalSelector.BODY, api.modal.ModalBody);\napi.internals.register(api.core.RootSelector.ROOT, api.modal.ModalsGroup);\n\nexport default api;\n"],"names":["const","api","window","ModalSelector","MODAL","internals","ns","selector","SCROLL_SHADOW","BODY","ModalButton","super","core","DisclosureType","OPENED","staticAccessors","instanceClassName","DisclosureButton","ModalAttribute","CONCEALING_BACKDROP","attr","Modal","this","scrolling","resize","bind","resizing","init","listen","click","listenKey","KeyCodes","ESCAPE","conceal","prototypeAccessors","body","element","getDescendantInstances","e","target","node","getAttribute","disclose","withhold","activate","isScrollLocked","setAttribute","preventFocus","removeAttribute","deactivate","Disclosure","UNORDEREDS","join","ORDEREDS","isFocusable","container","Element","style","getComputedStyle","visibility","undefined","contains","display","parentElement","FocusTrap","onTrap","onUntrap","activeElement","waiting","wait","handling","handle","focusing","maintainFocus","current","trapped","trap","untrap","isTrapping","trapping","requestAnimationFrame","focusables","length","focus","addEventListener","document","stun","children","child","stunneds","push","Stunned","event","first","preventDefault","keyCode","last","index","indexOf","shiftKey","tabIndex","unordereds","dom","querySelectorAllArray","radios","documentElement","groups","radio","name","RadioButtonGroup","filter","unordered","tagName","toLowerCase","keep","ordereds","sort","a","b","noDuplicates","concat","removeEventListener","dispose","inert","unstun","buttons","button","checked","selected","ModalsGroup","focusTrap","apply","value","initial","DisclosuresGroup","ModalBody","shade","isResizing","scrollHeight","clientHeight","offsetHeight","scrollTop","removeClass","addClass","adjust","request","offset","isBreakpoint","Breakpoints","MD","isLegacy","maxHeight","innerHeight","setProperty","Instance","modal","register","RootSelector","ROOT"],"mappings":";yBAAAA,ICCMC,EAAMC,OAAuB,KCCtBC,EAAgB,CAC3BC,MAAOH,EAAII,UAAUC,GAAGC,SAAS,SACjCC,cAAeP,EAAII,UAAUC,GAAGC,SAAS,iBACzCE,KAAMR,EAAII,UAAUC,GAAGC,SAAS,gBCH5BG,cACJ,aACEC,YAAMV,EAAIW,KAAKC,eAAeC,kJAGhCC,EAAWC,iCACT,MAAO,+CANef,EAAIW,KAAKK,kBCAtBC,EAAiB,CAC5BC,oBAAqBlB,EAAII,UAAUC,GAAGc,KAAK,wBCEvCC,cACJ,aACEV,YAAMV,EAAIW,KAAKC,eAAeC,OAAQX,EAAcC,MAAOM,EAAa,eACxEY,KAAKC,UAAYD,KAAKE,OAAOC,KAAKH,MAAM,GACxCA,KAAKI,SAAWJ,KAAKE,OAAOC,KAAKH,MAAM,wKAGzCP,EAAWC,iCACT,MAAO,qBAGTW,gBACEhB,YAAMgB,gBACNL,KAAKM,OAAO,QAASN,KAAKO,MAAMJ,KAAKH,OACrCA,KAAKQ,UAAU7B,EAAIW,KAAKmB,SAASC,OAAQV,KAAKW,QAAQR,KAAKH,MAAM,GAAO,IAAQ,GAAM,IAGxFY,EAAIC,oBACF,OAAOb,KAAKc,QAAQC,uBAAuB,YAAa,SAAS,gBAGnER,eAAOS,GACDA,EAAEC,SAAWjB,KAAKkB,MAAkE,UAA1DlB,KAAKmB,aAAavB,EAAeC,sBAAkCG,KAAKW,uBAGxGS,kBAAUC,GACR,QAAKhC,YAAM+B,mBAASC,KAChBrB,KAAKa,MAAMb,KAAKa,KAAKS,WACzBtB,KAAKuB,gBAAiB,EACtBvB,KAAKwB,aAAa,aAAc,QAChCxB,KAAKwB,aAAa,OAAQ,SACnB,gBAGTb,iBAASU,EAAUI,GACjB,QAAKpC,YAAMsB,kBAAQU,EAAUI,KAC7BzB,KAAKuB,gBAAiB,EACtBvB,KAAK0B,gBAAgB,cACrB1B,KAAK0B,gBAAgB,QACjB1B,KAAKa,MAAMb,KAAKa,KAAKc,cAClB,2EAxCShD,EAAIW,KAAKsC,YCYvBC,EAfa,CACjB,iBACA,UACA,yBACA,wBACA,yBACA,2BACA,kBACA,kBACA,mDACA,gCACA,UACA,UAG4BC,OAMxBC,EAJW,CACf,uDAGwBD,OAIpBE,WAAelB,EAASmB,GAC5B,KAAMnB,aAAmBoB,SAAU,OAAO,EAC1CxD,IAAMyD,EAAQvD,OAAOwD,iBAAiBtB,GACtC,IAAKqB,EAAO,OAAO,EACnB,GAAyB,WAArBA,EAAME,WAAyB,OAAO,EAG1C,SAFkBC,IAAdL,IAAyBA,EAAYnB,GAElCmB,EAAUM,SAASzB,IAAU,CAClC,GAAsB,SAAlBqB,EAAMK,QAAoB,OAAO,EACrC1B,EAAUA,EAAQ2B,cAGpB,OAAO,GAGHC,EACJ,SAAaC,EAAQC,GACnB5C,KAAKc,QAAU,KACfd,KAAK6C,cAAgB,KACrB7C,KAAK2C,OAASA,EACd3C,KAAK4C,SAAWA,EAChB5C,KAAK8C,QAAU9C,KAAK+C,KAAK5C,KAAKH,MAC9BA,KAAKgD,SAAWhD,KAAKiD,OAAO9C,KAAKH,MACjCA,KAAKkD,SAAWlD,KAAKmD,cAAchD,KAAKH,MACxCA,KAAKoD,QAAU,iEAGjBxC,EAAIyC,uBAAa,OAAwB,OAAjBrD,KAAKc,qBAE7BwC,cAAMxC,GACAd,KAAKqD,SAASrD,KAAKuD,SAEvBvD,KAAKc,QAAUA,EACfd,KAAKwD,YAAa,EAClBxD,KAAK+C,OAED/C,KAAK2C,QAAQ3C,KAAK2C,sBAGxBI,gBACOf,EAAYhC,KAAKc,SAKtBd,KAAKyD,WAJH7E,OAAO8E,sBAAsB1D,KAAK8C,sBAOtCW,oBACE,GAAKzD,KAAKwD,WAAV,CACAxD,KAAKwD,YAAa,EAClB9E,IAAMiF,EAAa3D,KAAK2D,WACpBA,EAAWC,QAAQD,EAAW,GAAGE,QACrC7D,KAAKc,QAAQU,aAAa,cAAc,GACxC5C,OAAOkF,iBAAiB,UAAW9D,KAAKgD,UACxCe,SAASlD,KAAKiD,iBAAiB,QAAS9D,KAAKkD,UAAU,iBAQzDc,cAAM9C,GACJ,cAAoBA,EAAK+C,yBAAU,CAA9BvF,IAAMwF,OACLA,IAAUlE,KAAKc,UACfoD,EAAM3B,SAASvC,KAAKc,SACtBd,KAAKgE,KAAKE,GAGZlE,KAAKmE,SAASC,KAAK,IAAIC,EAAQH,mBAInCf,uBAAemB,GACb,IAAKtE,KAAKc,QAAQyB,SAAS+B,EAAMrD,QAAS,CACxCvC,IAAMiF,EAAa3D,KAAK2D,WACxB,GAA0B,IAAtBA,EAAWC,OAAc,OAC7BlF,IAAM6F,EAAQZ,EAAW,GACzBW,EAAME,iBACND,EAAMV,sBAIVZ,gBAAQjC,GACN,GAAkB,IAAdA,EAAEyD,QAAN,CAEA/F,IAAMiF,EAAa3D,KAAK2D,WACxB,GAA0B,IAAtBA,EAAWC,OAAf,CAEAlF,IAAM6F,EAAQZ,EAAW,GACnBe,EAAOf,EAAWA,EAAWC,OAAS,GAEtCe,EAAQhB,EAAWiB,QAAQb,SAASlB,eAEtC7B,EAAE6D,UACC7E,KAAKc,QAAQyB,SAASwB,SAASlB,gBAAkB8B,EAAQ,GAC5D3D,EAAEwD,iBACFE,EAAKb,UACIE,SAASlB,cAAciC,SAAW,GAAKnB,EAAWgB,EAAQ,GAAGG,SAAW,KACjF9D,EAAEwD,iBACFb,EAAWgB,EAAQ,GAAGd,SAGnB7D,KAAKc,QAAQyB,SAASwB,SAASlB,gBAAkB8B,IAAUhB,EAAWC,OAAS,IAAgB,IAAXe,EAG9EZ,SAASlB,cAAciC,SAAW,IAC3C9D,EAAEwD,iBACFb,EAAWgB,EAAQ,GAAGd,UAJtB7C,EAAEwD,iBACFD,EAAMV,YAQZjD,EAAI+C,qCACEoB,EAAapG,EAAII,UAAUiG,IAAIC,sBAAsBjF,KAAKc,QAASe,GAKjEqD,EAASvG,EAAII,UAAUiG,IAAIC,sBAAsBlB,SAASoB,gBAAiB,uBAEjF,GAAID,EAAOtB,OAAQ,CAGjB,IAFAlF,IAAM0G,EAAS,SAEKF,kBAAQ,CAAvBxG,IAAM2G,OACHC,EAAOD,EAAMlE,aAAa,aACXmB,IAAjB8C,EAAOE,KAAqBF,EAAOE,GAAQ,IAAIC,EAAiBD,IACpEF,EAAOE,GAAMlB,KAAKiB,GAGpBN,EAAaA,EAAWS,iBAAQC,GAC9B,GAAwC,UAApCA,EAAUC,QAAQC,eAA8E,UAAjDF,EAAUtE,aAAa,QAAQwE,cAA2B,OAAO,EACpHjH,IAAM4G,EAAOG,EAAUtE,aAAa,QACpC,OAAOiE,EAAOE,GAAMM,KAAKH,MAI7B/G,IAAMmH,EAAWlH,EAAII,UAAUiG,IAAIC,sBAAsBjF,KAAKc,QAASiB,GAEvE8D,EAASC,eAAMC,EAAGC,UAAMD,EAAEjB,SAAWkB,EAAElB,YAEvCpG,IAAMuH,EAAelB,EAAWS,iBAAQ1E,UAA2C,IAA/B+E,EAASjB,QAAQ9D,MAErE,OADoB+E,EAASK,OAAOD,GACjBT,iBAAQ1E,SAAiC,OAArBA,EAAQgE,UAAqB9C,EAAYlB,EAASd,EAAKc,yBAGhGyC,kBACOvD,KAAKqD,UACVrD,KAAKwD,YAAa,EAElBxD,KAAKc,QAAQY,gBAAgB,cAC7B9C,OAAOuH,oBAAoB,UAAWnG,KAAKgD,UAC3Ce,SAASlD,KAAKsF,oBAAoB,QAASnG,KAAKkD,UAAU,GAE1DlD,KAAKc,QAAU,KAOXd,KAAK4C,UAAU5C,KAAK4C,yBAG1BwD,mBACEpG,KAAKuD,iDAIT,IAAMc,EACJ,SAAavD,GACXd,KAAKc,QAAUA,EAEfd,KAAKqG,MAAQvF,EAAQK,aAAa,SAGlCnB,KAAKc,QAAQU,aAAa,QAAS,iBAGrC8E,kBAMqB,OAAftG,KAAKqG,MAAgBrG,KAAKc,QAAQY,gBAAgB,SACjD1B,KAAKc,QAAQU,aAAa,QAASxB,KAAKqG,QAIjD,IAAMd,EACJ,SAAaD,GACXtF,KAAKsF,KAAOA,EACZtF,KAAKuG,QAAU,gBAGjBnC,cAAMoC,GACJxG,KAAKuG,QAAQnC,KAAKoC,IACdA,IAAWzC,SAASlB,eAAiB2D,EAAOC,cAA6BnE,IAAlBtC,KAAK0G,YAAwB1G,KAAK0G,SAAWF,gBAG1GZ,cAAMY,GACJ,OAAOxG,KAAK0G,WAAaF,GCnO7B,IAAMG,cACJ,aACEtH,YAAM,SAAS,GACfW,KAAK4G,UAAY,IAAIlE,4IAGvBjD,EAAWC,iCACT,MAAO,2BAGTmH,eAAOC,EAAOC,GACZ1H,YAAMwH,gBAAMC,EAAOC,GACE,OAAjB/G,KAAKoD,QAAkBpD,KAAK4G,UAAUrD,SACrCvD,KAAK4G,UAAUtD,KAAKtD,KAAKoD,QAAQlC,uCAbhBvC,EAAIW,KAAK0H,kBCE7BC,6LACJxH,EAAWC,iCACT,MAAO,yBAGTW,gBACEL,KAAKM,OAAO,SAAUN,KAAKkH,MAAM/G,KAAKH,oBAGxCsB,oBACEtB,KAAKmH,YAAa,EAClBnH,KAAKE,sBAGPyB,sBACE3B,KAAKmH,YAAa,eAGpBD,iBACMlH,KAAKkB,KAAKkG,aAAepH,KAAKkB,KAAKmG,aACjCrH,KAAKkB,KAAKoG,aAAetH,KAAKkB,KAAKqG,WAAavH,KAAKkB,KAAKkG,aAC5DpH,KAAKwH,YAAY3I,EAAcK,eAE/Bc,KAAKyH,SAAS5I,EAAcK,eAG9Bc,KAAKwH,YAAY3I,EAAcK,4BAInCgB,kBACEF,KAAK0H,SACL1H,KAAK2H,QAAQ3H,KAAK0H,OAAOvH,KAAKH,oBAGhC0H,kBACEhJ,IAAMkJ,EAtCK,IAsCc5H,KAAK6H,aAAalJ,EAAIW,KAAKwI,YAAYC,IAAM,EAAI,GACtE/H,KAAKgI,SAAUhI,KAAKmC,MAAM8F,UAAerJ,OAAOsJ,YAAcN,OAC7D5H,KAAKmC,MAAMgG,YAAY,qBAAyBvJ,OAAOsJ,YAAcN,QAC1E5H,KAAKkH,yCAvCevI,EAAIW,KAAK8I,UCGjCzJ,EAAI0J,MAAQ,CACVtI,MAAOA,EACPX,YAAaA,EACb6H,UAAWA,EACXN,YAAaA,EACb9H,cAAeA,GCXjBF,EAAII,UAAUuJ,SAAS3J,EAAI0J,MAAMxJ,cAAcC,MAAOH,EAAI0J,MAAMtI,OAChEpB,EAAII,UAAUuJ,SAAS3J,EAAI0J,MAAMxJ,cAAcM,KAAMR,EAAI0J,MAAMpB,WAC/DtI,EAAII,UAAUuJ,SAAS3J,EAAIW,KAAKiJ,aAAaC,KAAM7J,EAAI0J,MAAM1B"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */
4
4
  @charset "UTF-8";
5
5
 
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */
4
4
  @charset "UTF-8";
5
5
  @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
@@ -1,3 +1,3 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-nav [href]{text-decoration:none}.fr-nav [target=_blank]:after{content:none}.fr-nav ol,.fr-nav ul{list-style-type:none}.fr-nav ol,.fr-nav ul{margin-bottom:0;margin-top:0;padding-left:0}.fr-nav__btn{content:""}.fr-nav__btn:after{background-color:transparent;background-image:url(../../icons/system/arrow-down-s-line.svg);background-repeat:no-repeat;background-size:100%;height:1rem;width:1rem}.fr-mega-menu__category{margin:0}.fr-nav__btn,.fr-nav__link{color:#161616}.fr-nav__btn[aria-current],.fr-nav__link[aria-current]{color:#000091}.fr-nav__btn[aria-current]:before,.fr-nav__link[aria-current]:before{background-color:#000091}.fr-nav__item:before{box-shadow:0 -1px 0 0 #e5e5e5,inset 0 -1px 0 0 #e5e5e5}.fr-nav__item:first-child:before{box-shadow:inset 0 -1px 0 0 #e5e5e5}.fr-nav__item:last-child:before{box-shadow:0 -1px 0 0 #e5e5e5}.fr-mega-menu{background-color:#fff}.fr-mega-menu__list:before{box-shadow:0 1px 0 0 #e5e5e5}}@media (-ms-high-contrast:active) and (-ms-high-contrast:active),(-ms-high-contrast:none) and (-ms-high-contrast:none),all and (-ms-high-contrast:active) and (-ms-high-contrast:none),all and (-ms-high-contrast:none) and (-ms-high-contrast:active){.fr-nav__btn,.fr-nav__link{background-color:transparent}.fr-nav__btn:hover,.fr-nav__link:hover{background-color:rgba(0,0,0,.05)}.fr-nav__btn:active,.fr-nav__link:active{background-color:rgba(0,0,0,.1)}}@media (min-width:62em) and (-ms-high-contrast:active),(min-width:62em) and (-ms-high-contrast:none){.fr-nav__item{position:static}.fr-nav__item--align-right .fr-collapse{transform:translateX(-100%)}.fr-nav__btn[aria-expanded=true]{background-color:#e3e3fd;color:#000091}.fr-menu:after{background-color:#fff}.fr-menu .fr-nav__link{box-shadow:0 calc(-1rem - 1px) 0 -1rem #e5e5e5}.fr-mega-menu>.fr-container:before{background-color:#e3e3fd}.fr-mega-menu__category{box-shadow:0 calc(1rem + 1px) 0 -1rem #e5e5e5}}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */
4
4
  @charset "UTF-8";
5
5
 
@@ -1,3 +1,3 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */.fr-nav{--underline-img:none;--link-blank-content:none;--ul-type:none;--ol-type:none;--ul-start:0;--ol-start:0;--xl-block:0;--li-bottom:0;--ol-content:none;--text-spacing:0;--title-spacing:0;z-index:3000}.fr-nav :focus,.fr-nav :focus-visible{z-index:3500}.fr-nav__list{display:flex;flex-direction:column;margin:0;padding:0}.fr-nav__list>*>.fr-nav__btn,.fr-nav__list>*>.fr-nav__link,.fr-nav__list>.fr-nav__btn,.fr-nav__list>.fr-nav__link{font-weight:700}.fr-nav__item{align-items:stretch;display:flex;flex:0 1 auto;flex-direction:column;position:relative}.fr-nav__item:before{bottom:0;box-shadow:0 -1px 0 0 var(--border-default-grey),inset 0 -1px 0 0 var(--border-default-grey);content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.fr-nav__btn,.fr-nav__link{--hover-tint:var(--hover);--active-tint:var(--active);color:var(--text-action-high-grey);font-size:1rem;line-height:1.5rem;padding:.75rem 0;text-align:left;width:100%}.fr-nav__btn[aria-current],.fr-nav__link[aria-current]{color:var(--text-active-blue-france);position:relative}.fr-nav__btn[aria-current]:before,.fr-nav__link[aria-current]:before{--hover:var(--background-active-blue-france-hover);--active:var(--background-active-blue-france-active);background-color:var(--background-active-blue-france);content:"";display:block;height:1.5rem;left:-1rem;margin-top:-.75rem;position:absolute;top:50%;width:2px}.fr-nav__link{display:block}.fr-nav__link[aria-current]:not([href]){cursor:default;pointer-events:none}.fr-nav__btn{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.fr-nav__btn:after{--icon-size:1rem;background-color:currentColor;content:"";display:inline-block;flex:0 0 auto;height:var(--icon-size);margin-left:.5rem;margin-right:0;-webkit-mask-image:url(../../icons/system/arrow-down-s-line.svg);mask-image:url(../../icons/system/arrow-down-s-line.svg);-webkit-mask-size:100% 100%;mask-size:100% 100%;transition:transform .3s;vertical-align:middle;width:var(--icon-size)}.fr-nav__btn[aria-expanded=true]:after{transform:rotate(-180deg)}.fr-menu{margin:0 -1rem;padding:0 1rem;width:auto;z-index:2000}.fr-menu :focus,.fr-menu :focus-visible{z-index:2500}.fr-menu__list{margin:0;padding:.5rem 0 1.5rem}.fr-menu__list>:first-child,.fr-menu__list>:first-child>.fr-nav__link,.fr-menu__list>:hover,.fr-menu__list>:hover+*,.fr-menu__list>:hover+*>.fr-nav__link,.fr-menu__list>:hover>.fr-nav__link{box-shadow:none}.fr-menu .fr-nav__link{padding-left:1rem;padding-right:1rem}.fr-menu .fr-nav__link:before{left:0}.fr-mega-menu{--hover:var(--background-elevated-grey-hover);--active:var(--background-elevated-grey-active);background-color:var(--background-elevated-grey);margin:-.25rem -1rem 1px;padding:.25rem 1rem 0;z-index:2000}.fr-mega-menu :focus,.fr-mega-menu :focus-visible{z-index:2500}.fr-mega-menu:focus{outline:none}.fr-mega-menu .fr-btn--close{display:none}.fr-mega-menu .fr-nav__link{padding-left:1rem;padding-right:1rem}.fr-mega-menu .fr-nav__link:before{left:0}.fr-mega-menu__leader{--text-spacing:0 0 0.5rem;--title-spacing:0 0 0.5rem;padding-left:1rem;padding-right:1rem;padding-top:1rem}.fr-mega-menu__category{font-weight:700}.fr-mega-menu__list{padding-bottom:1.5rem;position:relative}.fr-mega-menu__list:before{bottom:0;box-shadow:0 1px 0 0 var(--border-default-grey);content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.fr-nav__item:first-child:before{box-shadow:inset 0 -1px 0 0 var(--border-default-grey)}.fr-nav__item:last-child:before{box-shadow:0 -1px 0 0 var(--border-default-grey)}@media (min-width:62em){.fr-nav__list{flex-direction:row;flex-wrap:nowrap;margin:0 -1rem}.fr-nav__list>:first-child:nth-last-child(2)~*,.fr-nav__list>:first-child:nth-last-child(3)~*,.fr-nav__list>:first-child:nth-last-child(4)~*{margin-left:1.25rem}.fr-nav__list>*>.fr-nav__btn,.fr-nav__list>*>.fr-nav__link,.fr-nav__list>.fr-nav__btn,.fr-nav__list>.fr-nav__link{font-weight:400;height:100%;margin:0;min-height:3.5rem;padding:1rem;width:auto}.fr-nav__list>*>.fr-nav__btn[aria-current]:before,.fr-nav__list>*>.fr-nav__link[aria-current]:before,.fr-nav__list>.fr-nav__btn[aria-current]:before,.fr-nav__list>.fr-nav__link[aria-current]:before{bottom:0;height:2px;left:0;margin-top:0;position:absolute;top:auto;width:100%}.fr-nav__list>*>.fr-nav__btn[aria-current]:not([aria-expanded=true]),.fr-nav__list>*>.fr-nav__link[aria-current]:not([aria-expanded=true]),.fr-nav__list>.fr-nav__btn[aria-current]:not([aria-expanded=true]),.fr-nav__list>.fr-nav__link[aria-current]:not([aria-expanded=true]){z-index:3000}.fr-nav__item{align-items:flex-start;position:static}.fr-nav__item:before{content:none}.fr-nav__item--align-right{align-items:flex-end}.fr-nav__btn,.fr-nav__link{font-size:.875rem;line-height:1.5rem}.fr-nav__btn{justify-content:flex-start;padding:1rem .75rem 1rem 1rem}.fr-menu{margin-top:-.25rem;padding-top:.25rem;position:absolute;top:100%}.fr-menu:after{--hover:var(--background-elevated-grey-hover);--active:var(--background-elevated-grey-active);background-color:var(--background-elevated-grey);bottom:0;content:"";display:block;left:0;margin:.25rem 1rem 2rem;position:absolute;right:0;top:0;z-index:-1}.fr-menu__list{padding:0 0 2rem;width:20rem}.fr-menu .fr-nav__link{box-shadow:0 calc(-1rem - 1px) 0 -1rem var(--border-default-grey);padding:.75rem 1rem}.fr-menu .fr-nav__link:before{left:0}.fr-mega-menu{left:0;margin:-2px 0 0;padding:0 0 2.25rem;position:absolute;right:0;top:100%}.fr-mega-menu>.fr-container:before{--hover:var(--background-open-blue-france-hover);--active:var(--background-open-blue-france-active);background-color:var(--background-open-blue-france);content:"";display:block;height:2px;margin-bottom:1rem;margin-left:-1rem;margin-right:-1rem}.fr-mega-menu .fr-btn--close{display:flex}.fr-mega-menu .fr-nav__link{padding:.75rem 1rem}.fr-mega-menu__leader{padding-left:0;padding-right:0;padding-top:0}.fr-mega-menu__list:before{content:none}.fr-nav__btn[aria-expanded=true]{--hover:var(--background-open-blue-france-hover);--active:var(--background-open-blue-france-active);background-color:var(--background-open-blue-france);color:var(--text-active-blue-france)}.fr-mega-menu__category{box-shadow:0 calc(1rem + 1px) 0 -1rem var(--border-default-grey)}}
@@ -1,3 +1,3 @@
1
1
  /*!
2
- * DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */.fr-nav{--underline-img:none;--link-blank-content:none;--ul-type:none;--ol-type:none;--ul-start:0;--ol-start:0;--xl-block:0;--li-bottom:0;--ol-content:none;--text-spacing:0;--title-spacing:0;z-index:3000}.fr-nav :focus,.fr-nav :focus-visible{z-index:3500}.fr-nav__list{display:flex;flex-direction:column;margin:0;padding:0}.fr-nav__list>*>.fr-nav__btn,.fr-nav__list>*>.fr-nav__link,.fr-nav__list>.fr-nav__btn,.fr-nav__list>.fr-nav__link{font-weight:700}.fr-nav__item{align-items:stretch;display:flex;flex:0 1 auto;flex-direction:column;position:relative}.fr-nav__item:before{bottom:0;box-shadow:0 -1px 0 0 var(--border-default-grey),inset 0 -1px 0 0 var(--border-default-grey);content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.fr-nav__btn,.fr-nav__link{--hover-tint:var(--hover);--active-tint:var(--active);color:var(--text-action-high-grey);font-size:1rem;line-height:1.5rem;padding:.75rem 0;text-align:left;width:100%}.fr-nav__btn[aria-current],.fr-nav__link[aria-current]{color:var(--text-active-blue-france);position:relative}.fr-nav__btn[aria-current]:before,.fr-nav__link[aria-current]:before{--hover:var(--background-active-blue-france-hover);--active:var(--background-active-blue-france-active);background-color:var(--background-active-blue-france);content:"";display:block;height:1.5rem;left:-1rem;margin-top:-.75rem;position:absolute;top:50%;width:2px}.fr-nav__link{display:block}.fr-nav__link[aria-current]:not([href]){cursor:default;pointer-events:none}.fr-nav__btn{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.fr-nav__btn:after{--icon-size:1rem;background-color:currentColor;content:"";display:inline-block;flex:0 0 auto;height:var(--icon-size);margin-left:.5rem;margin-right:0;-webkit-mask-image:url(../../icons/system/arrow-down-s-line.svg);mask-image:url(../../icons/system/arrow-down-s-line.svg);-webkit-mask-size:100% 100%;mask-size:100% 100%;transition:transform .3s;vertical-align:middle;width:var(--icon-size)}.fr-nav__btn[aria-expanded=true]:after{transform:rotate(-180deg)}.fr-menu{margin:0 -1rem;padding:0 1rem;width:auto;z-index:2000}.fr-menu :focus,.fr-menu :focus-visible{z-index:2500}.fr-menu__list{margin:0;padding:.5rem 0 1.5rem}.fr-menu__list>:first-child,.fr-menu__list>:first-child>.fr-nav__link,.fr-menu__list>:hover,.fr-menu__list>:hover+*,.fr-menu__list>:hover+*>.fr-nav__link,.fr-menu__list>:hover>.fr-nav__link{box-shadow:none}.fr-menu .fr-nav__link{padding-left:1rem;padding-right:1rem}.fr-menu .fr-nav__link:before{left:0}.fr-mega-menu{--hover:var(--background-elevated-grey-hover);--active:var(--background-elevated-grey-active);background-color:var(--background-elevated-grey);margin:-.25rem -1rem 1px;padding:.25rem 1rem 0;z-index:2000}.fr-mega-menu :focus,.fr-mega-menu :focus-visible{z-index:2500}.fr-mega-menu:focus{outline:none}.fr-mega-menu .fr-btn--close{display:none}.fr-mega-menu .fr-nav__link{padding-left:1rem;padding-right:1rem}.fr-mega-menu .fr-nav__link:before{left:0}.fr-mega-menu__leader{--text-spacing:0 0 0.5rem;--title-spacing:0 0 0.5rem;padding-left:1rem;padding-right:1rem;padding-top:1rem}.fr-mega-menu__category{font-weight:700}.fr-mega-menu__list{padding-bottom:1.5rem;position:relative}.fr-mega-menu__list:before{bottom:0;box-shadow:0 1px 0 0 var(--border-default-grey);content:"";display:block;height:100%;left:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.fr-nav__item:first-child:before{box-shadow:inset 0 -1px 0 0 var(--border-default-grey)}.fr-nav__item:last-child:before{box-shadow:0 -1px 0 0 var(--border-default-grey)}@media (min-width:62em){.fr-nav__list{flex-direction:row;flex-wrap:nowrap;margin:0 -1rem}.fr-nav__list>:first-child:nth-last-child(2)~*,.fr-nav__list>:first-child:nth-last-child(3)~*,.fr-nav__list>:first-child:nth-last-child(4)~*{margin-left:1.25rem}.fr-nav__list>*>.fr-nav__btn,.fr-nav__list>*>.fr-nav__link,.fr-nav__list>.fr-nav__btn,.fr-nav__list>.fr-nav__link{font-weight:400;height:100%;margin:0;min-height:3.5rem;padding:1rem;width:auto}.fr-nav__list>*>.fr-nav__btn[aria-current]:before,.fr-nav__list>*>.fr-nav__link[aria-current]:before,.fr-nav__list>.fr-nav__btn[aria-current]:before,.fr-nav__list>.fr-nav__link[aria-current]:before{bottom:0;height:2px;left:0;margin-top:0;position:absolute;top:auto;width:100%}.fr-nav__list>*>.fr-nav__btn[aria-current]:not([aria-expanded=true]),.fr-nav__list>*>.fr-nav__link[aria-current]:not([aria-expanded=true]),.fr-nav__list>.fr-nav__btn[aria-current]:not([aria-expanded=true]),.fr-nav__list>.fr-nav__link[aria-current]:not([aria-expanded=true]){z-index:3000}.fr-nav__item{align-items:flex-start;position:static}.fr-nav__item:before{content:none}.fr-nav__item--align-right{align-items:flex-end}.fr-nav__btn,.fr-nav__link{font-size:.875rem;line-height:1.5rem}.fr-nav__btn{justify-content:flex-start;padding:1rem .75rem 1rem 1rem}.fr-menu{margin-top:-.25rem;padding-top:.25rem;position:absolute;top:100%}.fr-menu:after{--hover:var(--background-elevated-grey-hover);--active:var(--background-elevated-grey-active);background-color:var(--background-elevated-grey);bottom:0;content:"";display:block;left:0;margin:.25rem 1rem 2rem;position:absolute;right:0;top:0;z-index:-1}.fr-menu__list{padding:0 0 2rem;width:20rem}.fr-menu .fr-nav__link{box-shadow:0 calc(-1rem - 1px) 0 -1rem var(--border-default-grey);padding:.75rem 1rem}.fr-menu .fr-nav__link:before{left:0}.fr-mega-menu{left:0;margin:-2px 0 0;padding:0 0 2.25rem;position:absolute;right:0;top:100%}.fr-mega-menu>.fr-container:before{--hover:var(--background-open-blue-france-hover);--active:var(--background-open-blue-france-active);background-color:var(--background-open-blue-france);content:"";display:block;height:2px;margin-bottom:1rem;margin-left:-1rem;margin-right:-1rem}.fr-mega-menu .fr-btn--close{display:flex}.fr-mega-menu .fr-nav__link{padding:.75rem 1rem}.fr-mega-menu__leader{padding-left:0;padding-right:0;padding-top:0}.fr-mega-menu__list:before{content:none}.fr-nav__btn[aria-expanded=true]{--hover:var(--background-open-blue-france-hover);--active:var(--background-open-blue-france-active);background-color:var(--background-open-blue-france);color:var(--text-active-blue-france)}.fr-mega-menu__category{box-shadow:0 calc(1rem + 1px) 0 -1rem var(--border-default-grey)}}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.fr-nav [href]{text-decoration:none}.fr-nav [target=_blank]:after{content:none}.fr-nav ol,.fr-nav ul{list-style-type:none}.fr-nav ol,.fr-nav ul{margin-bottom:0;margin-top:0;padding-left:0}.fr-nav__btn{content:""}.fr-nav__btn:after{background-color:transparent;background-image:url(../../icons/system/arrow-down-s-line.svg);background-repeat:no-repeat;background-size:100%;height:1rem;width:1rem}.fr-mega-menu__category{margin:0}.fr-nav__btn,.fr-nav__link{color:#161616}.fr-nav__btn[aria-current],.fr-nav__link[aria-current]{color:#000091}.fr-nav__btn[aria-current]:before,.fr-nav__link[aria-current]:before{background-color:#000091}.fr-nav__item:before{box-shadow:0 -1px 0 0 #e5e5e5,inset 0 -1px 0 0 #e5e5e5}.fr-nav__item:first-child:before{box-shadow:inset 0 -1px 0 0 #e5e5e5}.fr-nav__item:last-child:before{box-shadow:0 -1px 0 0 #e5e5e5}.fr-mega-menu{background-color:#fff}.fr-mega-menu__list:before{box-shadow:0 1px 0 0 #e5e5e5}}@media (-ms-high-contrast:active) and (-ms-high-contrast:active),(-ms-high-contrast:none) and (-ms-high-contrast:none),all and (-ms-high-contrast:active) and (-ms-high-contrast:none),all and (-ms-high-contrast:none) and (-ms-high-contrast:active){.fr-nav__btn,.fr-nav__link{background-color:transparent}.fr-nav__btn:hover,.fr-nav__link:hover{background-color:rgba(0,0,0,.05)}.fr-nav__btn:active,.fr-nav__link:active{background-color:rgba(0,0,0,.1)}}@media (min-width:62em) and (-ms-high-contrast:active),(min-width:62em) and (-ms-high-contrast:none){.fr-nav__item{position:static}.fr-nav__item--align-right .fr-collapse{transform:translateX(-100%)}.fr-nav__btn[aria-expanded=true]{background-color:#e3e3fd;color:#000091}.fr-menu:after{background-color:#fff}.fr-menu .fr-nav__link{box-shadow:0 calc(-1rem - 1px) 0 -1rem #e5e5e5}.fr-mega-menu>.fr-container:before{background-color:#e3e3fd}.fr-mega-menu__category{box-shadow:0 calc(1rem + 1px) 0 -1rem #e5e5e5}}
@@ -1,10 +1,10 @@
1
- /*! DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
2
2
 
3
3
  const config = {
4
4
  prefix: 'fr',
5
5
  namespace: 'dsfr',
6
6
  organisation: '@gouvfr',
7
- version: '1.5.0'
7
+ version: '1.5.1'
8
8
  };
9
9
 
10
10
  const api = window[config.namespace];
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/navigation/script/navigation/navigation-selector.js","../../../src/component/navigation/script/navigation/navigation-item.js","../../../src/component/navigation/script/navigation/navigation-mouse-position.js","../../../src/component/navigation/script/navigation/navigation.js","../../../src/component/navigation/index.js","../../../src/component/navigation/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.0'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const NavigationSelector = {\n NAVIGATION: api.internals.ns.selector('nav'),\n COLLAPSE: `${api.internals.ns.selector('nav__item')} > ${api.internals.ns.selector('collapse')}`,\n ITEM: api.internals.ns.selector('nav__item'),\n ITEM_RIGHT: api.internals.ns('nav__item--align-right'),\n MENU: api.internals.ns.selector('menu')\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\n\nclass NavigationItem extends api.core.Instance {\n constructor () {\n super();\n this._isRightAligned = false;\n }\n\n static get instanceClassName () {\n return 'NavigationItem';\n }\n\n init () {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.calculate.bind(this));\n this.addAscent(api.core.DisclosureEmission.REMOVED, this.calculate.bind(this));\n this.isResizing = true;\n this.calculate();\n }\n\n resize () {\n this.calculate();\n }\n\n calculate () {\n const collapse = this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n if (collapse && this.isBreakpoint(api.core.Breakpoints.LG) && collapse.element.node.matches(NavigationSelector.MENU)) {\n const right = this.element.node.parentElement.getBoundingClientRect().right;\n const width = collapse.element.node.getBoundingClientRect().width;\n const left = this.element.node.getBoundingClientRect().left;\n this.isRightAligned = left + width > right;\n } else this.isRightAligned = false;\n }\n\n get isRightAligned () {\n return this._isRightAligned;\n }\n\n set isRightAligned (value) {\n if (this._isRightAligned === value) return;\n this._isRightAligned = value;\n if (value) api.internals.dom.addClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n else api.internals.dom.removeClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n }\n}\n\nexport { NavigationItem };\n","export const NavigationMousePosition = {\n NONE: -1,\n INSIDE: 0,\n OUTSIDE: 1\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\nimport { NavigationMousePosition } from './navigation-mouse-position.js';\n\nclass Navigation extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'Navigation';\n }\n\n init () {\n super.init();\n this.clicked = false;\n this.out = false;\n this.listen('focusout', this.focusOut.bind(this));\n this.listen('mousedown', this.down.bind(this));\n }\n\n validate (member) {\n return member.element.node.matches(NavigationSelector.COLLAPSE);\n }\n\n down (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG) || this.index === -1 || !this.current) return;\n this.position = this.current.element.node.contains(e.target) ? NavigationMousePosition.INSIDE : NavigationMousePosition.OUTSIDE;\n this.request(this.getPosition.bind(this));\n }\n\n focusOut (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n this.out = true;\n this.request(this.getPosition.bind(this));\n }\n\n getPosition () {\n if (this.out) {\n switch (this.position) {\n case NavigationMousePosition.OUTSIDE:\n this.index = -1;\n break;\n\n case NavigationMousePosition.INSIDE:\n if (this.current) this.current.focus();\n break;\n\n default:\n if (this.index > -1 && !this.current.hasFocus) this.index = -1;\n }\n }\n this.position = NavigationMousePosition.NONE;\n this.out = false;\n }\n\n get index () { return super.index; }\n\n set index (value) {\n if (value === -1 && this.current !== null && this.current.hasFocus) this.current.focus();\n super.index = value;\n }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { NavigationItem } from './script/navigation/navigation-item.js';\nimport { Navigation } from './script/navigation/navigation.js';\nimport { NavigationSelector } from './script/navigation/navigation-selector.js';\nimport { NavigationMousePosition } from './script/navigation/navigation-mouse-position.js';\n\napi.navigation = {\n Navigation: Navigation,\n NavigationItem: NavigationItem,\n NavigationMousePosition: NavigationMousePosition,\n NavigationSelector: NavigationSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\n\nexport default api;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"navigation.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/navigation/script/navigation/navigation-selector.js","../../../src/component/navigation/script/navigation/navigation-item.js","../../../src/component/navigation/script/navigation/navigation-mouse-position.js","../../../src/component/navigation/script/navigation/navigation.js","../../../src/component/navigation/index.js","../../../src/component/navigation/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.5.1'\r\n};\r\n\r\nexport default config;\r\n","import config from './config.js';\nconst api = window[config.namespace];\nexport default api;\n","import api from '../../api.js';\n\nexport const NavigationSelector = {\n NAVIGATION: api.internals.ns.selector('nav'),\n COLLAPSE: `${api.internals.ns.selector('nav__item')} > ${api.internals.ns.selector('collapse')}`,\n ITEM: api.internals.ns.selector('nav__item'),\n ITEM_RIGHT: api.internals.ns('nav__item--align-right'),\n MENU: api.internals.ns.selector('menu')\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\n\nclass NavigationItem extends api.core.Instance {\n constructor () {\n super();\n this._isRightAligned = false;\n }\n\n static get instanceClassName () {\n return 'NavigationItem';\n }\n\n init () {\n this.addAscent(api.core.DisclosureEmission.ADDED, this.calculate.bind(this));\n this.addAscent(api.core.DisclosureEmission.REMOVED, this.calculate.bind(this));\n this.isResizing = true;\n this.calculate();\n }\n\n resize () {\n this.calculate();\n }\n\n calculate () {\n const collapse = this.element.getDescendantInstances(api.core.Collapse.instanceClassName, null, true)[0];\n if (collapse && this.isBreakpoint(api.core.Breakpoints.LG) && collapse.element.node.matches(NavigationSelector.MENU)) {\n const right = this.element.node.parentElement.getBoundingClientRect().right;\n const width = collapse.element.node.getBoundingClientRect().width;\n const left = this.element.node.getBoundingClientRect().left;\n this.isRightAligned = left + width > right;\n } else this.isRightAligned = false;\n }\n\n get isRightAligned () {\n return this._isRightAligned;\n }\n\n set isRightAligned (value) {\n if (this._isRightAligned === value) return;\n this._isRightAligned = value;\n if (value) api.internals.dom.addClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n else api.internals.dom.removeClass(this.element.node, NavigationSelector.ITEM_RIGHT);\n }\n}\n\nexport { NavigationItem };\n","export const NavigationMousePosition = {\n NONE: -1,\n INSIDE: 0,\n OUTSIDE: 1\n};\n","import api from '../../api.js';\nimport { NavigationSelector } from './navigation-selector.js';\nimport { NavigationMousePosition } from './navigation-mouse-position.js';\n\nclass Navigation extends api.core.CollapsesGroup {\n static get instanceClassName () {\n return 'Navigation';\n }\n\n init () {\n super.init();\n this.clicked = false;\n this.out = false;\n this.listen('focusout', this.focusOut.bind(this));\n this.listen('mousedown', this.down.bind(this));\n }\n\n validate (member) {\n return member.element.node.matches(NavigationSelector.COLLAPSE);\n }\n\n down (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG) || this.index === -1 || !this.current) return;\n this.position = this.current.element.node.contains(e.target) ? NavigationMousePosition.INSIDE : NavigationMousePosition.OUTSIDE;\n this.request(this.getPosition.bind(this));\n }\n\n focusOut (e) {\n if (!this.isBreakpoint(api.core.Breakpoints.LG)) return;\n this.out = true;\n this.request(this.getPosition.bind(this));\n }\n\n getPosition () {\n if (this.out) {\n switch (this.position) {\n case NavigationMousePosition.OUTSIDE:\n this.index = -1;\n break;\n\n case NavigationMousePosition.INSIDE:\n if (this.current) this.current.focus();\n break;\n\n default:\n if (this.index > -1 && !this.current.hasFocus) this.index = -1;\n }\n }\n this.position = NavigationMousePosition.NONE;\n this.out = false;\n }\n\n get index () { return super.index; }\n\n set index (value) {\n if (value === -1 && this.current !== null && this.current.hasFocus) this.current.focus();\n super.index = value;\n }\n}\n\nexport { Navigation };\n","import api from './api.js';\nimport { NavigationItem } from './script/navigation/navigation-item.js';\nimport { Navigation } from './script/navigation/navigation.js';\nimport { NavigationSelector } from './script/navigation/navigation-selector.js';\nimport { NavigationMousePosition } from './script/navigation/navigation-mouse-position.js';\n\napi.navigation = {\n Navigation: Navigation,\n NavigationItem: NavigationItem,\n NavigationMousePosition: NavigationMousePosition,\n NavigationSelector: NavigationSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.navigation.NavigationSelector.NAVIGATION, api.navigation.Navigation);\napi.internals.register(api.navigation.NavigationSelector.ITEM, api.navigation.NavigationItem);\n\nexport default api;\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /*! DSFR v1.5.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.5.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
2
2
  const t=window.dsfr,i={NAVIGATION:t.internals.ns.selector("nav"),COLLAPSE:`${t.internals.ns.selector("nav__item")} > ${t.internals.ns.selector("collapse")}`,ITEM:t.internals.ns.selector("nav__item"),ITEM_RIGHT:t.internals.ns("nav__item--align-right"),MENU:t.internals.ns.selector("menu")};class e extends t.core.Instance{constructor(){super(),this._isRightAligned=!1}static get instanceClassName(){return"NavigationItem"}init(){this.addAscent(t.core.DisclosureEmission.ADDED,this.calculate.bind(this)),this.addAscent(t.core.DisclosureEmission.REMOVED,this.calculate.bind(this)),this.isResizing=!0,this.calculate()}resize(){this.calculate()}calculate(){const e=this.element.getDescendantInstances(t.core.Collapse.instanceClassName,null,!0)[0];if(e&&this.isBreakpoint(t.core.Breakpoints.LG)&&e.element.node.matches(i.MENU)){const t=this.element.node.parentElement.getBoundingClientRect().right,i=e.element.node.getBoundingClientRect().width,s=this.element.node.getBoundingClientRect().left;this.isRightAligned=s+i>t}else this.isRightAligned=!1}get isRightAligned(){return this._isRightAligned}set isRightAligned(e){this._isRightAligned!==e&&(this._isRightAligned=e,e?t.internals.dom.addClass(this.element.node,i.ITEM_RIGHT):t.internals.dom.removeClass(this.element.node,i.ITEM_RIGHT))}}const s={NONE:-1,INSIDE:0,OUTSIDE:1};class n extends t.core.CollapsesGroup{static get instanceClassName(){return"Navigation"}init(){super.init(),this.clicked=!1,this.out=!1,this.listen("focusout",this.focusOut.bind(this)),this.listen("mousedown",this.down.bind(this))}validate(t){return t.element.node.matches(i.COLLAPSE)}down(i){this.isBreakpoint(t.core.Breakpoints.LG)&&-1!==this.index&&this.current&&(this.position=this.current.element.node.contains(i.target)?s.INSIDE:s.OUTSIDE,this.request(this.getPosition.bind(this)))}focusOut(i){this.isBreakpoint(t.core.Breakpoints.LG)&&(this.out=!0,this.request(this.getPosition.bind(this)))}getPosition(){if(this.out)switch(this.position){case s.OUTSIDE:this.index=-1;break;case s.INSIDE:this.current&&this.current.focus();break;default:this.index>-1&&!this.current.hasFocus&&(this.index=-1)}this.position=s.NONE,this.out=!1}get index(){return super.index}set index(t){-1===t&&null!==this.current&&this.current.hasFocus&&this.current.focus(),super.index=t}}t.navigation={Navigation:n,NavigationItem:e,NavigationMousePosition:s,NavigationSelector:i},t.internals.register(t.navigation.NavigationSelector.NAVIGATION,t.navigation.Navigation),t.internals.register(t.navigation.NavigationSelector.ITEM,t.navigation.NavigationItem);
3
3
  //# sourceMappingURL=navigation.module.min.js.map