@gouvfr/dsfr 1.4.0 → 1.4.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 (427) hide show
  1. package/.config/config.js +1 -1
  2. package/.config/icon-deprecated.scss +1 -1
  3. package/.config/icon.scss +1 -1
  4. package/dist/component/accordion/accordion.css +1 -1
  5. package/dist/component/accordion/accordion.legacy.css +1 -1
  6. package/dist/component/accordion/accordion.legacy.min.css +1 -1
  7. package/dist/component/accordion/accordion.main.css +1 -1
  8. package/dist/component/accordion/accordion.main.min.css +1 -1
  9. package/dist/component/accordion/accordion.min.css +1 -1
  10. package/dist/component/accordion/accordion.module.js +2 -2
  11. package/dist/component/accordion/accordion.module.js.map +1 -1
  12. package/dist/component/accordion/accordion.module.min.js +1 -1
  13. package/dist/component/accordion/accordion.module.min.js.map +1 -1
  14. package/dist/component/accordion/accordion.nomodule.js +2 -2
  15. package/dist/component/accordion/accordion.nomodule.js.map +1 -1
  16. package/dist/component/accordion/accordion.nomodule.min.js +1 -1
  17. package/dist/component/accordion/accordion.nomodule.min.js.map +1 -1
  18. package/dist/component/alert/alert.css +1 -1
  19. package/dist/component/alert/alert.legacy.css +1 -1
  20. package/dist/component/alert/alert.legacy.min.css +2 -2
  21. package/dist/component/alert/alert.main.css +1 -1
  22. package/dist/component/alert/alert.main.min.css +1 -1
  23. package/dist/component/alert/alert.min.css +2 -2
  24. package/dist/component/badge/badge.css +1 -1
  25. package/dist/component/badge/badge.legacy.css +1 -1
  26. package/dist/component/badge/badge.legacy.min.css +1 -1
  27. package/dist/component/badge/badge.main.css +1 -1
  28. package/dist/component/badge/badge.main.min.css +1 -1
  29. package/dist/component/badge/badge.min.css +1 -1
  30. package/dist/component/breadcrumb/breadcrumb.css +1 -1
  31. package/dist/component/breadcrumb/breadcrumb.legacy.css +1 -1
  32. package/dist/component/breadcrumb/breadcrumb.legacy.min.css +1 -1
  33. package/dist/component/breadcrumb/breadcrumb.main.css +1 -1
  34. package/dist/component/breadcrumb/breadcrumb.main.min.css +1 -1
  35. package/dist/component/breadcrumb/breadcrumb.min.css +1 -1
  36. package/dist/component/breadcrumb/breadcrumb.module.js +2 -2
  37. package/dist/component/breadcrumb/breadcrumb.module.js.map +1 -1
  38. package/dist/component/breadcrumb/breadcrumb.module.min.js +1 -1
  39. package/dist/component/breadcrumb/breadcrumb.module.min.js.map +1 -1
  40. package/dist/component/breadcrumb/breadcrumb.nomodule.js +2 -2
  41. package/dist/component/breadcrumb/breadcrumb.nomodule.js.map +1 -1
  42. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js +1 -1
  43. package/dist/component/breadcrumb/breadcrumb.nomodule.min.js.map +1 -1
  44. package/dist/component/button/button.css +1 -1
  45. package/dist/component/button/button.legacy.css +1 -1
  46. package/dist/component/button/button.legacy.min.css +1 -1
  47. package/dist/component/button/button.main.css +1 -1
  48. package/dist/component/button/button.main.min.css +1 -1
  49. package/dist/component/button/button.min.css +1 -1
  50. package/dist/component/button/button.module.js +2 -2
  51. package/dist/component/button/button.module.js.map +1 -1
  52. package/dist/component/button/button.module.min.js +1 -1
  53. package/dist/component/button/button.module.min.js.map +1 -1
  54. package/dist/component/button/button.nomodule.js +2 -2
  55. package/dist/component/button/button.nomodule.js.map +1 -1
  56. package/dist/component/button/button.nomodule.min.js +1 -1
  57. package/dist/component/button/button.nomodule.min.js.map +1 -1
  58. package/dist/component/callout/callout.css +1 -1
  59. package/dist/component/callout/callout.legacy.css +1 -1
  60. package/dist/component/callout/callout.legacy.min.css +1 -1
  61. package/dist/component/callout/callout.main.css +1 -1
  62. package/dist/component/callout/callout.main.min.css +1 -1
  63. package/dist/component/callout/callout.min.css +1 -1
  64. package/dist/component/card/card.css +1 -1
  65. package/dist/component/card/card.legacy.css +1 -1
  66. package/dist/component/card/card.legacy.min.css +1 -1
  67. package/dist/component/card/card.main.css +1 -1
  68. package/dist/component/card/card.main.min.css +1 -1
  69. package/dist/component/card/card.min.css +1 -1
  70. package/dist/component/checkbox/checkbox.css +1 -1
  71. package/dist/component/checkbox/checkbox.legacy.css +1 -1
  72. package/dist/component/checkbox/checkbox.legacy.min.css +1 -1
  73. package/dist/component/checkbox/checkbox.main.css +1 -1
  74. package/dist/component/checkbox/checkbox.main.min.css +1 -1
  75. package/dist/component/checkbox/checkbox.min.css +1 -1
  76. package/dist/component/component.css +74 -233
  77. package/dist/component/component.css.map +1 -1
  78. package/dist/component/component.legacy.css +33 -21
  79. package/dist/component/component.legacy.css.map +1 -1
  80. package/dist/component/component.legacy.min.css +2 -2
  81. package/dist/component/component.legacy.min.css.map +1 -1
  82. package/dist/component/component.main.css +42 -213
  83. package/dist/component/component.main.css.map +1 -1
  84. package/dist/component/component.main.min.css +2 -2
  85. package/dist/component/component.main.min.css.map +1 -1
  86. package/dist/component/component.min.css +3 -3
  87. package/dist/component/component.min.css.map +1 -1
  88. package/dist/component/component.module.js +2 -2
  89. package/dist/component/component.module.js.map +1 -1
  90. package/dist/component/component.module.min.js +1 -1
  91. package/dist/component/component.module.min.js.map +1 -1
  92. package/dist/component/component.nomodule.js +2 -2
  93. package/dist/component/component.nomodule.js.map +1 -1
  94. package/dist/component/component.nomodule.min.js +1 -1
  95. package/dist/component/component.nomodule.min.js.map +1 -1
  96. package/dist/component/connect/connect.css +1 -1
  97. package/dist/component/connect/connect.legacy.css +1 -1
  98. package/dist/component/connect/connect.legacy.min.css +1 -1
  99. package/dist/component/connect/connect.main.css +1 -1
  100. package/dist/component/connect/connect.main.min.css +1 -1
  101. package/dist/component/connect/connect.min.css +1 -1
  102. package/dist/component/consent/consent.css +1 -1
  103. package/dist/component/consent/consent.legacy.css +1 -1
  104. package/dist/component/consent/consent.legacy.min.css +1 -1
  105. package/dist/component/consent/consent.main.css +1 -1
  106. package/dist/component/consent/consent.main.min.css +1 -1
  107. package/dist/component/consent/consent.min.css +1 -1
  108. package/dist/component/content/content.css +1 -1
  109. package/dist/component/content/content.legacy.css +1 -1
  110. package/dist/component/content/content.legacy.min.css +1 -1
  111. package/dist/component/content/content.main.css +1 -1
  112. package/dist/component/content/content.main.min.css +1 -1
  113. package/dist/component/content/content.min.css +1 -1
  114. package/dist/component/display/display.module.js +2 -2
  115. package/dist/component/display/display.module.js.map +1 -1
  116. package/dist/component/display/display.module.min.js +1 -1
  117. package/dist/component/display/display.module.min.js.map +1 -1
  118. package/dist/component/display/display.nomodule.js +2 -2
  119. package/dist/component/display/display.nomodule.js.map +1 -1
  120. package/dist/component/display/display.nomodule.min.js +1 -1
  121. package/dist/component/display/display.nomodule.min.js.map +1 -1
  122. package/dist/component/follow/follow.css +13 -200
  123. package/dist/component/follow/follow.css.map +1 -1
  124. package/dist/component/follow/follow.legacy.css +1 -1
  125. package/dist/component/follow/follow.legacy.min.css +1 -1
  126. package/dist/component/follow/follow.main.css +13 -200
  127. package/dist/component/follow/follow.main.css.map +1 -1
  128. package/dist/component/follow/follow.main.min.css +2 -2
  129. package/dist/component/follow/follow.main.min.css.map +1 -1
  130. package/dist/component/follow/follow.min.css +2 -2
  131. package/dist/component/follow/follow.min.css.map +1 -1
  132. package/dist/component/footer/footer.css +1 -1
  133. package/dist/component/footer/footer.legacy.css +1 -1
  134. package/dist/component/footer/footer.legacy.min.css +1 -1
  135. package/dist/component/footer/footer.main.css +1 -1
  136. package/dist/component/footer/footer.main.min.css +1 -1
  137. package/dist/component/footer/footer.min.css +1 -1
  138. package/dist/component/form/form.css +1 -1
  139. package/dist/component/form/form.legacy.css +1 -1
  140. package/dist/component/form/form.legacy.min.css +1 -1
  141. package/dist/component/form/form.main.css +1 -1
  142. package/dist/component/form/form.main.min.css +1 -1
  143. package/dist/component/form/form.min.css +1 -1
  144. package/dist/component/header/header.css +1 -1
  145. package/dist/component/header/header.legacy.css +1 -1
  146. package/dist/component/header/header.legacy.min.css +1 -1
  147. package/dist/component/header/header.main.css +1 -1
  148. package/dist/component/header/header.main.min.css +1 -1
  149. package/dist/component/header/header.min.css +1 -1
  150. package/dist/component/header/header.module.js +2 -2
  151. package/dist/component/header/header.module.js.map +1 -1
  152. package/dist/component/header/header.module.min.js +1 -1
  153. package/dist/component/header/header.module.min.js.map +1 -1
  154. package/dist/component/header/header.nomodule.js +2 -2
  155. package/dist/component/header/header.nomodule.js.map +1 -1
  156. package/dist/component/header/header.nomodule.min.js +1 -1
  157. package/dist/component/header/header.nomodule.min.js.map +1 -1
  158. package/dist/component/highlight/highlight.css +1 -1
  159. package/dist/component/highlight/highlight.legacy.css +1 -1
  160. package/dist/component/highlight/highlight.legacy.min.css +1 -1
  161. package/dist/component/highlight/highlight.main.css +1 -1
  162. package/dist/component/highlight/highlight.main.min.css +1 -1
  163. package/dist/component/highlight/highlight.min.css +1 -1
  164. package/dist/component/input/input.css +1 -1
  165. package/dist/component/input/input.legacy.css +1 -1
  166. package/dist/component/input/input.legacy.min.css +1 -1
  167. package/dist/component/input/input.main.css +1 -1
  168. package/dist/component/input/input.main.min.css +1 -1
  169. package/dist/component/input/input.min.css +1 -1
  170. package/dist/component/link/link.css +1 -1
  171. package/dist/component/link/link.legacy.css +1 -1
  172. package/dist/component/link/link.legacy.min.css +1 -1
  173. package/dist/component/link/link.main.css +1 -1
  174. package/dist/component/link/link.main.min.css +1 -1
  175. package/dist/component/link/link.min.css +1 -1
  176. package/dist/component/logo/logo.css +1 -1
  177. package/dist/component/logo/logo.legacy.css +1 -1
  178. package/dist/component/logo/logo.legacy.min.css +1 -1
  179. package/dist/component/logo/logo.main.css +1 -1
  180. package/dist/component/logo/logo.main.min.css +1 -1
  181. package/dist/component/logo/logo.min.css +1 -1
  182. package/dist/component/modal/modal.css +1 -1
  183. package/dist/component/modal/modal.legacy.css +1 -1
  184. package/dist/component/modal/modal.legacy.min.css +1 -1
  185. package/dist/component/modal/modal.main.css +1 -1
  186. package/dist/component/modal/modal.main.min.css +1 -1
  187. package/dist/component/modal/modal.min.css +1 -1
  188. package/dist/component/modal/modal.module.js +2 -2
  189. package/dist/component/modal/modal.module.js.map +1 -1
  190. package/dist/component/modal/modal.module.min.js +1 -1
  191. package/dist/component/modal/modal.module.min.js.map +1 -1
  192. package/dist/component/modal/modal.nomodule.js +2 -2
  193. package/dist/component/modal/modal.nomodule.js.map +1 -1
  194. package/dist/component/modal/modal.nomodule.min.js +1 -1
  195. package/dist/component/modal/modal.nomodule.min.js.map +1 -1
  196. package/dist/component/navigation/navigation.css +1 -1
  197. package/dist/component/navigation/navigation.legacy.css +1 -1
  198. package/dist/component/navigation/navigation.legacy.min.css +1 -1
  199. package/dist/component/navigation/navigation.main.css +1 -1
  200. package/dist/component/navigation/navigation.main.min.css +1 -1
  201. package/dist/component/navigation/navigation.min.css +1 -1
  202. package/dist/component/navigation/navigation.module.js +2 -2
  203. package/dist/component/navigation/navigation.module.js.map +1 -1
  204. package/dist/component/navigation/navigation.module.min.js +1 -1
  205. package/dist/component/navigation/navigation.module.min.js.map +1 -1
  206. package/dist/component/navigation/navigation.nomodule.js +2 -2
  207. package/dist/component/navigation/navigation.nomodule.js.map +1 -1
  208. package/dist/component/navigation/navigation.nomodule.min.js +1 -1
  209. package/dist/component/navigation/navigation.nomodule.min.js.map +1 -1
  210. package/dist/component/pagination/pagination.css +1 -1
  211. package/dist/component/pagination/pagination.legacy.css +1 -1
  212. package/dist/component/pagination/pagination.legacy.min.css +1 -1
  213. package/dist/component/pagination/pagination.main.css +1 -1
  214. package/dist/component/pagination/pagination.main.min.css +1 -1
  215. package/dist/component/pagination/pagination.min.css +1 -1
  216. package/dist/component/quote/quote.css +1 -1
  217. package/dist/component/quote/quote.legacy.css +1 -1
  218. package/dist/component/quote/quote.legacy.min.css +1 -1
  219. package/dist/component/quote/quote.main.css +1 -1
  220. package/dist/component/quote/quote.main.min.css +1 -1
  221. package/dist/component/quote/quote.min.css +1 -1
  222. package/dist/component/radio/radio.css +1 -1
  223. package/dist/component/radio/radio.legacy.css +1 -1
  224. package/dist/component/radio/radio.legacy.min.css +1 -1
  225. package/dist/component/radio/radio.main.css +1 -1
  226. package/dist/component/radio/radio.main.min.css +1 -1
  227. package/dist/component/radio/radio.min.css +1 -1
  228. package/dist/component/search/search.css +1 -1
  229. package/dist/component/search/search.legacy.css +1 -1
  230. package/dist/component/search/search.legacy.min.css +1 -1
  231. package/dist/component/search/search.main.css +1 -1
  232. package/dist/component/search/search.main.min.css +1 -1
  233. package/dist/component/search/search.min.css +1 -1
  234. package/dist/component/select/select.css +1 -1
  235. package/dist/component/select/select.legacy.css +1 -1
  236. package/dist/component/select/select.legacy.min.css +1 -1
  237. package/dist/component/select/select.main.css +1 -1
  238. package/dist/component/select/select.main.min.css +1 -1
  239. package/dist/component/select/select.min.css +1 -1
  240. package/dist/component/share/share.css +1 -1
  241. package/dist/component/share/share.legacy.css +1 -1
  242. package/dist/component/share/share.legacy.min.css +1 -1
  243. package/dist/component/share/share.main.css +1 -1
  244. package/dist/component/share/share.main.min.css +2 -2
  245. package/dist/component/share/share.min.css +2 -2
  246. package/dist/component/sidemenu/sidemenu.css +1 -1
  247. package/dist/component/sidemenu/sidemenu.legacy.css +1 -1
  248. package/dist/component/sidemenu/sidemenu.legacy.min.css +1 -1
  249. package/dist/component/sidemenu/sidemenu.main.css +1 -1
  250. package/dist/component/sidemenu/sidemenu.main.min.css +1 -1
  251. package/dist/component/sidemenu/sidemenu.min.css +1 -1
  252. package/dist/component/sidemenu/sidemenu.module.js +2 -2
  253. package/dist/component/sidemenu/sidemenu.module.js.map +1 -1
  254. package/dist/component/sidemenu/sidemenu.module.min.js +1 -1
  255. package/dist/component/sidemenu/sidemenu.module.min.js.map +1 -1
  256. package/dist/component/sidemenu/sidemenu.nomodule.js +2 -2
  257. package/dist/component/sidemenu/sidemenu.nomodule.js.map +1 -1
  258. package/dist/component/sidemenu/sidemenu.nomodule.min.js +1 -1
  259. package/dist/component/sidemenu/sidemenu.nomodule.min.js.map +1 -1
  260. package/dist/component/skiplink/skiplink.css +1 -1
  261. package/dist/component/skiplink/skiplink.legacy.css +1 -1
  262. package/dist/component/skiplink/skiplink.legacy.min.css +1 -1
  263. package/dist/component/skiplink/skiplink.main.css +1 -1
  264. package/dist/component/skiplink/skiplink.main.min.css +1 -1
  265. package/dist/component/skiplink/skiplink.min.css +1 -1
  266. package/dist/component/summary/summary.css +1 -1
  267. package/dist/component/summary/summary.legacy.css +1 -1
  268. package/dist/component/summary/summary.legacy.min.css +2 -2
  269. package/dist/component/summary/summary.main.css +1 -1
  270. package/dist/component/summary/summary.main.min.css +1 -1
  271. package/dist/component/summary/summary.min.css +2 -2
  272. package/dist/component/tab/tab.css +1 -1
  273. package/dist/component/tab/tab.legacy.css +1 -1
  274. package/dist/component/tab/tab.legacy.min.css +1 -1
  275. package/dist/component/tab/tab.main.css +1 -1
  276. package/dist/component/tab/tab.main.min.css +1 -1
  277. package/dist/component/tab/tab.min.css +1 -1
  278. package/dist/component/tab/tab.module.js +2 -2
  279. package/dist/component/tab/tab.module.js.map +1 -1
  280. package/dist/component/tab/tab.module.min.js +1 -1
  281. package/dist/component/tab/tab.module.min.js.map +1 -1
  282. package/dist/component/tab/tab.nomodule.js +2 -2
  283. package/dist/component/tab/tab.nomodule.js.map +1 -1
  284. package/dist/component/tab/tab.nomodule.min.js +1 -1
  285. package/dist/component/tab/tab.nomodule.min.js.map +1 -1
  286. package/dist/component/table/table.css +1 -1
  287. package/dist/component/table/table.legacy.css +1 -1
  288. package/dist/component/table/table.legacy.min.css +1 -1
  289. package/dist/component/table/table.main.css +1 -1
  290. package/dist/component/table/table.main.min.css +1 -1
  291. package/dist/component/table/table.min.css +1 -1
  292. package/dist/component/table/table.module.js +2 -2
  293. package/dist/component/table/table.module.js.map +1 -1
  294. package/dist/component/table/table.module.min.js +1 -1
  295. package/dist/component/table/table.module.min.js.map +1 -1
  296. package/dist/component/table/table.nomodule.js +2 -2
  297. package/dist/component/table/table.nomodule.js.map +1 -1
  298. package/dist/component/table/table.nomodule.min.js +1 -1
  299. package/dist/component/table/table.nomodule.min.js.map +1 -1
  300. package/dist/component/tag/tag.css +112 -80
  301. package/dist/component/tag/tag.css.map +1 -1
  302. package/dist/component/tag/tag.legacy.css +61 -55
  303. package/dist/component/tag/tag.legacy.css.map +1 -1
  304. package/dist/component/tag/tag.legacy.min.css +2 -2
  305. package/dist/component/tag/tag.legacy.min.css.map +1 -1
  306. package/dist/component/tag/tag.main.css +52 -26
  307. package/dist/component/tag/tag.main.css.map +1 -1
  308. package/dist/component/tag/tag.main.min.css +2 -2
  309. package/dist/component/tag/tag.main.min.css.map +1 -1
  310. package/dist/component/tag/tag.min.css +2 -2
  311. package/dist/component/tag/tag.min.css.map +1 -1
  312. package/dist/component/tag/tag.module.js +2 -2
  313. package/dist/component/tag/tag.module.js.map +1 -1
  314. package/dist/component/tag/tag.module.min.js +1 -1
  315. package/dist/component/tag/tag.module.min.js.map +1 -1
  316. package/dist/component/tag/tag.nomodule.js +2 -2
  317. package/dist/component/tag/tag.nomodule.js.map +1 -1
  318. package/dist/component/tag/tag.nomodule.min.js +1 -1
  319. package/dist/component/tag/tag.nomodule.min.js.map +1 -1
  320. package/dist/component/tile/tile.css +1 -1
  321. package/dist/component/tile/tile.legacy.css +1 -1
  322. package/dist/component/tile/tile.legacy.min.css +1 -1
  323. package/dist/component/tile/tile.main.css +1 -1
  324. package/dist/component/tile/tile.main.min.css +1 -1
  325. package/dist/component/tile/tile.min.css +1 -1
  326. package/dist/component/toggle/toggle.css +1 -1
  327. package/dist/component/toggle/toggle.legacy.css +1 -1
  328. package/dist/component/toggle/toggle.legacy.min.css +1 -1
  329. package/dist/component/toggle/toggle.main.css +1 -1
  330. package/dist/component/toggle/toggle.main.min.css +1 -1
  331. package/dist/component/toggle/toggle.min.css +1 -1
  332. package/dist/component/toggle/toggle.module.js +2 -2
  333. package/dist/component/toggle/toggle.module.js.map +1 -1
  334. package/dist/component/toggle/toggle.module.min.js +1 -1
  335. package/dist/component/toggle/toggle.module.min.js.map +1 -1
  336. package/dist/component/toggle/toggle.nomodule.js +2 -2
  337. package/dist/component/toggle/toggle.nomodule.js.map +1 -1
  338. package/dist/component/toggle/toggle.nomodule.min.js +1 -1
  339. package/dist/component/toggle/toggle.nomodule.min.js.map +1 -1
  340. package/dist/component/upload/upload.css +1 -1
  341. package/dist/component/upload/upload.min.css +1 -1
  342. package/dist/core/core.css +3 -3
  343. package/dist/core/core.css.map +1 -1
  344. package/dist/core/core.legacy.css +1 -1
  345. package/dist/core/core.legacy.min.css +1 -1
  346. package/dist/core/core.main.css +3 -3
  347. package/dist/core/core.main.css.map +1 -1
  348. package/dist/core/core.main.min.css +3 -3
  349. package/dist/core/core.main.min.css.map +1 -1
  350. package/dist/core/core.min.css +3 -3
  351. package/dist/core/core.min.css.map +1 -1
  352. package/dist/core/core.module.js +2 -2
  353. package/dist/core/core.module.js.map +1 -1
  354. package/dist/core/core.module.min.js +2 -2
  355. package/dist/core/core.module.min.js.map +1 -1
  356. package/dist/core/core.nomodule.js +2 -2
  357. package/dist/core/core.nomodule.js.map +1 -1
  358. package/dist/core/core.nomodule.min.js +2 -2
  359. package/dist/core/core.nomodule.min.js.map +1 -1
  360. package/dist/dsfr/dsfr.css +76 -235
  361. package/dist/dsfr/dsfr.css.map +1 -1
  362. package/dist/dsfr/dsfr.legacy.css +33 -21
  363. package/dist/dsfr/dsfr.legacy.css.map +1 -1
  364. package/dist/dsfr/dsfr.legacy.min.css +2 -2
  365. package/dist/dsfr/dsfr.legacy.min.css.map +1 -1
  366. package/dist/dsfr/dsfr.main.css +44 -215
  367. package/dist/dsfr/dsfr.main.css.map +1 -1
  368. package/dist/dsfr/dsfr.main.min.css +3 -3
  369. package/dist/dsfr/dsfr.main.min.css.map +1 -1
  370. package/dist/dsfr/dsfr.min.css +4 -4
  371. package/dist/dsfr/dsfr.min.css.map +1 -1
  372. package/dist/dsfr/dsfr.module.js +2 -2
  373. package/dist/dsfr/dsfr.module.js.map +1 -1
  374. package/dist/dsfr/dsfr.module.min.js +2 -2
  375. package/dist/dsfr/dsfr.module.min.js.map +1 -1
  376. package/dist/dsfr/dsfr.nomodule.js +2 -2
  377. package/dist/dsfr/dsfr.nomodule.js.map +1 -1
  378. package/dist/dsfr/dsfr.nomodule.min.js +2 -2
  379. package/dist/dsfr/dsfr.nomodule.min.js.map +1 -1
  380. package/dist/legacy/legacy.nomodule.js +1 -1
  381. package/dist/legacy/legacy.nomodule.min.js +1 -1
  382. package/dist/scheme/scheme.css +1 -1
  383. package/dist/scheme/scheme.min.css +1 -1
  384. package/dist/scheme/scheme.module.js +2 -2
  385. package/dist/scheme/scheme.module.js.map +1 -1
  386. package/dist/scheme/scheme.module.min.js +1 -1
  387. package/dist/scheme/scheme.module.min.js.map +1 -1
  388. package/example/component/accordion/index.html +164 -188
  389. package/example/component/breadcrumb/index.html +6 -6
  390. package/example/component/callout/index.html +10 -10
  391. package/example/component/card/index.html +8 -8
  392. package/example/component/checkbox/index.html +32 -32
  393. package/example/component/connect/index.html +4 -127
  394. package/example/component/consent/index.html +8 -8
  395. package/example/component/content/index.html +30 -30
  396. package/example/component/display/index.html +46 -46
  397. package/example/component/follow/index.html +16 -16
  398. package/example/component/footer/index.html +20 -20
  399. package/example/component/form/index.html +24 -24
  400. package/example/component/header/index.html +208 -208
  401. package/example/component/highlight/index.html +8 -8
  402. package/example/component/input/index.html +44 -44
  403. package/example/component/link/index.html +14 -14
  404. package/example/component/modal/index.html +80 -80
  405. package/example/component/navigation/index.html +34 -34
  406. package/example/component/pagination/index.html +12 -12
  407. package/example/component/quote/index.html +8 -8
  408. package/example/component/radio/index.html +38 -38
  409. package/example/component/select/index.html +10 -10
  410. package/example/component/share/index.html +10 -10
  411. package/example/component/sidemenu/index.html +456 -456
  412. package/example/component/skiplink/index.html +23 -23
  413. package/example/component/summary/index.html +2 -2
  414. package/example/component/tab/index.html +236 -238
  415. package/example/component/table/index.html +104 -104
  416. package/example/component/tag/index.html +50 -50
  417. package/example/component/tile/index.html +34 -34
  418. package/example/component/toggle/index.html +130 -130
  419. package/package.json +1 -1
  420. package/src/component/connect/example/index.ejs +3 -3
  421. package/src/component/connect/example/sample/connect-default.ejs +1 -2
  422. package/src/component/connect/example/sample/connect-plus.ejs +1 -2
  423. package/src/component/connect/template/ejs/connect.ejs +6 -1
  424. package/src/component/follow/deprecated/style/_module.scss +7 -1
  425. package/src/component/follow/deprecated/style/_tool.scss +3 -7
  426. package/src/component/tag/style/_scheme.scss +13 -22
  427. package/src/component/tag/style/_tool.scss +27 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tab.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab.module.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /*! DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.4.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
2
2
  const s=window.dsfr;class t extends s.core.DisclosureButton{constructor(){super(s.core.DisclosureType.SELECT)}static get instanceClassName(){return"TabButton"}apply(s){super.apply(s),this.isPrimary&&(this.setAttribute("tabindex",s?"0":"-1"),s&&this.list&&this.list.focalize(this))}get list(){return this.element.getAscendantInstance("TabsList","TabsGroup")}}const i={TAB:s.internals.ns.selector("tabs__tab"),GROUP:s.internals.ns.selector("tabs"),PANEL:s.internals.ns.selector("tabs__panel"),LIST:s.internals.ns.selector("tabs__list"),SHADOW:s.internals.ns.selector("tabs__shadow"),SHADOW_LEFT:s.internals.ns.selector("tabs__shadow--left"),SHADOW_RIGHT:s.internals.ns.selector("tabs__shadow--right"),PANEL_START:s.internals.ns.selector("tabs__panel--direction-start"),PANEL_END:s.internals.ns.selector("tabs__panel--direction-end")},e="direction-start",n="direction-end",r="none";class o extends s.core.Disclosure{constructor(){super(s.core.DisclosureType.SELECT,i.PANEL,t,"TabsGroup"),this._direction=r,this._isPreventingTransition=!1}static get instanceClassName(){return"TabPanel"}get direction(){return this._direction}set direction(s){if(s!==this._direction){switch(this._direction){case e:this.removeClass(i.PANEL_START);break;case n:this.removeClass(i.PANEL_END);break;case r:break;default:return}switch(this._direction=s,this._direction){case e:this.addClass(i.PANEL_START);break;case n:this.addClass(i.PANEL_END)}}}get isPreventingTransition(){return this._isPreventingTransition}set isPreventingTransition(t){this._isPreventingTransition!==t&&(t?this.addClass(s.internals.motion.TransitionSelector.NONE):this.removeClass(s.internals.motion.TransitionSelector.NONE),this._isPreventingTransition=!0===t)}translate(s,t){this.isPreventingTransition=t,this.direction=s}reset(){this.group.index=0}}class a extends s.core.DisclosuresGroup{constructor(){super("TabPanel")}static get instanceClassName(){return"TabsGroup"}init(){super.init(),this.listen("transitionend",this.transitionend.bind(this)),this.listenKey(s.core.KeyCodes.RIGHT,this.pressRight.bind(this),!0,!0),this.listenKey(s.core.KeyCodes.LEFT,this.pressLeft.bind(this),!0,!0),this.listenKey(s.core.KeyCodes.HOME,this.pressHome.bind(this),!0,!0),this.listenKey(s.core.KeyCodes.END,this.pressEnd.bind(this),!0,!0),this.isRendering=!0,this.list&&this.list.apply()}get list(){return this.element.getDescendantInstances("TabsList","TabsGroup",!0)[0]}transitionend(s){this.isPreventingTransition=!0}get buttonHasFocus(){return this.members.some((s=>s.buttonHasFocus))}pressRight(){this.buttonHasFocus&&(this.index<this.length-1?this.index++:this.index=0,this.focus())}pressLeft(){this.buttonHasFocus&&(this.index>0?this.index--:this.index=this.length-1,this.focus())}pressHome(){this.buttonHasFocus&&(this.index=0,this.focus())}pressEnd(){this.buttonHasFocus&&(this.index=this.length-1,this.focus())}focus(){this.current&&this.current.focus()}apply(){for(let s=0;s<this._index;s++)this.members[s].translate(e);this.current.translate(r);for(let s=this._index+1;s<this.length;s++)this.members[s].translate(n);this.isPreventingTransition=!1}get isPreventingTransition(){return this._isPreventingTransition}set isPreventingTransition(t){this._isPreventingTransition!==t&&(t?this.addClass(s.internals.motion.TransitionSelector.NONE):this.removeClass(s.internals.motion.TransitionSelector.NONE),this._isPreventingTransition=!0===t)}render(){if(null===this.current)return;const s=Math.round(this.current.node.offsetHeight);if(this.panelHeight===s)return;this.panelHeight=s;let t=0;this.list&&(t=this.list.node.offsetHeight),this.style.setProperty("--tabs-height",this.panelHeight+t+"px")}}class l extends s.core.Instance{static get instanceClassName(){return"TabsList"}init(){this.listen("scroll",this.scroll.bind(this)),this.isResizing=!0}get group(){return this.element.getAscendantInstance("TabsGroup","TabsList")}focalize(s){const t=s.getRect(),i=this.getRect(),e=this.node.scrollLeft;t.left<i.left?this.node.scrollTo(e-i.left+t.left-16,0):t.right>i.right&&this.node.scrollTo(e-i.right+t.right+16,0)}get isScrolling(){return this._isScrolling}set isScrolling(s){this._isScrolling!==s&&(this._isScrolling=s,this.apply())}apply(){this.group&&(this._isScrolling?(this.group.addClass(i.SHADOW),this.scroll()):(this.group.removeClass(i.SHADOW_RIGHT),this.group.removeClass(i.SHADOW_LEFT),this.group.removeClass(i.SHADOW)))}scroll(){if(!this.group)return;const s=this.node.scrollLeft,t=s<=16,e=this.node.scrollWidth-this.node.clientWidth-16,n=Math.abs(s)>=e,r="rtl"===document.documentElement.getAttribute("dir"),o=r?i.SHADOW_RIGHT:i.SHADOW_LEFT,a=r?i.SHADOW_LEFT:i.SHADOW_RIGHT;t?this.group.removeClass(o):this.group.addClass(o),n?this.group.removeClass(a):this.group.addClass(a)}resize(){this.isScrolling=this.node.scrollWidth>this.node.clientWidth+16}dispose(){this.isScrolling=!1}}s.tab={TabPanel:o,TabButton:t,TabsGroup:a,TabsList:l,TabSelector:i},s.internals.register(s.tab.TabSelector.PANEL,s.tab.TabPanel),s.internals.register(s.tab.TabSelector.GROUP,s.tab.TabsGroup),s.internals.register(s.tab.TabSelector.LIST,s.tab.TabsList);
3
3
  //# sourceMappingURL=tab.module.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["api","window","TabButton","core","DisclosureButton","constructor","super","DisclosureType","SELECT","instanceClassName","apply","value","this","isPrimary","setAttribute","list","focalize","element","getAscendantInstance","TabSelector","TAB","internals","ns","selector","GROUP","PANEL","LIST","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","Disclosure","_direction","_isPreventingTransition","direction","removeClass","addClass","isPreventingTransition","motion","TransitionSelector","NONE","translate","initial","reset","group","index","TabsGroup","DisclosuresGroup","init","listen","transitionend","bind","listenKey","KeyCodes","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","getDescendantInstances","e","buttonHasFocus","members","some","member","length","focus","current","i","_index","render","paneHeight","Math","round","node","offsetHeight","panelHeight","listHeight","style","setProperty","TabsList","Instance","scroll","isResizing","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","left","scrollTo","right","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","document","documentElement","getAttribute","minSelector","maxSelector","resize","dispose","tab","register"],"mappings":"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"}
1
+ {"version":3,"file":"tab.module.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["api","window","TabButton","core","DisclosureButton","constructor","super","DisclosureType","SELECT","instanceClassName","apply","value","this","isPrimary","setAttribute","list","focalize","element","getAscendantInstance","TabSelector","TAB","internals","ns","selector","GROUP","PANEL","LIST","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","Disclosure","_direction","_isPreventingTransition","direction","removeClass","addClass","isPreventingTransition","motion","TransitionSelector","NONE","translate","initial","reset","group","index","TabsGroup","DisclosuresGroup","init","listen","transitionend","bind","listenKey","KeyCodes","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","getDescendantInstances","e","buttonHasFocus","members","some","member","length","focus","current","i","_index","render","paneHeight","Math","round","node","offsetHeight","panelHeight","listHeight","style","setProperty","TabsList","Instance","scroll","isResizing","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","left","scrollTo","right","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","document","documentElement","getAttribute","minSelector","maxSelector","resize","dispose","tab","register"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /*! DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.4.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.4.0'
10
+ version: '1.4.1'
11
11
  };
12
12
 
13
13
  var api = window[config.namespace];
@@ -1 +1 @@
1
- {"version":3,"file":"tab.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["const","super","let","i"],"mappings":"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"}
1
+ {"version":3,"file":"tab.nomodule.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["const","super","let","i"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /*! DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions) */
1
+ /*! DSFR v1.4.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=function(e){function i(){e.call(this,t.core.DisclosureType.SELECT)}e&&(i.__proto__=e),i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i;var s={list:{configurable:!0}},n={instanceClassName:{configurable:!0}};return n.instanceClassName.get=function(){return"TabButton"},i.prototype.apply=function(t){e.prototype.apply.call(this,t),this.isPrimary&&(this.setAttribute("tabindex",t?"0":"-1"),t&&this.list&&this.list.focalize(this))},s.list.get=function(){return this.element.getAscendantInstance("TabsList","TabsGroup")},Object.defineProperties(i.prototype,s),Object.defineProperties(i,n),i}(t.core.DisclosureButton),i={TAB:t.internals.ns.selector("tabs__tab"),GROUP:t.internals.ns.selector("tabs"),PANEL:t.internals.ns.selector("tabs__panel"),LIST:t.internals.ns.selector("tabs__list"),SHADOW:t.internals.ns.selector("tabs__shadow"),SHADOW_LEFT:t.internals.ns.selector("tabs__shadow--left"),SHADOW_RIGHT:t.internals.ns.selector("tabs__shadow--right"),PANEL_START:t.internals.ns.selector("tabs__panel--direction-start"),PANEL_END:t.internals.ns.selector("tabs__panel--direction-end")},s="direction-start",n="direction-end",r="none",o=function(o){function a(){o.call(this,t.core.DisclosureType.SELECT,i.PANEL,e,"TabsGroup"),this._direction=r,this._isPreventingTransition=!1}o&&(a.__proto__=o),a.prototype=Object.create(o&&o.prototype),a.prototype.constructor=a;var c={direction:{configurable:!0},isPreventingTransition:{configurable:!0}},l={instanceClassName:{configurable:!0}};return l.instanceClassName.get=function(){return"TabPanel"},c.direction.get=function(){return this._direction},c.direction.set=function(t){if(t!==this._direction){switch(this._direction){case s:this.removeClass(i.PANEL_START);break;case n:this.removeClass(i.PANEL_END);break;case r:break;default:return}switch(this._direction=t,this._direction){case s:this.addClass(i.PANEL_START);break;case n:this.addClass(i.PANEL_END)}}},c.isPreventingTransition.get=function(){return this._isPreventingTransition},c.isPreventingTransition.set=function(e){this._isPreventingTransition!==e&&(e?this.addClass(t.internals.motion.TransitionSelector.NONE):this.removeClass(t.internals.motion.TransitionSelector.NONE),this._isPreventingTransition=!0===e)},a.prototype.translate=function(t,e){this.isPreventingTransition=e,this.direction=t},a.prototype.reset=function(){this.group.index=0},Object.defineProperties(a.prototype,c),Object.defineProperties(a,l),a}(t.core.Disclosure),a=function(e){function i(){e.call(this,"TabPanel")}e&&(i.__proto__=e),i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i;var o={list:{configurable:!0},buttonHasFocus:{configurable:!0},isPreventingTransition:{configurable:!0}},a={instanceClassName:{configurable:!0}};return a.instanceClassName.get=function(){return"TabsGroup"},i.prototype.init=function(){e.prototype.init.call(this),this.listen("transitionend",this.transitionend.bind(this)),this.listenKey(t.core.KeyCodes.RIGHT,this.pressRight.bind(this),!0,!0),this.listenKey(t.core.KeyCodes.LEFT,this.pressLeft.bind(this),!0,!0),this.listenKey(t.core.KeyCodes.HOME,this.pressHome.bind(this),!0,!0),this.listenKey(t.core.KeyCodes.END,this.pressEnd.bind(this),!0,!0),this.isRendering=!0,this.list&&this.list.apply()},o.list.get=function(){return this.element.getDescendantInstances("TabsList","TabsGroup",!0)[0]},i.prototype.transitionend=function(t){this.isPreventingTransition=!0},o.buttonHasFocus.get=function(){return this.members.some((function(t){return t.buttonHasFocus}))},i.prototype.pressRight=function(){this.buttonHasFocus&&(this.index<this.length-1?this.index++:this.index=0,this.focus())},i.prototype.pressLeft=function(){this.buttonHasFocus&&(this.index>0?this.index--:this.index=this.length-1,this.focus())},i.prototype.pressHome=function(){this.buttonHasFocus&&(this.index=0,this.focus())},i.prototype.pressEnd=function(){this.buttonHasFocus&&(this.index=this.length-1,this.focus())},i.prototype.focus=function(){this.current&&this.current.focus()},i.prototype.apply=function(){for(var t=0;t<this._index;t++)this.members[t].translate(s);this.current.translate(r);for(var e=this._index+1;e<this.length;e++)this.members[e].translate(n);this.isPreventingTransition=!1},o.isPreventingTransition.get=function(){return this._isPreventingTransition},o.isPreventingTransition.set=function(e){this._isPreventingTransition!==e&&(e?this.addClass(t.internals.motion.TransitionSelector.NONE):this.removeClass(t.internals.motion.TransitionSelector.NONE),this._isPreventingTransition=!0===e)},i.prototype.render=function(){if(null!==this.current){var t=Math.round(this.current.node.offsetHeight);if(this.panelHeight!==t){this.panelHeight=t;var e=0;this.list&&(e=this.list.node.offsetHeight),this.style.setProperty("--tabs-height",this.panelHeight+e+"px")}}},Object.defineProperties(i.prototype,o),Object.defineProperties(i,a),i}(t.core.DisclosuresGroup),c=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var s={group:{configurable:!0},isScrolling:{configurable:!0}},n={instanceClassName:{configurable:!0}};return n.instanceClassName.get=function(){return"TabsList"},e.prototype.init=function(){this.listen("scroll",this.scroll.bind(this)),this.isResizing=!0},s.group.get=function(){return this.element.getAscendantInstance("TabsGroup","TabsList")},e.prototype.focalize=function(t){var e=t.getRect(),i=this.getRect(),s=this.node.scrollLeft;e.left<i.left?this.node.scrollTo(s-i.left+e.left-16,0):e.right>i.right&&this.node.scrollTo(s-i.right+e.right+16,0)},s.isScrolling.get=function(){return this._isScrolling},s.isScrolling.set=function(t){this._isScrolling!==t&&(this._isScrolling=t,this.apply())},e.prototype.apply=function(){this.group&&(this._isScrolling?(this.group.addClass(i.SHADOW),this.scroll()):(this.group.removeClass(i.SHADOW_RIGHT),this.group.removeClass(i.SHADOW_LEFT),this.group.removeClass(i.SHADOW)))},e.prototype.scroll=function(){if(this.group){var t=this.node.scrollLeft,e=t<=16,s=this.node.scrollWidth-this.node.clientWidth-16,n=Math.abs(t)>=s,r="rtl"===document.documentElement.getAttribute("dir"),o=r?i.SHADOW_RIGHT:i.SHADOW_LEFT,a=r?i.SHADOW_LEFT:i.SHADOW_RIGHT;e?this.group.removeClass(o):this.group.addClass(o),n?this.group.removeClass(a):this.group.addClass(a)}},e.prototype.resize=function(){this.isScrolling=this.node.scrollWidth>this.node.clientWidth+16},e.prototype.dispose=function(){this.isScrolling=!1},Object.defineProperties(e.prototype,s),Object.defineProperties(e,n),e}(t.core.Instance);t.tab={TabPanel:o,TabButton:e,TabsGroup:a,TabsList:c,TabSelector:i},t.internals.register(t.tab.TabSelector.PANEL,t.tab.TabPanel),t.internals.register(t.tab.TabSelector.GROUP,t.tab.TabsGroup),t.internals.register(t.tab.TabSelector.LIST,t.tab.TabsList)}();
3
3
  //# sourceMappingURL=tab.nomodule.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["const","api","window","TabButton","super","core","DisclosureType","SELECT","staticAccessors","instanceClassName","apply","value","this","isPrimary","setAttribute","list","focalize","prototypeAccessors","element","getAscendantInstance","DisclosureButton","TabSelector","TAB","internals","ns","selector","GROUP","PANEL","LIST","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","_direction","_isPreventingTransition","direction","removeClass","addClass","isPreventingTransition","motion","TransitionSelector","NONE","translate","initial","reset","group","index","Disclosure","TabsGroup","init","listen","transitionend","bind","listenKey","KeyCodes","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","getDescendantInstances","e","buttonHasFocus","members","some","member","length","focus","current","let","i","_index","render","paneHeight","Math","round","node","offsetHeight","panelHeight","listHeight","style","setProperty","DisclosuresGroup","TabsList","scroll","isResizing","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","left","scrollTo","right","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","document","documentElement","getAttribute","minSelector","maxSelector","resize","dispose","Instance","tab","register"],"mappings":"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"}
1
+ {"version":3,"file":"tab.nomodule.min.js","sources":["../../../.config/config.js","../../../src/core/api.js","../../../src/component/tab/script/tab/tab-button.js","../../../src/component/tab/script/tab/tab-selector.js","../../../src/component/tab/script/tab/tab-panel-direction.js","../../../src/component/tab/script/tab/tab-panel.js","../../../src/component/tab/script/tab/tabs-group.js","../../../src/component/tab/script/tab/tabs-list.js","../../../src/component/tab/index.js","../../../src/component/tab/main.js"],"sourcesContent":["const config = {\r\n prefix: 'fr',\r\n namespace: 'dsfr',\r\n organisation: '@gouvfr',\r\n version: '1.4.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\n/**\n * TabButton correspond au bouton cliquable qui change le panel\n * TabButton étend de DisclosureButton qui ajoute/enelve l'attribut aria-selected,\n * Et change l'attributte tabindex a 0 si le boutton est actif (value=true), -1 s'il n'est pas actif (value=false)\n */\nclass TabButton extends api.core.DisclosureButton {\n constructor () {\n super(api.core.DisclosureType.SELECT);\n }\n\n static get instanceClassName () {\n return 'TabButton';\n }\n\n apply (value) {\n super.apply(value);\n if (this.isPrimary) {\n this.setAttribute('tabindex', value ? '0' : '-1');\n if (value) {\n if (this.list) this.list.focalize(this);\n }\n }\n }\n\n get list () {\n return this.element.getAscendantInstance('TabsList', 'TabsGroup');\n }\n}\n\nexport { TabButton };\n","import api from '../../api.js';\n\nexport const TabSelector = {\n TAB: api.internals.ns.selector('tabs__tab'),\n GROUP: api.internals.ns.selector('tabs'),\n PANEL: api.internals.ns.selector('tabs__panel'),\n LIST: api.internals.ns.selector('tabs__list'),\n SHADOW: api.internals.ns.selector('tabs__shadow'),\n SHADOW_LEFT: api.internals.ns.selector('tabs__shadow--left'),\n SHADOW_RIGHT: api.internals.ns.selector('tabs__shadow--right'),\n PANEL_START: api.internals.ns.selector('tabs__panel--direction-start'),\n PANEL_END: api.internals.ns.selector('tabs__panel--direction-end')\n};\n","export const TabPanelDirection = {\n START: 'direction-start',\n END: 'direction-end',\n NONE: 'none'\n};\n","import api from '../../api.js';\nimport { TabButton } from './tab-button.js';\nimport { TabSelector } from './tab-selector.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n * Tab coorespond au panel d'un élement Tabs (tab panel)\n * Tab étend disclosure qui ajoute/enleve le modifier --selected,\n * et ajoute/eleve l'attribut hidden, sur le panel\n */\nclass TabPanel extends api.core.Disclosure {\n constructor () {\n super(api.core.DisclosureType.SELECT, TabSelector.PANEL, TabButton, 'TabsGroup');\n this._direction = TabPanelDirection.NONE;\n this._isPreventingTransition = false;\n }\n\n static get instanceClassName () {\n return 'TabPanel';\n }\n\n get direction () {\n return this._direction;\n }\n\n set direction (value) {\n if (value === this._direction) return;\n switch (this._direction) {\n case TabPanelDirection.START:\n this.removeClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.removeClass(TabSelector.PANEL_END);\n break;\n\n case TabPanelDirection.NONE:\n break;\n\n default:\n return;\n }\n\n this._direction = value;\n\n switch (this._direction) {\n case TabPanelDirection.START:\n this.addClass(TabSelector.PANEL_START);\n break;\n\n case TabPanelDirection.END:\n this.addClass(TabSelector.PANEL_END);\n break;\n }\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n translate (direction, initial) {\n this.isPreventingTransition = initial;\n this.direction = direction;\n }\n\n reset () {\n this.group.index = 0;\n }\n}\n\nexport { TabPanel };\n","import api from '../../api.js';\nimport { TabPanelDirection } from './tab-panel-direction.js';\n\n/**\n* TabGroup est la classe étendue de DiscosuresGroup\n* Correspond à un objet Tabs avec plusieurs tab-button & Tab (panel)\n*/\nclass TabsGroup extends api.core.DisclosuresGroup {\n constructor () {\n super('TabPanel');\n }\n\n static get instanceClassName () {\n return 'TabsGroup';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n this.listenKey(api.core.KeyCodes.RIGHT, this.pressRight.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.LEFT, this.pressLeft.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.HOME, this.pressHome.bind(this), true, true);\n this.listenKey(api.core.KeyCodes.END, this.pressEnd.bind(this), true, true);\n this.isRendering = true;\n\n if (this.list) this.list.apply();\n }\n\n get list () {\n return this.element.getDescendantInstances('TabsList', 'TabsGroup', true)[0];\n }\n\n transitionend (e) {\n this.isPreventingTransition = true;\n }\n\n get buttonHasFocus () {\n return this.members.some(member => member.buttonHasFocus);\n }\n\n /**\n * Selectionne l'element suivant de la liste si on est sur un bouton\n * Si on est à la fin on retourne au début\n */\n pressRight () {\n if (this.buttonHasFocus) {\n if (this.index < this.length - 1) {\n this.index++;\n } else {\n this.index = 0;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne l'element précédent de la liste si on est sur un bouton\n * Si on est au debut retourne a la fin\n */\n pressLeft () {\n if (this.buttonHasFocus) {\n if (this.index > 0) {\n this.index--;\n } else {\n this.index = this.length - 1;\n }\n\n this.focus();\n }\n };\n\n /**\n * Selectionne le permier element de la liste si on est sur un bouton\n */\n pressHome () {\n if (this.buttonHasFocus) {\n this.index = 0;\n this.focus();\n }\n };\n\n /**\n * Selectionne le dernier element de la liste si on est sur un bouton\n */\n pressEnd () {\n if (this.buttonHasFocus) {\n this.index = this.length - 1;\n this.focus();\n }\n };\n\n focus () {\n if (this.current) {\n this.current.focus();\n }\n }\n\n apply () {\n for (let i = 0; i < this._index; i++) this.members[i].translate(TabPanelDirection.START);\n this.current.translate(TabPanelDirection.NONE);\n for (let i = this._index + 1; i < this.length; i++) this.members[i].translate(TabPanelDirection.END);\n this.isPreventingTransition = false;\n }\n\n get isPreventingTransition () {\n return this._isPreventingTransition;\n }\n\n set isPreventingTransition (value) {\n if (this._isPreventingTransition === value) return;\n if (value) this.addClass(api.internals.motion.TransitionSelector.NONE);\n else this.removeClass(api.internals.motion.TransitionSelector.NONE);\n this._isPreventingTransition = value === true;\n }\n\n render () {\n if (this.current === null) return;\n const paneHeight = Math.round(this.current.node.offsetHeight);\n if (this.panelHeight === paneHeight) return;\n this.panelHeight = paneHeight;\n let listHeight = 0;\n if (this.list) listHeight = this.list.node.offsetHeight;\n this.style.setProperty('--tabs-height', (this.panelHeight + listHeight) + 'px');\n }\n}\n\nexport { TabsGroup };\n","import api from '../../api.js';\nimport { TabSelector } from './tab-selector';\n\nconst FOCALIZE_OFFSET = 16;\nconst SCROLL_OFFSET = 16; // valeur en px du scroll avant laquelle le shadow s'active ou se desactive\n\nclass TabsList extends api.core.Instance {\n static get instanceClassName () {\n return 'TabsList';\n }\n\n init () {\n this.listen('scroll', this.scroll.bind(this));\n this.isResizing = true;\n }\n\n get group () {\n return this.element.getAscendantInstance('TabsGroup', 'TabsList');\n }\n\n focalize (btn) {\n const btnRect = btn.getRect();\n const listRect = this.getRect();\n const actualScroll = this.node.scrollLeft;\n if (btnRect.left < listRect.left) this.node.scrollTo(actualScroll - listRect.left + btnRect.left - FOCALIZE_OFFSET, 0);\n else if (btnRect.right > listRect.right) this.node.scrollTo(actualScroll - listRect.right + btnRect.right + FOCALIZE_OFFSET, 0);\n }\n\n get isScrolling () {\n return this._isScrolling;\n }\n\n set isScrolling (value) {\n if (this._isScrolling === value) return;\n this._isScrolling = value;\n this.apply();\n }\n\n apply () {\n if (!this.group) return;\n if (this._isScrolling) {\n this.group.addClass(TabSelector.SHADOW);\n this.scroll();\n } else {\n this.group.removeClass(TabSelector.SHADOW_RIGHT);\n this.group.removeClass(TabSelector.SHADOW_LEFT);\n this.group.removeClass(TabSelector.SHADOW);\n }\n }\n\n /* ajoute la classe fr-table__shadow-left ou fr-table__shadow-right sur fr-table en fonction d'une valeur de scroll et du sens (right, left) */\n scroll () {\n if (!this.group) return;\n const scrollLeft = this.node.scrollLeft;\n const isMin = scrollLeft <= SCROLL_OFFSET;\n const max = this.node.scrollWidth - this.node.clientWidth - SCROLL_OFFSET;\n\n const isMax = Math.abs(scrollLeft) >= max;\n const isRtl = document.documentElement.getAttribute('dir') === 'rtl';\n const minSelector = isRtl ? TabSelector.SHADOW_RIGHT : TabSelector.SHADOW_LEFT;\n const maxSelector = isRtl ? TabSelector.SHADOW_LEFT : TabSelector.SHADOW_RIGHT;\n\n if (isMin) {\n this.group.removeClass(minSelector);\n } else {\n this.group.addClass(minSelector);\n }\n\n if (isMax) {\n this.group.removeClass(maxSelector);\n } else {\n this.group.addClass(maxSelector);\n }\n }\n\n resize () {\n this.isScrolling = this.node.scrollWidth > this.node.clientWidth + SCROLL_OFFSET;\n }\n\n dispose () {\n this.isScrolling = false;\n }\n}\n\nexport { TabsList };\n","import api from './api.js';\nimport { TabPanel } from './script/tab/tab-panel.js';\nimport { TabButton } from './script/tab/tab-button.js';\nimport { TabsGroup } from './script/tab/tabs-group.js';\nimport { TabsList } from './script/tab/tabs-list.js';\nimport { TabSelector } from './script/tab/tab-selector.js';\n\napi.tab = {\n TabPanel: TabPanel,\n TabButton: TabButton,\n TabsGroup: TabsGroup,\n TabsList: TabsList,\n TabSelector: TabSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.tab.TabSelector.PANEL, api.tab.TabPanel);\napi.internals.register(api.tab.TabSelector.GROUP, api.tab.TabsGroup);\napi.internals.register(api.tab.TabSelector.LIST, api.tab.TabsList);\n\nexport default api;\n"],"names":["const","api","window","TabButton","super","core","DisclosureType","SELECT","staticAccessors","instanceClassName","apply","value","this","isPrimary","setAttribute","list","focalize","prototypeAccessors","element","getAscendantInstance","DisclosureButton","TabSelector","TAB","internals","ns","selector","GROUP","PANEL","LIST","SHADOW","SHADOW_LEFT","SHADOW_RIGHT","PANEL_START","PANEL_END","TabPanelDirection","TabPanel","_direction","_isPreventingTransition","direction","removeClass","addClass","isPreventingTransition","motion","TransitionSelector","NONE","translate","initial","reset","group","index","Disclosure","TabsGroup","init","listen","transitionend","bind","listenKey","KeyCodes","RIGHT","pressRight","LEFT","pressLeft","HOME","pressHome","END","pressEnd","isRendering","getDescendantInstances","e","buttonHasFocus","members","some","member","length","focus","current","let","i","_index","render","paneHeight","Math","round","node","offsetHeight","panelHeight","listHeight","style","setProperty","DisclosuresGroup","TabsList","scroll","isResizing","btn","btnRect","getRect","listRect","actualScroll","scrollLeft","left","scrollTo","right","isScrolling","_isScrolling","isMin","max","scrollWidth","clientWidth","isMax","abs","isRtl","document","documentElement","getAttribute","minSelector","maxSelector","resize","dispose","Instance","tab","register"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.4.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.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.4.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */
4
4
  .fr-table {
5
5
  /* Style bordered, ajoute des bordures entre chaque ligne */
@@ -1,3 +1,3 @@
1
1
  /*!
2
- * DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.4.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-table[data-fr-js-table=true] caption{position:relative}.fr-table caption{color:#161616}.fr-table thead{background-color:#eee;box-shadow:inset 0 -2px 0 0 #3a3a3a;color:#161616}.fr-table thead:hover{background-color:#d2d2d2}.fr-table thead:active{background-color:#c1c1c1}.fr-table tbody{background-color:#f6f6f6}.fr-table tbody:hover{background-color:#dfdfdf}.fr-table tbody:active{background-color:#cfcfcf}.fr-table tbody tr:nth-child(2n){background-color:#eee}.fr-table tbody tr:nth-child(2n):hover{background-color:#d2d2d2}.fr-table tbody tr:nth-child(2n):active{background-color:#c1c1c1}.fr-table--green-tilleul-verveine thead{background-color:#fceeac;box-shadow:inset 0 -2px 0 0 #66673d}.fr-table--green-tilleul-verveine thead:hover{background-color:#e8d45c}.fr-table--green-tilleul-verveine thead:active{background-color:#d4c254}.fr-table--green-tilleul-verveine tbody{background-color:#fef7da}.fr-table--green-tilleul-verveine tbody:hover{background-color:#fce552}.fr-table--green-tilleul-verveine tbody:active{background-color:#ebd54c}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n){background-color:#fceeac}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n):hover{background-color:#e8d45c}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n):active{background-color:#d4c254}.fr-table--green-tilleul-verveine.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #b7a73f}.fr-table--green-bourgeon thead{background-color:#c9fcac;box-shadow:inset 0 -2px 0 0 #447049}.fr-table--green-bourgeon thead:hover{background-color:#9ae95d}.fr-table--green-bourgeon thead:active{background-color:#8dd555}.fr-table--green-bourgeon tbody{background-color:#e6feda}.fr-table--green-bourgeon tbody:hover{background-color:#a7fc62}.fr-table--green-bourgeon tbody:active{background-color:#98ed4d}.fr-table--green-bourgeon tbody tr:nth-child(2n){background-color:#c9fcac}.fr-table--green-bourgeon tbody tr:nth-child(2n):hover{background-color:#9ae95d}.fr-table--green-bourgeon tbody tr:nth-child(2n):active{background-color:#8dd555}.fr-table--green-bourgeon.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #68a532}.fr-table--green-emeraude thead{background-color:#c3fad5;box-shadow:inset 0 -2px 0 0 #297254}.fr-table--green-emeraude thead:hover{background-color:#77eda5}.fr-table--green-emeraude thead:active{background-color:#6dd897}.fr-table--green-emeraude tbody{background-color:#e3fdeb}.fr-table--green-emeraude tbody:hover{background-color:#94f9b9}.fr-table--green-emeraude tbody:active{background-color:#6df1a3}.fr-table--green-emeraude tbody tr:nth-child(2n){background-color:#c3fad5}.fr-table--green-emeraude tbody tr:nth-child(2n):hover{background-color:#77eda5}.fr-table--green-emeraude tbody tr:nth-child(2n):active{background-color:#6dd897}.fr-table--green-emeraude.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #00a95f}.fr-table--green-menthe thead{background-color:#bafaee;box-shadow:inset 0 -2px 0 0 #37635f}.fr-table--green-menthe thead:hover{background-color:#79e7d5}.fr-table--green-menthe thead:active{background-color:#6fd3c3}.fr-table--green-menthe tbody{background-color:#dffdf7}.fr-table--green-menthe tbody:hover{background-color:#84f9e7}.fr-table--green-menthe tbody:active{background-color:#70ebd8}.fr-table--green-menthe tbody tr:nth-child(2n){background-color:#bafaee}.fr-table--green-menthe tbody tr:nth-child(2n):hover{background-color:#79e7d5}.fr-table--green-menthe tbody tr:nth-child(2n):active{background-color:#6fd3c3}.fr-table--green-menthe.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #009081}.fr-table--green-archipel thead{background-color:#c7f6fc;box-shadow:inset 0 -2px 0 0 #006a6f}.fr-table--green-archipel thead:hover{background-color:#64ecf8}.fr-table--green-archipel thead:active{background-color:#5bd8e3}.fr-table--green-archipel tbody{background-color:#e5fbfd}.fr-table--green-archipel tbody:hover{background-color:#99f2f8}.fr-table--green-archipel tbody:active{background-color:#73e9f0}.fr-table--green-archipel tbody tr:nth-child(2n){background-color:#c7f6fc}.fr-table--green-archipel tbody tr:nth-child(2n):hover{background-color:#64ecf8}.fr-table--green-archipel tbody tr:nth-child(2n):active{background-color:#5bd8e3}.fr-table--green-archipel.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #009099}.fr-table--blue-ecume thead{background-color:#e9edfe;box-shadow:inset 0 -2px 0 0 #2f4077}.fr-table--blue-ecume thead:hover{background-color:#c5d0fc}.fr-table--blue-ecume thead:active{background-color:#adbffc}.fr-table--blue-ecume tbody{background-color:#f4f6fe}.fr-table--blue-ecume tbody:hover{background-color:#d7dffb}.fr-table--blue-ecume tbody:active{background-color:#c3cffa}.fr-table--blue-ecume tbody tr:nth-child(2n){background-color:#e9edfe}.fr-table--blue-ecume tbody tr:nth-child(2n):hover{background-color:#c5d0fc}.fr-table--blue-ecume tbody tr:nth-child(2n):active{background-color:#adbffc}.fr-table--blue-ecume.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #465f9d}.fr-table--blue-cumulus thead{background-color:#e6eefe;box-shadow:inset 0 -2px 0 0 #3558a2}.fr-table--blue-cumulus thead:hover{background-color:#bcd3fc}.fr-table--blue-cumulus thead:active{background-color:#9fc3fc}.fr-table--blue-cumulus tbody{background-color:#f3f6fe}.fr-table--blue-cumulus tbody:hover{background-color:#d3dffc}.fr-table--blue-cumulus tbody:active{background-color:#bed0fa}.fr-table--blue-cumulus tbody tr:nth-child(2n){background-color:#e6eefe}.fr-table--blue-cumulus tbody tr:nth-child(2n):hover{background-color:#bcd3fc}.fr-table--blue-cumulus tbody tr:nth-child(2n):active{background-color:#9fc3fc}.fr-table--blue-cumulus.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #417dc4}.fr-table--purple-glycine thead{background-color:#fee7fc;box-shadow:inset 0 -2px 0 0 #6e445a}.fr-table--purple-glycine thead:hover{background-color:#fdc0f8}.fr-table--purple-glycine thead:active{background-color:#fca8f6}.fr-table--purple-glycine tbody{background-color:#fef3fd}.fr-table--purple-glycine tbody:hover{background-color:#fcd4f8}.fr-table--purple-glycine tbody:active{background-color:#fabff5}.fr-table--purple-glycine tbody tr:nth-child(2n){background-color:#fee7fc}.fr-table--purple-glycine tbody tr:nth-child(2n):hover{background-color:#fdc0f8}.fr-table--purple-glycine tbody tr:nth-child(2n):active{background-color:#fca8f6}.fr-table--purple-glycine.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #a558a0}.fr-table--pink-macaron thead{background-color:#fee9e6;box-shadow:inset 0 -2px 0 0 #8d533e}.fr-table--pink-macaron thead:hover{background-color:#fdc6bd}.fr-table--pink-macaron thead:active{background-color:#fcb0a2}.fr-table--pink-macaron tbody{background-color:#fef4f2}.fr-table--pink-macaron tbody:hover{background-color:#fcd8d0}.fr-table--pink-macaron tbody:active{background-color:#fac5b8}.fr-table--pink-macaron tbody tr:nth-child(2n){background-color:#fee9e6}.fr-table--pink-macaron tbody tr:nth-child(2n):hover{background-color:#fdc6bd}.fr-table--pink-macaron tbody tr:nth-child(2n):active{background-color:#fcb0a2}.fr-table--pink-macaron.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #e18b76}.fr-table--pink-tuile thead{background-color:#fee9e7;box-shadow:inset 0 -2px 0 0 #a94645}.fr-table--pink-tuile thead:hover{background-color:#fdc6c0}.fr-table--pink-tuile thead:active{background-color:#fcb0a7}.fr-table--pink-tuile tbody{background-color:#fef4f3}.fr-table--pink-tuile tbody:hover{background-color:#fcd7d3}.fr-table--pink-tuile tbody:active{background-color:#fac4be}.fr-table--pink-tuile tbody tr:nth-child(2n){background-color:#fee9e7}.fr-table--pink-tuile tbody tr:nth-child(2n):hover{background-color:#fdc6c0}.fr-table--pink-tuile tbody tr:nth-child(2n):active{background-color:#fcb0a7}.fr-table--pink-tuile.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #ce614a}.fr-table--yellow-tournesol thead{background-color:#feecc2;box-shadow:inset 0 -2px 0 0 #716043}.fr-table--yellow-tournesol thead:hover{background-color:#fbd335}.fr-table--yellow-tournesol thead:active{background-color:#e6c130}.fr-table--yellow-tournesol tbody{background-color:#fef6e3}.fr-table--yellow-tournesol tbody:hover{background-color:#fce086}.fr-table--yellow-tournesol tbody:active{background-color:#f5d24b}.fr-table--yellow-tournesol tbody tr:nth-child(2n){background-color:#feecc2}.fr-table--yellow-tournesol tbody tr:nth-child(2n):hover{background-color:#fbd335}.fr-table--yellow-tournesol tbody tr:nth-child(2n):active{background-color:#e6c130}.fr-table--yellow-tournesol.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #c8aa39}.fr-table--yellow-moutarde thead{background-color:#feebd0;box-shadow:inset 0 -2px 0 0 #695240}.fr-table--yellow-moutarde thead:hover{background-color:#fdcd6d}.fr-table--yellow-moutarde thead:active{background-color:#f4be30}.fr-table--yellow-moutarde tbody{background-color:#fef5e8}.fr-table--yellow-moutarde tbody:hover{background-color:#fcdca3}.fr-table--yellow-moutarde tbody:active{background-color:#fbcd64}.fr-table--yellow-moutarde tbody tr:nth-child(2n){background-color:#feebd0}.fr-table--yellow-moutarde tbody tr:nth-child(2n):hover{background-color:#fdcd6d}.fr-table--yellow-moutarde tbody tr:nth-child(2n):active{background-color:#f4be30}.fr-table--yellow-moutarde.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #c3992a}.fr-table--orange-terre-battue thead{background-color:#fee9e5;box-shadow:inset 0 -2px 0 0 #755348}.fr-table--orange-terre-battue thead:hover{background-color:#fdc6ba}.fr-table--orange-terre-battue thead:active{background-color:#fcb09e}.fr-table--orange-terre-battue tbody{background-color:#fef4f2}.fr-table--orange-terre-battue tbody:hover{background-color:#fcd8d0}.fr-table--orange-terre-battue tbody:active{background-color:#fac5b8}.fr-table--orange-terre-battue tbody tr:nth-child(2n){background-color:#fee9e5}.fr-table--orange-terre-battue tbody tr:nth-child(2n):hover{background-color:#fdc6ba}.fr-table--orange-terre-battue tbody tr:nth-child(2n):active{background-color:#fcb09e}.fr-table--orange-terre-battue.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #e4794a}.fr-table--brown-cafe-creme thead{background-color:#f7ecdb;box-shadow:inset 0 -2px 0 0 #685c48}.fr-table--brown-cafe-creme thead:hover{background-color:#edce94}.fr-table--brown-cafe-creme thead:active{background-color:#dabd84}.fr-table--brown-cafe-creme tbody{background-color:#fbf6ed}.fr-table--brown-cafe-creme tbody:hover{background-color:#f2deb6}.fr-table--brown-cafe-creme tbody:active{background-color:#eacf91}.fr-table--brown-cafe-creme tbody tr:nth-child(2n){background-color:#f7ecdb}.fr-table--brown-cafe-creme tbody tr:nth-child(2n):hover{background-color:#edce94}.fr-table--brown-cafe-creme tbody tr:nth-child(2n):active{background-color:#dabd84}.fr-table--brown-cafe-creme.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #d1b781}.fr-table--brown-caramel thead{background-color:#f7ebe5;box-shadow:inset 0 -2px 0 0 #845d48}.fr-table--brown-caramel thead:hover{background-color:#eccbb9}.fr-table--brown-caramel thead:active{background-color:#e6b79a}.fr-table--brown-caramel tbody{background-color:#fbf5f2}.fr-table--brown-caramel tbody:hover{background-color:#f1dbcf}.fr-table--brown-caramel tbody:active{background-color:#ecc9b5}.fr-table--brown-caramel tbody tr:nth-child(2n){background-color:#f7ebe5}.fr-table--brown-caramel tbody tr:nth-child(2n):hover{background-color:#eccbb9}.fr-table--brown-caramel tbody tr:nth-child(2n):active{background-color:#e6b79a}.fr-table--brown-caramel.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #c08c65}.fr-table--brown-opera thead{background-color:#f7ece4;box-shadow:inset 0 -2px 0 0 #745b47}.fr-table--brown-opera thead:hover{background-color:#eccdb3}.fr-table--brown-opera thead:active{background-color:#e6ba90}.fr-table--brown-opera tbody{background-color:#fbf5f2}.fr-table--brown-opera tbody:hover{background-color:#f1dbcf}.fr-table--brown-opera tbody:active{background-color:#ecc9b5}.fr-table--brown-opera tbody tr:nth-child(2n){background-color:#f7ece4}.fr-table--brown-opera tbody tr:nth-child(2n):hover{background-color:#eccdb3}.fr-table--brown-opera tbody tr:nth-child(2n):active{background-color:#e6ba90}.fr-table--brown-opera.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #bd987a}.fr-table--beige-gris-galet thead{background-color:#f3ede5;box-shadow:inset 0 -2px 0 0 #6a6156}.fr-table--beige-gris-galet thead:hover{background-color:#e1d0b5}.fr-table--beige-gris-galet thead:active{background-color:#d1bea2}.fr-table--beige-gris-galet tbody{background-color:#f9f6f2}.fr-table--beige-gris-galet tbody:hover{background-color:#eadecd}.fr-table--beige-gris-galet tbody:active{background-color:#e1ceb1}.fr-table--beige-gris-galet tbody tr:nth-child(2n){background-color:#f3ede5}.fr-table--beige-gris-galet tbody tr:nth-child(2n):hover{background-color:#e1d0b5}.fr-table--beige-gris-galet tbody tr:nth-child(2n):active{background-color:#d1bea2}.fr-table--beige-gris-galet.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #aea397}.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 #e5e5e5}.fr-table--bordered tbody tr:nth-child(2n){background-color:transparent}}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * DSFR v1.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.4.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.4.0 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
2
+ * DSFR v1.4.1 | SPDX-License-Identifier: MIT | License-Filename: LICENSE.md | restricted use (see terms and conditions)
3
3
  */.fr-table{--table-offset:1rem;--text-spacing:0;--title-spacing:0;margin-bottom:2.5rem;padding-top:var(--table-offset);position:relative}.fr-table:before{content:"";display:block;height:0;width:100%}.fr-table:not(.fr-table--no-scroll) table{width:100%}.fr-table table{border-spacing:0;display:block;overflow:auto;width:100%}.fr-table[data-fr-js-table=true] caption{position:absolute;top:0}.fr-table caption{color:var(--text-title-grey);font-size:1.375rem;font-weight:700;line-height:1.75rem;margin:var(--title-spacing);position:static;text-align:left}.fr-table td,.fr-table th{border:0;display:table-cell;font-size:.875rem;line-height:1.5rem;padding:.75rem;text-align:left;vertical-align:middle}.fr-table th{font-weight:700}.fr-table thead td,.fr-table thead th{font-weight:700;padding-bottom:.875rem}.fr-table--no-caption{padding-top:0}.fr-table--no-caption caption{clip:rect(0,0,0,0);border:0;height:1px;height:0;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fr-table--caption-bottom{margin-bottom:0;margin-top:1rem;padding-top:0}.fr-table--caption-bottom table{margin-bottom:calc(var(--table-offset) + 2.75rem)}.fr-table--caption-bottom[data-fr-js-table=true] caption{bottom:0;left:0;margin-top:1rem;position:absolute;right:0;top:100%}.fr-table--caption-bottom caption{caption-side:bottom;height:min-content;margin-top:1rem}.fr-table--no-scroll{min-width:auto}.fr-table--no-scroll table{overflow-x:hidden}.fr-table--no-scroll caption{max-width:calc(100vw - 2rem)}.fr-table--layout-fixed table{display:table;table-layout:fixed}.fr-table__shadow:before{bottom:0;box-shadow:inset 0 0 0 0 #161616,inset 0 0 0 0 #161616;content:"";display:block;left:0;opacity:.32;pointer-events:none;position:absolute;right:0;top:var(--table-offset);transition:box-shadow .3s;z-index:1}.fr-table__shadow--left:before{box-shadow:inset 2rem 0 1rem -2rem #161616,inset 0 0 0 0 #161616}.fr-table__shadow--right:before{box-shadow:inset 0 0 0 0 #161616,inset -2rem 0 1rem -2rem #161616}.fr-table__shadow--left.fr-table__shadow--right:before{box-shadow:inset 2rem 0 1rem -2rem #161616,inset -2rem 0 1rem -2rem #161616;content:"";display:block}.fr-table--caption-bottom .fr-table__shadow:before,.fr-table--no-caption .fr-table__shadow:before{bottom:0;content:"";display:block;left:0;position:absolute;right:0;top:0}:root[data-fr-theme=dark] .fr-table__shadow:before{opacity:1}.fr-table thead{--hover:var(--background-contrast-grey-hover);--active:var(--background-contrast-grey-active);background-color:var(--background-contrast-grey);box-shadow:inset 0 -2px 0 0 var(--border-plain-grey);color:var(--text-title-grey)}.fr-table tbody{--hover:var(--background-alt-grey-hover);--active:var(--background-alt-grey-active);background-color:var(--background-alt-grey)}.fr-table tbody tr:nth-child(2n){--hover:var(--background-contrast-grey-hover);--active:var(--background-contrast-grey-active);background-color:var(--background-contrast-grey)}.fr-table--green-tilleul-verveine thead{--hover:var(--background-contrast-green-tilleul-verveine-hover);--active:var(--background-contrast-green-tilleul-verveine-active);background-color:var(--background-contrast-green-tilleul-verveine);box-shadow:inset 0 -2px 0 0 var(--border-plain-green-tilleul-verveine)}.fr-table--green-tilleul-verveine tbody{--hover:var(--background-alt-green-tilleul-verveine-hover);--active:var(--background-alt-green-tilleul-verveine-active);background-color:var(--background-alt-green-tilleul-verveine)}.fr-table--green-tilleul-verveine tbody tr:nth-child(2n){--hover:var(--background-contrast-green-tilleul-verveine-hover);--active:var(--background-contrast-green-tilleul-verveine-active);background-color:var(--background-contrast-green-tilleul-verveine)}.fr-table--green-tilleul-verveine.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-green-tilleul-verveine)}.fr-table--green-bourgeon thead{--hover:var(--background-contrast-green-bourgeon-hover);--active:var(--background-contrast-green-bourgeon-active);background-color:var(--background-contrast-green-bourgeon);box-shadow:inset 0 -2px 0 0 var(--border-plain-green-bourgeon)}.fr-table--green-bourgeon tbody{--hover:var(--background-alt-green-bourgeon-hover);--active:var(--background-alt-green-bourgeon-active);background-color:var(--background-alt-green-bourgeon)}.fr-table--green-bourgeon tbody tr:nth-child(2n){--hover:var(--background-contrast-green-bourgeon-hover);--active:var(--background-contrast-green-bourgeon-active);background-color:var(--background-contrast-green-bourgeon)}.fr-table--green-bourgeon.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-green-bourgeon)}.fr-table--green-emeraude thead{--hover:var(--background-contrast-green-emeraude-hover);--active:var(--background-contrast-green-emeraude-active);background-color:var(--background-contrast-green-emeraude);box-shadow:inset 0 -2px 0 0 var(--border-plain-green-emeraude)}.fr-table--green-emeraude tbody{--hover:var(--background-alt-green-emeraude-hover);--active:var(--background-alt-green-emeraude-active);background-color:var(--background-alt-green-emeraude)}.fr-table--green-emeraude tbody tr:nth-child(2n){--hover:var(--background-contrast-green-emeraude-hover);--active:var(--background-contrast-green-emeraude-active);background-color:var(--background-contrast-green-emeraude)}.fr-table--green-emeraude.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-green-emeraude)}.fr-table--green-menthe thead{--hover:var(--background-contrast-green-menthe-hover);--active:var(--background-contrast-green-menthe-active);background-color:var(--background-contrast-green-menthe);box-shadow:inset 0 -2px 0 0 var(--border-plain-green-menthe)}.fr-table--green-menthe tbody{--hover:var(--background-alt-green-menthe-hover);--active:var(--background-alt-green-menthe-active);background-color:var(--background-alt-green-menthe)}.fr-table--green-menthe tbody tr:nth-child(2n){--hover:var(--background-contrast-green-menthe-hover);--active:var(--background-contrast-green-menthe-active);background-color:var(--background-contrast-green-menthe)}.fr-table--green-menthe.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-green-menthe)}.fr-table--green-archipel thead{--hover:var(--background-contrast-green-archipel-hover);--active:var(--background-contrast-green-archipel-active);background-color:var(--background-contrast-green-archipel);box-shadow:inset 0 -2px 0 0 var(--border-plain-green-archipel)}.fr-table--green-archipel tbody{--hover:var(--background-alt-green-archipel-hover);--active:var(--background-alt-green-archipel-active);background-color:var(--background-alt-green-archipel)}.fr-table--green-archipel tbody tr:nth-child(2n){--hover:var(--background-contrast-green-archipel-hover);--active:var(--background-contrast-green-archipel-active);background-color:var(--background-contrast-green-archipel)}.fr-table--green-archipel.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-green-archipel)}.fr-table--blue-ecume thead{--hover:var(--background-contrast-blue-ecume-hover);--active:var(--background-contrast-blue-ecume-active);background-color:var(--background-contrast-blue-ecume);box-shadow:inset 0 -2px 0 0 var(--border-plain-blue-ecume)}.fr-table--blue-ecume tbody{--hover:var(--background-alt-blue-ecume-hover);--active:var(--background-alt-blue-ecume-active);background-color:var(--background-alt-blue-ecume)}.fr-table--blue-ecume tbody tr:nth-child(2n){--hover:var(--background-contrast-blue-ecume-hover);--active:var(--background-contrast-blue-ecume-active);background-color:var(--background-contrast-blue-ecume)}.fr-table--blue-ecume.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-blue-ecume)}.fr-table--blue-cumulus thead{--hover:var(--background-contrast-blue-cumulus-hover);--active:var(--background-contrast-blue-cumulus-active);background-color:var(--background-contrast-blue-cumulus);box-shadow:inset 0 -2px 0 0 var(--border-plain-blue-cumulus)}.fr-table--blue-cumulus tbody{--hover:var(--background-alt-blue-cumulus-hover);--active:var(--background-alt-blue-cumulus-active);background-color:var(--background-alt-blue-cumulus)}.fr-table--blue-cumulus tbody tr:nth-child(2n){--hover:var(--background-contrast-blue-cumulus-hover);--active:var(--background-contrast-blue-cumulus-active);background-color:var(--background-contrast-blue-cumulus)}.fr-table--blue-cumulus.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-blue-cumulus)}.fr-table--purple-glycine thead{--hover:var(--background-contrast-purple-glycine-hover);--active:var(--background-contrast-purple-glycine-active);background-color:var(--background-contrast-purple-glycine);box-shadow:inset 0 -2px 0 0 var(--border-plain-purple-glycine)}.fr-table--purple-glycine tbody{--hover:var(--background-alt-purple-glycine-hover);--active:var(--background-alt-purple-glycine-active);background-color:var(--background-alt-purple-glycine)}.fr-table--purple-glycine tbody tr:nth-child(2n){--hover:var(--background-contrast-purple-glycine-hover);--active:var(--background-contrast-purple-glycine-active);background-color:var(--background-contrast-purple-glycine)}.fr-table--purple-glycine.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-purple-glycine)}.fr-table--pink-macaron thead{--hover:var(--background-contrast-pink-macaron-hover);--active:var(--background-contrast-pink-macaron-active);background-color:var(--background-contrast-pink-macaron);box-shadow:inset 0 -2px 0 0 var(--border-plain-pink-macaron)}.fr-table--pink-macaron tbody{--hover:var(--background-alt-pink-macaron-hover);--active:var(--background-alt-pink-macaron-active);background-color:var(--background-alt-pink-macaron)}.fr-table--pink-macaron tbody tr:nth-child(2n){--hover:var(--background-contrast-pink-macaron-hover);--active:var(--background-contrast-pink-macaron-active);background-color:var(--background-contrast-pink-macaron)}.fr-table--pink-macaron.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-pink-macaron)}.fr-table--pink-tuile thead{--hover:var(--background-contrast-pink-tuile-hover);--active:var(--background-contrast-pink-tuile-active);background-color:var(--background-contrast-pink-tuile);box-shadow:inset 0 -2px 0 0 var(--border-plain-pink-tuile)}.fr-table--pink-tuile tbody{--hover:var(--background-alt-pink-tuile-hover);--active:var(--background-alt-pink-tuile-active);background-color:var(--background-alt-pink-tuile)}.fr-table--pink-tuile tbody tr:nth-child(2n){--hover:var(--background-contrast-pink-tuile-hover);--active:var(--background-contrast-pink-tuile-active);background-color:var(--background-contrast-pink-tuile)}.fr-table--pink-tuile.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-pink-tuile)}.fr-table--yellow-tournesol thead{--hover:var(--background-contrast-yellow-tournesol-hover);--active:var(--background-contrast-yellow-tournesol-active);background-color:var(--background-contrast-yellow-tournesol);box-shadow:inset 0 -2px 0 0 var(--border-plain-yellow-tournesol)}.fr-table--yellow-tournesol tbody{--hover:var(--background-alt-yellow-tournesol-hover);--active:var(--background-alt-yellow-tournesol-active);background-color:var(--background-alt-yellow-tournesol)}.fr-table--yellow-tournesol tbody tr:nth-child(2n){--hover:var(--background-contrast-yellow-tournesol-hover);--active:var(--background-contrast-yellow-tournesol-active);background-color:var(--background-contrast-yellow-tournesol)}.fr-table--yellow-tournesol.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-yellow-tournesol)}.fr-table--yellow-moutarde thead{--hover:var(--background-contrast-yellow-moutarde-hover);--active:var(--background-contrast-yellow-moutarde-active);background-color:var(--background-contrast-yellow-moutarde);box-shadow:inset 0 -2px 0 0 var(--border-plain-yellow-moutarde)}.fr-table--yellow-moutarde tbody{--hover:var(--background-alt-yellow-moutarde-hover);--active:var(--background-alt-yellow-moutarde-active);background-color:var(--background-alt-yellow-moutarde)}.fr-table--yellow-moutarde tbody tr:nth-child(2n){--hover:var(--background-contrast-yellow-moutarde-hover);--active:var(--background-contrast-yellow-moutarde-active);background-color:var(--background-contrast-yellow-moutarde)}.fr-table--yellow-moutarde.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-yellow-moutarde)}.fr-table--orange-terre-battue thead{--hover:var(--background-contrast-orange-terre-battue-hover);--active:var(--background-contrast-orange-terre-battue-active);background-color:var(--background-contrast-orange-terre-battue);box-shadow:inset 0 -2px 0 0 var(--border-plain-orange-terre-battue)}.fr-table--orange-terre-battue tbody{--hover:var(--background-alt-orange-terre-battue-hover);--active:var(--background-alt-orange-terre-battue-active);background-color:var(--background-alt-orange-terre-battue)}.fr-table--orange-terre-battue tbody tr:nth-child(2n){--hover:var(--background-contrast-orange-terre-battue-hover);--active:var(--background-contrast-orange-terre-battue-active);background-color:var(--background-contrast-orange-terre-battue)}.fr-table--orange-terre-battue.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-orange-terre-battue)}.fr-table--brown-cafe-creme thead{--hover:var(--background-contrast-brown-cafe-creme-hover);--active:var(--background-contrast-brown-cafe-creme-active);background-color:var(--background-contrast-brown-cafe-creme);box-shadow:inset 0 -2px 0 0 var(--border-plain-brown-cafe-creme)}.fr-table--brown-cafe-creme tbody{--hover:var(--background-alt-brown-cafe-creme-hover);--active:var(--background-alt-brown-cafe-creme-active);background-color:var(--background-alt-brown-cafe-creme)}.fr-table--brown-cafe-creme tbody tr:nth-child(2n){--hover:var(--background-contrast-brown-cafe-creme-hover);--active:var(--background-contrast-brown-cafe-creme-active);background-color:var(--background-contrast-brown-cafe-creme)}.fr-table--brown-cafe-creme.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-brown-cafe-creme)}.fr-table--brown-caramel thead{--hover:var(--background-contrast-brown-caramel-hover);--active:var(--background-contrast-brown-caramel-active);background-color:var(--background-contrast-brown-caramel);box-shadow:inset 0 -2px 0 0 var(--border-plain-brown-caramel)}.fr-table--brown-caramel tbody{--hover:var(--background-alt-brown-caramel-hover);--active:var(--background-alt-brown-caramel-active);background-color:var(--background-alt-brown-caramel)}.fr-table--brown-caramel tbody tr:nth-child(2n){--hover:var(--background-contrast-brown-caramel-hover);--active:var(--background-contrast-brown-caramel-active);background-color:var(--background-contrast-brown-caramel)}.fr-table--brown-caramel.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-brown-caramel)}.fr-table--brown-opera thead{--hover:var(--background-contrast-brown-opera-hover);--active:var(--background-contrast-brown-opera-active);background-color:var(--background-contrast-brown-opera);box-shadow:inset 0 -2px 0 0 var(--border-plain-brown-opera)}.fr-table--brown-opera tbody{--hover:var(--background-alt-brown-opera-hover);--active:var(--background-alt-brown-opera-active);background-color:var(--background-alt-brown-opera)}.fr-table--brown-opera tbody tr:nth-child(2n){--hover:var(--background-contrast-brown-opera-hover);--active:var(--background-contrast-brown-opera-active);background-color:var(--background-contrast-brown-opera)}.fr-table--brown-opera.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-brown-opera)}.fr-table--beige-gris-galet thead{--hover:var(--background-contrast-beige-gris-galet-hover);--active:var(--background-contrast-beige-gris-galet-active);background-color:var(--background-contrast-beige-gris-galet);box-shadow:inset 0 -2px 0 0 var(--border-plain-beige-gris-galet)}.fr-table--beige-gris-galet tbody{--hover:var(--background-alt-beige-gris-galet-hover);--active:var(--background-alt-beige-gris-galet-active);background-color:var(--background-alt-beige-gris-galet)}.fr-table--beige-gris-galet tbody tr:nth-child(2n){--hover:var(--background-contrast-beige-gris-galet-hover);--active:var(--background-contrast-beige-gris-galet-active);background-color:var(--background-contrast-beige-gris-galet)}.fr-table--beige-gris-galet.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-beige-gris-galet)}.fr-table--bordered tbody tr{box-shadow:inset 0 -1px 0 0 var(--border-default-grey)}.fr-table--bordered tbody tr:nth-child(2n){--hover:inherit;--active:inherit;background-color:transparent}@media (min-width:48em){.fr-table caption{font-size:1.5rem;line-height:2rem}.fr-table td,.fr-table th{padding:1rem}.fr-table thead td,.fr-table thead th{padding-bottom:1.125rem}}