@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":"core.nomodule.min.js","sources":["../../src/core/script/api/state.js","../../.config/config.js","../../src/core/script/api/inspect/inspector.js","../../src/core/script/api/options/starters.js","../../src/core/script/api/options/options.js","../../src/core/script/api/utilities/collection.js","../../src/core/script/api/modules/module.js","../../src/core/script/api/utilities/namespace.js","../../src/core/script/api/utilities/dom/query-selector.js","../../src/core/script/api/modules/register/registration.js","../../src/core/script/api/modules/register/register.js","../../src/core/script/api/modules/stage/element.js","../../src/core/script/api/modules/stage/root.js","../../src/core/script/api/modules/stage/stage.js","../../src/core/script/api/modules/render/renderer.js","../../src/core/script/api/modules/resize/resizer.js","../../src/core/script/api/modules/scroll/scroll-locker.js","../../src/core/script/api/modules/load/load.js","../../src/core/script/api/modules/font-swap/font-swap.js","../../src/core/script/api/modules/mouse-move/mouse-move.js","../../src/core/script/api/engine.js","../../src/core/script/api/utilities/dom/classes.js","../../src/core/script/api/utilities/dom/index.js","../../src/core/script/api/utilities/support/browser-support.js","../../src/core/script/api/utilities/support/index.js","../../src/core/script/api/utilities/motion/transition-selector.js","../../src/core/script/api/utilities/motion/index.js","../../src/core/script/api/utilities/property/complete-assign.js","../../src/core/script/api/utilities/property/index.js","../../src/core/script/api/internals.js","../../src/core/script/api/api.js","../../src/core/script/api/utilities/emitter.js","../../src/core/script/api/modules/register/breakpoints.js","../../src/core/script/api/modules/register/instance.js","../../src/core/script/api/modules/register/key-codes.js","../../src/core/script/disclosure/disclosure-event.js","../../src/core/script/disclosure/disclosure-emission.js","../../src/core/script/disclosure/disclosure.js","../../src/core/script/disclosure/disclosure-button.js","../../src/core/script/disclosure/disclosures-group.js","../../src/core/script/disclosure/disclosure-type.js","../../src/core/script/collapse/collapse-button.js","../../src/core/script/collapse/collapse-selector.js","../../src/core/script/collapse/collapse.js","../../src/core/script/collapse/collapses-group.js","../../src/core/script/equisized/equisized-emission.js","../../src/core/script/equisized/equisized.js","../../src/core/script/equisized/equisizeds-group.js","../../src/core/script/action/toggle/toggle-event.js","../../src/core/script/action/toggle/toggle.js","../../src/core/script/inject/inject-svg.js","../../src/core/script/api/utilities/attribute.js","../../src/core/script/inject/inject-svg-selector.js","../../src/core/index.js","../../src/core/main.js","../../src/core/legacy.js"],"sourcesContent":["class State {\n constructor () {\n this.modules = {};\n }\n\n create (ModuleClass) {\n const module = new ModuleClass();\n this.modules[module.type] = module;\n }\n\n getModule (type) {\n return this.modules[type];\n }\n\n add (type, item) {\n this.modules[type].add(item);\n }\n\n remove (type, item) {\n this.modules[type].remove(item);\n }\n\n get isActive () {\n return this._isActive;\n }\n\n set isActive (value) {\n if (value === this._isActive) return;\n this._isActive = value;\n const values = Object.keys(this.modules).map((e) => {\n return this.modules[e];\n });\n if (value) {\n for (const module of values) {\n module.activate();\n }\n } else {\n for (const module of values) {\n module.deactivate();\n }\n }\n }\n\n get isLegacy () {\n return this._isLegacy;\n }\n\n set isLegacy (value) {\n if (value === this._isLegacy) return;\n this._isLegacy = value;\n }\n}\n\nconst state = new State();\n\nexport default state;\n","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 state from '../state.js';\nimport config from '../../../config.js';\n\nclass LogLevel {\n constructor (level, light, dark, logger) {\n this.level = level;\n this.light = light;\n this.dark = dark;\n\n switch (logger) {\n case 'warn':\n this.logger = console.warn;\n break;\n\n case 'error':\n this.logger = console.error;\n break;\n\n default:\n this.logger = console.log;\n }\n }\n\n log (...values) {\n const message = new Message(config.namespace);\n for (const value of values) message.add(value);\n this.print(message);\n }\n\n print (message) {\n message.setColor(this.color);\n this.logger.apply(console, message.getMessage());\n }\n\n get color () {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? this.dark : this.light;\n }\n}\n\nclass Message {\n constructor (domain) {\n this.inputs = ['%c'];\n this.styles = ['font-family:Marianne', 'line-height: 1.5'];\n this.objects = [];\n\n if (domain) this.add(`${domain} :`);\n }\n\n add (value) {\n switch (typeof value) {\n case 'object':\n case 'function':\n this.inputs.push('%o ');\n this.objects.push(value);\n break;\n\n default:\n this.inputs.push(`${value} `);\n }\n }\n\n setColor (color) {\n this.styles.push(`color:${color}`);\n }\n\n getMessage () {\n return [this.inputs.join(''), this.styles.join(';'), ...this.objects];\n }\n}\n\nconst LEVELS = {\n trace: new LogLevel(0, '#616161', '#989898'),\n debug: new LogLevel(1, '#000091', '#8B8BFF'),\n info: new LogLevel(2, '#007c3b', '#00ed70'),\n warn: new LogLevel(3, '#ba4500', '#fa5c00', 'warn'),\n error: new LogLevel(4, '#D80600', '#FF4641', 'error')\n};\n\nclass Inspector {\n constructor () {\n this.level = 2;\n\n for (const id in LEVELS) {\n const level = LEVELS[id];\n this[id] = (...msgs) => {\n if (this.level <= level.level) level.log.apply(level, msgs);\n };\n this[id].print = level.print.bind(level);\n }\n }\n\n state () {\n const message = new Message();\n message.add(state);\n this.trace.print(message);\n }\n\n tree () {\n const stage = state.getModule('stage');\n if (!stage) return;\n const message = new Message();\n this._branch(stage.root, 0, message);\n this.trace.print(message);\n }\n\n _branch (element, space, message) {\n let branch = '';\n if (space > 0) {\n let indent = '';\n for (let i = 0; i < space; i++) indent += ' ';\n // branch += indent + '|\\n';\n branch += indent + '└─ ';\n }\n branch += `[${element.id}] ${element.html}`;\n message.add(branch);\n message.add({ '@': element });\n message.add('\\n');\n for (const child of element.children) branch += this._branch(child, space + 1, message);\n }\n}\n\nconst inspector = new Inspector();\n\nexport default inspector;\n","export const startAtDomContentLoaded = (callback) => {\n if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n else document.addEventListener('DOMContentLoaded', callback);\n};\n\nexport const startAuto = (callback) => {\n // detect\n startAtDomContentLoaded(callback);\n};\n","import inspector from '../inspect/inspector.js';\nimport { startAtDomContentLoaded, startAuto } from './starters.js';\n\nexport const Modes = {\n AUTO: 'auto',\n MANUAL: 'manual',\n RUNTIME: 'runtime',\n LOADED: 'loaded',\n VUE: 'vue',\n ANGULAR: 'angular',\n REACT: 'react'\n};\n\nclass Options {\n constructor () {\n this._mode = Modes.AUTO;\n this.isStarted = false;\n this.starting = this.start.bind(this);\n this.preventManipulation = false;\n }\n\n configure (settings = {}, start) {\n this.startCallback = start;\n if (settings.verbose === true) inspector.level = 0;\n this.mode = settings.mode || Modes.AUTO;\n }\n\n set mode (value) {\n switch (value) {\n case Modes.AUTO:\n this.preventManipulation = false;\n startAuto(this.starting);\n break;\n\n case Modes.LOADED:\n this.preventManipulation = false;\n startAtDomContentLoaded(this.starting);\n break;\n\n case Modes.RUNTIME:\n this.preventManipulation = false;\n this.start();\n break;\n\n case Modes.MANUAL:\n this.preventManipulation = false;\n break;\n\n case Modes.VUE:\n this.preventManipulation = true;\n break;\n\n case Modes.ANGULAR:\n this.preventManipulation = true;\n break;\n\n case Modes.REACT:\n this.preventManipulation = true;\n break;\n\n default:\n inspector.error('Illegal mode');\n return;\n }\n\n this._mode = value;\n inspector.info(`mode set to ${value}`);\n }\n\n get mode () {\n return this._mode;\n }\n\n start () {\n inspector.info('start');\n this.startCallback();\n }\n}\n\nconst options = new Options();\nexport default options;\n","class Collection {\n constructor () {\n this._collection = [];\n }\n\n forEach (callback) {\n this._collection.forEach(callback);\n }\n\n map (callback) {\n return this._collection.map(callback);\n }\n\n get length () {\n return this._collection.length;\n }\n\n add (collectable) {\n if (this._collection.indexOf(collectable) > -1) return false;\n this._collection.push(collectable);\n if (this.onAdd) this.onAdd();\n if (this.onPopulate && this._collection.length === 1) this.onPopulate();\n return true;\n }\n\n remove (collectable) {\n const index = this._collection.indexOf(collectable);\n if (index === -1) return false;\n this._collection.splice(index, 1);\n if (this.onRemove) this.onRemove();\n if (this.onEmpty && this._collection.length === 0) this.onEmpty();\n }\n\n execute (...args) {\n for (const collectable of this._collection) if (collectable) collectable.apply(null, args);\n }\n\n clear () {\n this._collection.length = 0;\n }\n\n clone () {\n const clone = new Collection();\n clone._collection = this._collection.slice();\n return clone;\n }\n\n get collection () {\n return this._collection;\n }\n}\n\nexport { Collection };\n","import { Collection } from '../utilities/collection.js';\n\nclass Module extends Collection {\n constructor (type) {\n super();\n this.type = type;\n this.isActive = false;\n }\n\n activate () {}\n deactivate () {}\n}\n\nexport { Module };\n","import config from '../../../config.js';\n\nconst ns = name => `${config.prefix}-${name}`;\n\nns.selector = (name, notation) => {\n if (notation === undefined) notation = '.';\n return `${notation}${ns(name)}`;\n};\n\nns.attr = (name) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n let result = ns.attr(name);\n if (value !== undefined) result += `=\"${value}\"`;\n return `[${result}]`;\n};\n\nns.event = (type) => `${config.namespace}.${type}`;\n\nns.emission = (domain, type) => `emission:${domain}.${type}`;\n\nexport default ns;\n","export const querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nexport const queryParentSelector = (element, selectors) => {\n const parent = element.parentElement;\n if (parent.matches(selectors)) return parent;\n if (parent === document.documentElement) return null;\n return queryParentSelector(parent, selectors);\n};\n","import { Collection } from '../../utilities/collection.js';\nimport state from '../../state.js';\nimport ns from '../../utilities/namespace.js';\nimport { querySelectorAllArray } from '../../utilities/dom/query-selector';\n\nclass Registration {\n constructor (selector, InstanceClass, creator) {\n this.selector = selector;\n this.InstanceClass = InstanceClass;\n this.creator = creator;\n this.instances = new Collection();\n this.isIntroduced = false;\n this._instanceClassName = this.InstanceClass.instanceClassName;\n this._instanceClassNames = this.getInstanceClassNames(this.InstanceClass);\n this._property = this._instanceClassName.substring(0, 1).toLowerCase() + this._instanceClassName.substring(1);\n const dashed = this._instanceClassName\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .toLowerCase();\n this._attribute = ns.attr(`js-${dashed}`);\n }\n\n getInstanceClassNames (InstanceClass) {\n const prototype = Object.getPrototypeOf(InstanceClass);\n if (!prototype || prototype.instanceClassName === 'Instance') return [InstanceClass.instanceClassName];\n return [...this.getInstanceClassNames(prototype), InstanceClass.instanceClassName];\n }\n\n hasInstanceClassName (instanceClassName) {\n return this._instanceClassNames.indexOf(instanceClassName) > -1;\n }\n\n introduce () {\n if (this.isIntroduced) return;\n this.isIntroduced = true;\n state.getModule('stage').parse(document.documentElement, this);\n }\n\n parse (node, nonRecursive) {\n const nodes = [];\n if (node.matches && node.matches(this.selector)) nodes.push(node);\n // eslint-disable-next-line no-useless-call\n if (!nonRecursive && node.querySelectorAll && node.querySelector(this.selector)) nodes.push.apply(nodes, querySelectorAllArray(node, this.selector));\n return nodes;\n }\n\n create (element) {\n if (!element.node.matches(this.selector)) return;\n const instance = new this.InstanceClass();\n this.instances.add(instance);\n return instance;\n }\n\n remove (instance) {\n this.instances.remove(instance);\n }\n\n dispose () {\n const instances = this.instances.collection;\n for (let i = instances.length - 1; i > -1; i--) instances[i]._dispose();\n this.creator = null;\n }\n\n get instanceClassName () {\n return this._instanceClassName;\n }\n\n get instanceClassNames () {\n return this._instanceClassNames;\n }\n\n get property () {\n return this._property;\n }\n\n get attribute () {\n return this._attribute;\n }\n}\n\nexport { Registration };\n","import { Module } from '../module.js';\nimport { Registration } from './registration.js';\nimport state from '../../state.js';\n\nclass Register extends Module {\n constructor () {\n super('register');\n }\n\n register (selector, InstanceClass, creator) {\n const registration = new Registration(selector, InstanceClass, creator);\n this.add(registration);\n if (state.isActive) registration.introduce();\n return registration;\n }\n\n activate () {\n for (const registration of this.collection) registration.introduce();\n }\n\n remove (registration) {\n registration.dispose();\n super.remove(registration);\n }\n}\n\nexport { Register };\n","import state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\n\nlet count = 0;\n\nclass Element {\n constructor (node, id) {\n if (!id) {\n count++;\n this.id = count;\n } else this.id = id;\n this.node = node;\n this.attributeNames = [];\n this.instances = [];\n this._children = [];\n this._parent = null;\n this._projects = [];\n }\n\n get proxy () {\n const scope = this;\n if (!this._proxy) {\n this._proxy = {\n id: this.id,\n get parent () {\n return scope.parent ? scope.parent.proxy : null;\n },\n get children () {\n return scope.children.map((child) => child.proxy);\n }\n };\n\n for (const instance of this.instances) this._proxy[instance.registration.property] = instance.proxy;\n }\n return this._proxy;\n }\n\n get html () {\n const end = this.node.outerHTML.indexOf('>');\n return this.node.outerHTML.substring(0, end + 1);\n }\n\n project (registration) {\n if (this._projects.indexOf(registration) === -1) this._projects.push(registration);\n }\n\n populate () {\n const projects = this._projects.slice();\n this._projects.length = 0;\n for (const registration of projects) this.create(registration);\n }\n\n create (registration) {\n if (this.hasInstance(registration.instanceClassName)) {\n // inspector.debug(`failed creation, instance of ${registration.instanceClassName} already exists on element [${this.id}]`);\n return;\n }\n inspector.debug(`create instance of ${registration.instanceClassName} on element [${this.id}]`);\n const instance = registration.create(this);\n this.instances.push(instance);\n instance._config(this, registration);\n if (this._proxy) this._proxy[registration.property] = instance.proxy;\n }\n\n remove (instance) {\n const index = this.instances.indexOf(instance);\n if (index > -1) this.instances.splice(index, 1);\n if (this._proxy) delete this._proxy[instance.registration.property];\n }\n\n get parent () {\n return this._parent;\n }\n\n get ascendants () {\n return [this.parent, ...this.parent.ascendants];\n }\n\n get children () {\n return this._children;\n }\n\n get descendants () {\n const descendants = [...this._children];\n this._children.forEach(child => descendants.push(...child.descendants));\n return descendants;\n }\n\n // TODO : emit ascendant et descendant de changement ?\n\n addChild (child, index) {\n if (this._children.indexOf(child) > -1) return null;\n child._parent = this;\n if (!isNaN(index) && index > -1 && index < this._children.length) this._children.splice(index, 0, child);\n else this._children.push(child);\n return child;\n }\n\n removeChild (child) {\n const index = this._children.indexOf(child);\n if (index === -1) return null;\n child._parent = null;\n this._children.splice(index, 1);\n }\n\n emit (type, data) {\n const elements = state.getModule('stage').collection;\n const response = [];\n for (const element of elements) response.push(...element._emit(type, data));\n return response;\n }\n\n _emit (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._emitter.emit(type, data));\n return response;\n }\n\n ascend (type, data) {\n if (this._parent) return this._parent._ascend(type, data);\n return [];\n }\n\n _ascend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._ascent.emit(type, data));\n if (this._parent) response.push(...this._parent._ascend(type, data));\n return response;\n }\n\n descend (type, data) {\n const response = [];\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n _descend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._descent.emit(type, data));\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n getInstance (instanceClassName) {\n for (const instance of this.instances) if (instance.registration.hasInstanceClassName(instanceClassName)) return instance;\n return null;\n }\n\n hasInstance (instanceClassName) {\n return this.getInstance(instanceClassName) !== null;\n }\n\n getDescendantInstances (instanceClassName, stopAtInstanceClassName, stopAtFirstInstance) {\n if (!instanceClassName) return [];\n const instances = [];\n for (const child of this._children) {\n const instance = child.getInstance(instanceClassName);\n if (instance) {\n instances.push(instance);\n if (stopAtFirstInstance) continue;\n }\n if ((!stopAtInstanceClassName || !child.hasInstance(stopAtInstanceClassName)) && child.children.length) instances.push.apply(instances, child.getDescendantInstances(instanceClassName, stopAtInstanceClassName, stopAtFirstInstance));\n }\n return instances;\n }\n\n getAscendantInstance (instanceClassName, stopAtInstanceClassName) {\n if (!instanceClassName || !this._parent) return null;\n const instance = this._parent.getInstance(instanceClassName);\n if (instance) return instance;\n if (stopAtInstanceClassName && this._parent.hasInstance(stopAtInstanceClassName)) return null;\n return this._parent.getAscendantInstance(instanceClassName, stopAtInstanceClassName);\n }\n\n dispose () {\n for (const instance of this.instances) instance._dispose();\n this.instances.length = 0;\n state.remove('stage', this);\n this.parent.removeChild(this);\n this._children.length = 0;\n inspector.debug(`remove element [${this.id}] ${this.html}`);\n }\n\n prepare (attributeName) {\n if (this.attributeNames.indexOf(attributeName) === -1) this.attributeNames.push(attributeName);\n }\n\n examine () {\n const attributeNames = this.attributeNames.slice();\n this.attributeNames.length = 0;\n for (let i = this.instances.length - 1; i > -1; i--) this.instances[i].examine(attributeNames);\n }\n}\n\nexport { Element };\n","import { Element } from './element.js';\nimport ns from '../../utilities/namespace.js';\n\nclass Root extends Element {\n constructor () {\n super(document.documentElement, 'root');\n this.node.setAttribute(ns.attr('js'), true);\n }\n}\n\nconst RootSelector = {\n ROOT: ':root'\n};\n\nexport { Root, RootSelector };\n","import state from '../../state.js';\nimport { Element } from './element.js';\nimport { Module } from '../module.js';\nimport { Root } from './root.js';\nimport inspector from '../../inspect/inspector.js';\n\nclass Stage extends Module {\n constructor () {\n super('stage');\n this.root = new Root();\n super.add(this.root);\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.modifications = [];\n this.willModify = false;\n this.modifying = this.modify.bind(this);\n }\n\n hasElement (node) {\n for (const element of this.collection) if (element.node === node) return true;\n return false;\n }\n\n getElement (node) {\n for (const element of this.collection) if (element.node === node) return element;\n const element = new Element(node);\n this.add(element);\n inspector.debug(`add element [${element.id}] ${element.html}`);\n return element;\n }\n\n getProxy (node) {\n if (!this.hasElement(node)) return null;\n const element = this.getElement(node);\n return element.proxy;\n }\n\n add (element) {\n super.add(element);\n this.put(element, this.root);\n }\n\n put (element, branch) {\n let index = 0;\n for (let i = branch.children.length - 1; i > -1; i--) {\n const child = branch.children[i];\n const position = element.node.compareDocumentPosition(child.node);\n if (position & Node.DOCUMENT_POSITION_CONTAINS) {\n this.put(element, child);\n return;\n } else if (position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n branch.removeChild(child);\n element.addChild(child, 0);\n } else if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n index = i + 1;\n break;\n }\n }\n\n branch.addChild(element, index);\n }\n\n activate () {\n this.observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true });\n }\n\n deactivate () {\n this.observer.disconnect();\n }\n\n mutate (mutations) {\n const examinations = [];\n mutations.forEach((mutation) => {\n switch (mutation.type) {\n case 'childList':\n mutation.removedNodes.forEach((node) => this.dispose(node));\n mutation.addedNodes.forEach((node) => this.parse(node));\n break;\n\n case 'attributes':\n if (this.hasElement(mutation.target)) {\n const element = this.getElement(mutation.target);\n element.prepare(mutation.attributeName);\n if (examinations.indexOf(element) === -1) examinations.push(element);\n for (const descendant of element.descendants) if (examinations.indexOf(descendant) === -1) examinations.push(descendant);\n }\n if (this.modifications.indexOf(mutation.target) === -1) this.modifications.push(mutation.target);\n break;\n }\n });\n\n examinations.forEach(element => element.examine());\n if (this.modifications.length && !this.willModify) {\n this.willModify = true;\n window.requestAnimationFrame(this.modifying);\n }\n }\n\n modify () {\n this.willModify = false;\n const targets = this.modifications.slice();\n this.modifications.length = 0;\n for (const target of targets) if (document.documentElement.contains(target)) this.parse(target);\n }\n\n dispose (node) {\n const disposables = [];\n this.forEach((element) => {\n if (node.contains(element.node)) disposables.push(element);\n });\n\n for (const disposable of disposables) {\n disposable.dispose();\n this.remove(disposable);\n }\n }\n\n parse (node, registration, nonRecursive) {\n const registrations = registration ? [registration] : state.getModule('register').collection;\n const creations = [];\n\n for (const registration of registrations) {\n const nodes = registration.parse(node, nonRecursive);\n\n for (const n of nodes) {\n const element = this.getElement(n);\n element.project(registration);\n if (creations.indexOf(element) === -1) creations.push(element);\n }\n }\n\n for (const element of creations) element.populate();\n }\n}\n\nexport { Stage };\n","import state from '../../state.js';\nimport { Module } from '../module.js';\nimport { Collection } from '../../utilities/collection.js';\n\nclass Renderer extends Module {\n constructor () {\n super('render');\n this.rendering = this.render.bind(this);\n this.nexts = new Collection();\n }\n\n activate () {\n window.requestAnimationFrame(this.rendering);\n }\n\n request (instance) {\n this.nexts.add(instance);\n }\n\n render () {\n if (!state.isActive) return;\n window.requestAnimationFrame(this.rendering);\n this.forEach((instance) => instance.render());\n if (!this.nexts.length) return;\n const nexts = this.nexts.clone();\n this.nexts.clear();\n nexts.forEach((instance) => instance.next());\n }\n}\n\nexport { Renderer };\n","import { Module } from '../module.js';\n\nclass Resizer extends Module {\n constructor () {\n super('resize');\n this.requireResize = false;\n this.resizing = this.resize.bind(this);\n const requesting = this.request.bind(this);\n if (document.fonts) {\n document.fonts.ready.then(requesting);\n }\n window.addEventListener('resize', requesting);\n window.addEventListener('orientationchange', requesting);\n }\n\n activate () {\n this.request();\n }\n\n request () {\n if (this.requireResize) return;\n this.requireResize = true;\n window.requestAnimationFrame(this.resizing);\n }\n\n resize () {\n if (!this.requireResize) return;\n this.forEach((instance) => instance.resize());\n this.requireResize = false;\n }\n}\n\nexport { Resizer };\n","import ns from '../../utilities/namespace.js';\nimport { Module } from '../module.js';\n\nclass ScrollLocker extends Module {\n constructor () {\n super('lock');\n this._isLocked = false;\n this._scrollY = 0;\n this.onPopulate = this.lock.bind(this);\n this.onEmpty = this.unlock.bind(this);\n }\n\n get isLocked () {\n return this._isLocked;\n }\n\n lock () {\n if (!this._isLocked) {\n this._isLocked = true;\n this._scrollY = window.scrollY;\n if (this.isLegacy) document.body.style.top = this._scrollY * -1 + 'px';\n else document.body.style.setProperty('--scroll-top', this._scrollY * -1 + 'px');\n document.documentElement.setAttribute(ns.attr('scrolling'), 'false');\n }\n }\n\n unlock () {\n if (this._isLocked) {\n this._isLocked = false;\n document.documentElement.removeAttribute(ns.attr('scrolling'));\n if (this.isLegacy) document.body.style.top = '';\n else document.body.style.removeProperty('--scroll-top');\n window.scroll(0, this._scrollY);\n }\n }\n}\n\nexport { ScrollLocker };\n","import { Module } from '../module.js';\n\nclass Load extends Module {\n constructor () {\n super('load');\n this.loading = this.load.bind(this);\n }\n\n activate () {\n window.addEventListener('load', this.loading);\n }\n\n load () {\n this.forEach((instance) => instance.load());\n }\n}\n\nexport { Load };\n","import { Module } from '../module.js';\n\nconst FONT_FAMILIES = ['Marianne', 'Spectral'];\n\nclass FontSwap extends Module {\n constructor () {\n super('font-swap');\n this.swapping = this.swap.bind(this);\n }\n\n activate () {\n if (document.fonts) {\n document.fonts.addEventListener('loadingdone', this.swapping);\n }\n }\n\n swap () {\n const families = FONT_FAMILIES.filter(family => document.fonts.check(`16px ${family}`));\n\n this.forEach((instance) => instance.swapFont(families));\n }\n}\n\nexport { FontSwap };\n","import { Module } from '../module.js';\n\nclass MouseMove extends Module {\n constructor () {\n super('mouse-move');\n this.requireMove = false;\n this._isMoving = false;\n this.moving = this.move.bind(this);\n this.requesting = this.request.bind(this);\n this.onPopulate = this.listen.bind(this);\n this.onEmpty = this.unlisten.bind(this);\n }\n\n listen () {\n if (this._isMoving) return;\n this._isMoving = true;\n this.requireMove = false;\n document.documentElement.addEventListener('mousemove', this.requesting);\n }\n\n unlisten () {\n if (!this._isMoving) return;\n this._isMoving = false;\n this.requireMove = false;\n document.documentElement.removeEventListener('mousemove', this.requesting);\n }\n\n request (e) {\n if (!this._isMoving) return;\n this.point = { x: e.clientX, y: e.clientY };\n if (this.requireMove) return;\n this.requireMove = true;\n window.requestAnimationFrame(this.moving);\n }\n\n move () {\n if (!this.requireMove) return;\n this.forEach((instance) => instance.mouseMove(this.point));\n this.requireMove = false;\n }\n}\n\nexport { MouseMove };\n","import { Register } from './modules/register/register.js';\nimport { Stage } from './modules/stage/stage.js';\nimport { Renderer } from './modules/render/renderer.js';\nimport { Resizer } from './modules/resize/resizer.js';\nimport { ScrollLocker } from './modules/scroll/scroll-locker.js';\nimport { Load } from './modules/load/load.js';\nimport { FontSwap } from './modules/font-swap/font-swap';\nimport { MouseMove } from './modules/mouse-move/mouse-move';\nimport inspector from './inspect/inspector.js';\nimport state from './state.js';\n\nclass Engine {\n constructor () {\n state.create(Register);\n state.create(Stage);\n state.create(Renderer);\n state.create(Resizer);\n state.create(ScrollLocker);\n state.create(Load);\n state.create(FontSwap);\n state.create(MouseMove);\n\n const registerModule = state.getModule('register');\n this.register = registerModule.register.bind(registerModule);\n }\n\n get isActive () {\n return state.isActive;\n }\n\n start () {\n inspector.debug('START');\n state.isActive = true;\n }\n\n stop () {\n inspector.debug('STOP');\n state.isActive = false;\n }\n}\n\nconst engine = new Engine();\nexport default engine;\n","const sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => element.className ? element.className.split(' ') : [];\n\nconst modifyClass = (element, className, remove) => {\n className = sanitize(className);\n const classNames = getClassNames(element);\n const index = classNames.indexOf(className);\n if (remove === true) {\n if (index > -1) classNames.splice(index, 1);\n } else if (index === -1) classNames.push(className);\n element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nexport { removeClass };\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nexport { hasClass };\n","import { addClass, hasClass, removeClass } from './classes.js';\nimport { queryParentSelector, querySelectorAllArray } from './query-selector.js';\n\nconst dom = {};\n\ndom.addClass = addClass;\ndom.hasClass = hasClass;\ndom.removeClass = removeClass;\ndom.queryParentSelector = queryParentSelector;\ndom.querySelectorAllArray = querySelectorAllArray;\n\nexport default dom;\n","const supportLocalStorage = () => {\n try {\n return 'localStorage' in window && window.localStorage !== null;\n } catch (e) {\n return false;\n }\n};\n\nexport { supportLocalStorage };\n","import { supportLocalStorage } from './browser-support.js';\n\nconst support = {};\n\nsupport.supportLocalStorage = supportLocalStorage;\n\nexport default support;\n","import ns from '../namespace.js';\n\nexport const TransitionSelector = {\n NONE: ns.selector('transition-none')\n};\n","import { TransitionSelector } from './transition-selector';\n\nconst selector = {};\n\nselector.TransitionSelector = TransitionSelector;\n\nexport default selector;\n","/**\n * Copy properties from multiple sources including accessors.\n * source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs\n *\n * @param {object} [target] - Target object to copy into\n * @param {...objects} [sources] - Multiple objects\n * @return {object} A new object\n *\n * @example\n *\n * const obj1 = {\n * key: 'value'\n * };\n * const obj2 = {\n * get function01 () {\n * return a-value;\n * }\n * set function01 () {\n * return a-value;\n * }\n * };\n * completeAssign(obj1, obj2)\n */\nconst completeAssign = (target, ...sources) => {\n sources.forEach(source => {\n const descriptors = Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {});\n\n Object.getOwnPropertySymbols(source).forEach(sym => {\n const descriptor = Object.getOwnPropertyDescriptor(source, sym);\n if (descriptor.enumerable) {\n descriptors[sym] = descriptor;\n }\n });\n Object.defineProperties(target, descriptors);\n });\n return target;\n};\n\nexport { completeAssign };\n","import { completeAssign } from './complete-assign';\n\nconst property = {};\n\nproperty.completeAssign = completeAssign;\n\nexport default property;\n","import state from './state.js';\nimport engine from './engine.js';\nimport options from './options/options.js';\nimport dom from './utilities/dom/index';\nimport ns from './utilities/namespace.js';\nimport support from './utilities/support/index';\nimport motion from './utilities/motion/index';\nimport property from './utilities/property/index';\n\nconst internals = {};\nconst legacy = {};\n\nObject.defineProperty(legacy, 'isLegacy', {\n get: () => state.isLegacy\n});\n\nlegacy.setLegacy = () => {\n state.isLegacy = true;\n};\n\ninternals.legacy = legacy;\ninternals.dom = dom;\ninternals.support = support;\ninternals.motion = motion;\ninternals.property = property;\ninternals.ns = ns;\ninternals.register = engine.register;\n\nObject.defineProperty(internals, 'preventManipulation', {\n get: () => options.preventManipulation\n});\n\nexport default internals;\n","import state from './state.js';\nimport options, { Modes } from './options/options.js';\nimport config from '../../config.js';\nimport engine from './engine.js';\nimport inspector from './inspect/inspector.js';\nimport internals from './internals.js';\n\ninspector.info(`version ${config.version}`);\n\nconst api = (node) => {\n const stage = state.getModule('stage');\n return stage.getProxy(node);\n};\n\napi.Modes = Modes;\n\nObject.defineProperty(api, 'mode', {\n set: (value) => { options.mode = value; },\n get: () => options.mode\n});\n\napi.internals = internals;\n\napi.start = engine.start;\napi.stop = engine.stop;\n\napi.inspector = inspector;\n\noptions.configure(window[config.namespace], api.start);\n\nwindow[config.namespace] = api;\nexport default api;\n","class Emitter {\n constructor () {\n this.emissions = {};\n }\n\n add (type, closure) {\n if (typeof closure !== 'function') throw new Error('closure must be a function');\n if (!this.emissions[type]) this.emissions[type] = [];\n this.emissions[type].push(closure);\n }\n\n remove (type, closure) {\n if (!this.emissions[type]) return;\n if (!closure) delete this.emissions[type];\n else {\n const index = this.emissions[type].indexOf(closure);\n if (index > -1) this.emissions[type].splice(index);\n }\n }\n\n emit (type, data) {\n if (!this.emissions[type]) return [];\n const response = [];\n for (const closure of this.emissions[type]) if (closure) response.push(closure(data));\n return response;\n }\n\n dispose () {\n this.emissions = null;\n }\n}\n\nexport { Emitter };\n","class Breakpoint {\n constructor (id, minWidth) {\n this.id = id;\n this.minWidth = minWidth;\n }\n\n test () {\n return window.matchMedia(`(min-width: ${this.minWidth}em)`).matches;\n }\n}\n\nexport const Breakpoints = {\n XS: new Breakpoint('xs', 0),\n SM: new Breakpoint('sm', 36),\n MD: new Breakpoint('md', 48),\n LG: new Breakpoint('lg', 62),\n XL: new Breakpoint('xl', 78)\n};\n","import { Emitter } from '../../utilities/emitter.js';\nimport state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\nimport { Breakpoints } from './breakpoints.js';\nimport { addClass, removeClass, hasClass } from '../../utilities/dom/classes.js';\nimport { queryParentSelector, querySelectorAllArray } from '../../utilities/dom/query-selector.js';\n\nclass Instance {\n constructor (jsAttribute = true) {\n this.jsAttribute = jsAttribute;\n this._isRendering = false;\n this._isResizing = false;\n this._isScrollLocked = false;\n this._isLoading = false;\n this._isSwappingFont = false;\n this._listeners = {};\n this._keyListenerTypes = [];\n this._keys = [];\n this.handlingKey = this.handleKey.bind(this);\n this._emitter = new Emitter();\n this._ascent = new Emitter();\n this._descent = new Emitter();\n this._registrations = [];\n this._nexts = [];\n }\n\n static get instanceClassName () {\n return 'Instance';\n }\n\n _config (element, registration) {\n this.element = element;\n this.registration = registration;\n this.node = element.node;\n this.id = element.node.id;\n if (this.jsAttribute) this.setAttribute(registration.attribute, true);\n this.init();\n }\n\n init () {}\n\n get proxy () {\n const scope = this;\n return {\n render: () => scope.render(),\n resize: () => scope.resize()\n };\n }\n\n register (selector, InstanceClass) {\n const registration = state.getModule('register').register(selector, InstanceClass, this);\n this._registrations.push(registration);\n }\n\n getRegisteredInstances (instanceClassName) {\n for (const registration of this._registrations) if (registration.hasInstanceClassName(instanceClassName)) return registration.instances.collection;\n return [];\n }\n\n dispatch (type, detail, bubbles, cancelable) {\n const event = new CustomEvent(type, { detail: detail, bubble: bubbles === true, cancelable: cancelable === true });\n this.node.dispatchEvent(event);\n }\n\n listen (type, closure, options) {\n if (!this._listeners[type]) this._listeners[type] = [];\n if (this._listeners[type].indexOf(closure) > -1) return;\n this._listeners[type].push(closure);\n this.node.addEventListener(type, closure, options);\n }\n\n unlisten (type, closure) {\n if (!type) {\n for (const type in this._listeners) this.unlisten(type);\n } else if (!closure) {\n if (!this._listeners[type]) return;\n for (const closure of this._listeners[type]) this.node.removeEventListener(type, closure);\n this._listeners[type].length = 0;\n } else {\n if (!this._listeners[type]) return;\n const index = this._listeners[type].indexOf(closure);\n if (index > -1) this._listeners[type].splice(index, 1);\n this.node.removeEventListener(type, closure);\n }\n }\n\n listenKey (code, closure, preventDefault = false, stopPropagation = false, type = 'down') {\n if (this._keyListenerTypes.indexOf(type) === -1) {\n this.listen(`key${type}`, this.handlingKey);\n this._keyListenerTypes.push(type);\n }\n\n this._keys.push(new KeyAction(type, code, closure, preventDefault, stopPropagation));\n }\n\n unlistenKey (code, closure) {\n this._keys = this._keys.filter((key) => key.code !== code || key.closure !== closure);\n\n this._keyListenerTypes.forEach(type => {\n if (!this._keys.some(key => key.type === type)) this.unlisten(`key${type}`, this.handlingKey);\n });\n }\n\n handleKey (e) {\n for (const key of this._keys) key.handle(e);\n }\n\n get isRendering () { return this._isRendering; }\n\n set isRendering (value) {\n if (this._isRendering === value) return;\n if (value) state.add('render', this);\n else state.remove('render', this);\n this._isRendering = value;\n }\n\n render () {}\n\n request (closure) {\n this._nexts.push(closure);\n state.getModule('render').request(this);\n }\n\n next () {\n const nexts = this._nexts.slice();\n this._nexts.length = 0;\n for (const closure of nexts) if (closure) closure();\n }\n\n get isResizing () { return this._isResizing; }\n\n set isResizing (value) {\n if (this._isResizing === value) return;\n if (value) {\n state.add('resize', this);\n this.resize();\n } else state.remove('resize', this);\n this._isResizing = value;\n }\n\n resize () {}\n\n isBreakpoint (breakpoint) {\n switch (true) {\n case typeof breakpoint === 'string':\n return Breakpoints[breakpoint.toUpperCase()].test();\n\n default:\n return breakpoint.test();\n }\n }\n\n get isScrollLocked () {\n return this._isScrollLocked;\n }\n\n set isScrollLocked (value) {\n if (this._isScrollLocked === value) return;\n if (value) state.add('lock', this);\n else state.remove('lock', this);\n this._isScrollLocked = value;\n }\n\n get isLoading () {\n return this._isLoading;\n }\n\n set isLoading (value) {\n if (this._isLoading === value) return;\n if (value) state.add('load', this);\n else state.remove('load', this);\n this._isLoading = value;\n }\n\n load () {}\n\n get isSwappingFont () {\n return this._isSwappingFont;\n }\n\n set isSwappingFont (value) {\n if (this._isSwappingFont === value) return;\n if (value) state.add('font-swap', this);\n else state.remove('font-swap', this);\n this._isSwappingFont = value;\n }\n\n swapFont () {}\n\n get isMouseMoving () { return this._isMouseMoving; }\n\n set isMouseMoving (value) {\n if (this._isMouseMoving === value) return;\n if (value) {\n state.add('mouse-move', this);\n } else {\n state.remove('mouse-move', this);\n }\n this._isMouseMoving = value;\n }\n\n mouseMove (point) {}\n\n examine (attributeNames) {\n if (!this.node.matches(this.registration.selector)) {\n this._dispose();\n return;\n }\n\n this.mutate(attributeNames);\n }\n\n mutate (attributeNames) {}\n\n _dispose () {\n inspector.debug(`dispose instance of ${this.registration.instanceClassName} on element [${this.element.id}]`);\n this.removeAttribute(this.registration.attribute);\n this.unlisten();\n this._keys = null;\n this.isRendering = false;\n this.isResizing = false;\n this._nexts = null;\n state.getModule('render').nexts.remove(this);\n this.isScrollLocked = false;\n this.isLoading = false;\n this.isSwappingFont = false;\n this._emitter.dispose();\n this._emitter = null;\n this._ascent.dispose();\n this._ascent = null;\n this._descent.dispose();\n this._descent = null;\n this.element.remove(this);\n for (const registration of this._registrations) state.remove('register', registration);\n this._registrations = null;\n this.registration.remove(this);\n this.dispose();\n }\n\n dispose () {}\n\n emit (type, data) {\n return this.element.emit(type, data);\n }\n\n addEmission (type, closure) {\n this._emitter.add(type, closure);\n }\n\n removeEmission (type, closure) {\n this._emitter.remove(type, closure);\n }\n\n ascend (type, data) {\n return this.element.ascend(type, data);\n }\n\n addAscent (type, closure) {\n this._ascent.add(type, closure);\n }\n\n removeAscent (type, closure) {\n this._ascent.remove(type, closure);\n }\n\n descend (type, data) {\n return this.element.descend(type, data);\n }\n\n addDescent (type, closure) {\n this._descent.add(type, closure);\n }\n\n removeDescent (type, closure) {\n this._descent.remove(type, closure);\n }\n\n get style () {\n return this.node.style;\n }\n\n addClass (className) {\n addClass(this.node, className);\n }\n\n removeClass (className) {\n removeClass(this.node, className);\n }\n\n hasClass (className) {\n return hasClass(this.node, className);\n }\n\n setAttribute (attributeName, value) {\n this.node.setAttribute(attributeName, value);\n }\n\n getAttribute (attributeName) {\n return this.node.getAttribute(attributeName);\n }\n\n hasAttribute (attributeName) {\n return this.node.hasAttribute(attributeName);\n }\n\n removeAttribute (attributeName) {\n this.node.removeAttribute(attributeName);\n }\n\n setProperty (propertyName, value) {\n this.node.style.setProperty(propertyName, value);\n }\n\n removeProperty (propertyName) {\n this.node.style.removeProperty(propertyName);\n }\n\n focus () {\n this.node.focus();\n }\n\n get hasFocus () {\n return this.node === document.activeElement;\n }\n\n matches (selectors) {\n return this.node.matches(selectors);\n }\n\n querySelector (selectors) {\n return this.node.querySelector(selectors);\n }\n\n querySelectorAll (selectors) {\n return querySelectorAllArray(this.node, selectors);\n }\n\n queryParentSelector (selectors) {\n return queryParentSelector(this.node, selectors);\n }\n\n getRect () {\n return this.node.getBoundingClientRect();\n }\n\n get isLegacy () {\n return state.isLegacy;\n }\n}\n\nclass KeyAction {\n constructor (type, code, closure, preventDefault, stopPropagation) {\n this.type = type;\n this.eventType = `key${type}`;\n this.code = code;\n this.closure = closure;\n this.preventDefault = preventDefault === true;\n this.stopPropagation = stopPropagation === true;\n }\n\n handle (e) {\n if (e.type !== this.eventType) return;\n if (e.keyCode === this.code) {\n this.closure(e);\n if (this.preventDefault) {\n e.preventDefault();\n }\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n }\n }\n}\n\nexport { Instance };\n","export const KeyCodes = {\n TAB: 9,\n ESCAPE: 27,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEvent = {\n DISCLOSE: ns.event('disclose'),\n CONCEAL: ns.event('conceal')\n};\n\nexport { DisclosureEvent };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEmission = {\n RESET: ns.emission('disclosure', 'reset'),\n ADDED: ns.emission('disclosure', 'added'),\n REMOVED: ns.emission('disclosure', 'removed'),\n GROUP: ns.emission('disclosure', 'group'),\n UNGROUP: ns.emission('disclosure', 'ungroup')\n};\n\nexport { DisclosureEmission };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEvent } from './disclosure-event.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass Disclosure extends Instance {\n constructor (type, selector, DisclosureButtonInstanceClass, disclosuresGroupInstanceClassName) {\n super();\n this.type = type;\n this._selector = selector;\n this.DisclosureButtonInstanceClass = DisclosureButtonInstanceClass;\n this.disclosuresGroupInstanceClassName = disclosuresGroupInstanceClassName;\n this.modifier = this._selector + '--' + this.type.id;\n this.pristine = true;\n }\n\n static get instanceClassName () {\n return 'Disclosure';\n }\n\n init () {\n this.addDescent(DisclosureEmission.RESET, this.reset.bind(this));\n this.addDescent(DisclosureEmission.GROUP, this.update.bind(this));\n this.addDescent(DisclosureEmission.UNGROUP, this.update.bind(this));\n this.register(`[aria-controls=\"${this.id}\"]`, this.DisclosureButtonInstanceClass);\n this.ascend(DisclosureEmission.ADDED);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n disclose: scope.disclose.bind(scope),\n focus: scope.focus.bind(scope)\n });\n\n if (this.type.canConceal) proxy.conceal = scope.conceal.bind(scope);\n\n const proxyAccessors = {\n get buttons () {\n return scope.buttons.map((button) => button.proxy);\n },\n get group () {\n const group = scope.group;\n return group ? group.proxy : null;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n\n get buttons () {\n return this.getRegisteredInstances(this.DisclosureButtonInstanceClass.instanceClassName);\n }\n\n update () {\n this.getGroup();\n }\n\n getGroup () {\n if (!this.disclosuresGroupInstanceClassName) {\n this._group = null;\n return;\n }\n\n const group = this.element.getAscendantInstance(this.disclosuresGroupInstanceClassName, this.constructor.instanceClassName);\n if (!group || !group.validate(this)) {\n this._group = null;\n return;\n }\n\n this._group = group;\n }\n\n get group () {\n return this._group;\n }\n\n disclose (withhold) {\n if (this.disclosed) return false;\n this.pristine = false;\n this.disclosed = true;\n if (!withhold && this.group) this.group.current = this;\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return false;\n if (!this.type.canConceal && this.group && this.group.current === this) return false;\n this.pristine = false;\n this.disclosed = false;\n if (!withhold && this.group && this.group.current === this) this.group.current = null;\n if (!preventFocus) this.focus();\n this.descend(DisclosureEmission.RESET);\n return true;\n }\n\n get disclosed () {\n return this._disclosed;\n }\n\n set disclosed (value) {\n if (this._disclosed === value) return;\n this.dispatch(value ? DisclosureEvent.DISCLOSE : DisclosureEvent.CONCEAL, this.type);\n this._disclosed = value;\n if (value) this.addClass(this.modifier);\n else this.removeClass(this.modifier);\n for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n }\n\n reset () {}\n\n toggle (isPrimary) {\n if (!this.type.canConceal) this.disclose();\n else {\n switch (true) {\n case !isPrimary:\n case this.disclosed:\n this.conceal();\n break;\n\n default:\n this.disclose();\n }\n }\n }\n\n get buttonHasFocus () {\n if (this.buttons.some((button) => { return button.hasFocus; })) return true;\n return false;\n }\n\n get hasFocus () {\n if (super.hasFocus) return true;\n if (this.buttonHasFocus) return true;\n return this.querySelectorAll(':focus').length > 0;\n }\n\n focus () {\n for (let i = 0; i < this.buttons.length; i++) {\n const button = this.buttons[i];\n if (button.isPrimary) {\n button.focus();\n return;\n }\n }\n }\n\n dispose () {\n this._group = null;\n super.dispose();\n this.ascend(DisclosureEmission.REMOVED);\n }\n}\n\nexport { Disclosure };\n","import { Instance } from '../api/modules/register/instance';\nimport ns from '../api/utilities/namespace.js';\n\nclass DisclosureButton extends Instance {\n constructor (type) {\n super();\n this.type = type;\n this.attributeName = type.ariaState ? 'aria-' + type.id : ns.attr(type.id);\n }\n\n static get instanceClassName () {\n return 'DisclosureButton';\n }\n\n init () {\n this.controlsId = this.getAttribute('aria-controls');\n this.isPrimary = this.hasAttribute(this.attributeName);\n if (this.isPrimary && this.disclosed && this.registration.creator.pristine) this.registration.creator.disclose();\n this.listen('click', this.click.bind(this));\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope)\n });\n }\n\n click (e) {\n if (this.registration.creator) this.registration.creator.toggle(this.isPrimary);\n }\n\n mutate (attributeNames) {\n if (this.isPrimary && attributeNames.indexOf(this.attributeName) > -1 && this.registration.creator) {\n if (this.disclosed) this.registration.creator.disclose();\n else if (this.type.canConceal) this.registration.creator.conceal();\n }\n }\n\n apply (value) {\n if (!this.isPrimary) return;\n this.setAttribute(this.attributeName, value);\n }\n\n get disclosed () {\n return this.getAttribute(this.attributeName) === 'true';\n }\n}\n\nexport { DisclosureButton };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass DisclosuresGroup extends Instance {\n constructor (disclosureInstanceClassName, jsAttribute) {\n super(jsAttribute);\n this.disclosureInstanceClassName = disclosureInstanceClassName;\n this._index = -1;\n }\n\n static get instanceClassName () {\n return 'DisclosuresGroup';\n }\n\n init () {\n this.addAscent(DisclosureEmission.ADDED, this.update.bind(this));\n this.addAscent(DisclosureEmission.REMOVED, this.update.bind(this));\n this.descend(DisclosureEmission.GROUP);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n\n const proxyAccessors = {\n set index (value) {\n scope.index = value;\n },\n get index () {\n return scope.index;\n },\n get length () {\n return scope.length;\n },\n get current () {\n const current = scope.current;\n return current ? current.proxy : null;\n },\n get members () {\n return scope.members.map((member) => member.proxy);\n },\n get hasFocus () {\n return scope.hasFocus;\n }\n };\n\n return completeAssign(super.proxy, proxyAccessors);\n }\n\n validate (member) {\n return true;\n }\n\n getMembers () {\n const members = this.element.getDescendantInstances(this.disclosureInstanceClassName, this.constructor.instanceClassName, true);\n this._members = members.filter(this.validate.bind(this));\n }\n\n update () {\n this.getMembers();\n this.getIndex();\n }\n\n get members () {\n return this._members;\n }\n\n get length () {\n return this.members ? this.members.length : 0;\n }\n\n getIndex () {\n this._index = -1;\n for (let i = 0; i < this.length; i++) {\n if (this.index > -1) this.members[i].conceal(true, true);\n else if (this.members[i].disclosed) {\n this.index = i;\n }\n }\n }\n\n get index () {\n return this._index;\n }\n\n set index (value) {\n if (value < -1 || value >= this.length || value === this._index) return;\n this._index = value;\n for (let i = 0; i < this.length; i++) {\n const member = this.members[i];\n if (value === i) {\n member.disclose(true);\n } else {\n member.conceal(true, true);\n }\n }\n this.apply();\n }\n\n get current () {\n return this._index === -1 ? null : this.members[this._index];\n }\n\n set current (member) {\n this.index = this.members.indexOf(member);\n }\n\n get hasFocus () {\n const current = this.current;\n if (current) return current.hasFocus;\n return false;\n }\n\n apply () {}\n\n dispose () {\n super.dispose();\n this.descend(DisclosureEmission.UNGROUP);\n this._members = null;\n }\n}\n\nexport { DisclosuresGroup };\n","export const DisclosureType = {\n EXPAND: {\n id: 'expanded',\n ariaState: true,\n ariaControls: true,\n canConceal: true\n },\n SELECT: {\n id: 'selected',\n ariaState: true,\n ariaControls: true,\n canConceal: false\n },\n OPENED: {\n id: 'opened',\n ariaState: false,\n ariaControls: true,\n canConceal: true\n }\n};\n","import { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { DisclosureButton } from '../disclosure/disclosure-button.js';\n\nclass CollapseButton extends DisclosureButton {\n constructor () {\n super(DisclosureType.EXPAND);\n }\n\n static get instanceClassName () {\n return 'CollapseButton';\n }\n}\n\nexport { CollapseButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const CollapseSelector = {\n COLLAPSE: ns.selector('collapse')\n};\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { CollapseSelector } from './collapse-selector.js';\nimport { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { CollapseButton } from './collapse-button.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 Collapse extends Disclosure {\n constructor () {\n super(DisclosureType.EXPAND, CollapseSelector.COLLAPSE, CollapseButton, 'CollapsesGroup');\n }\n\n static get instanceClassName () {\n return 'Collapse';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n }\n\n transitionend (e) {\n if (!this.disclosed) {\n if (this.isLegacy) this.style.maxHeight = '';\n else this.style.removeProperty('--collapse-max-height');\n }\n }\n\n unbound () {\n if (this.isLegacy) this.style.maxHeight = 'none';\n else this.style.setProperty('--collapse-max-height', 'none');\n }\n\n disclose (withhold) {\n if (this.disclosed) return;\n this.unbound();\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.disclose(withhold);\n });\n });\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return;\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.conceal(withhold, preventFocus);\n });\n });\n }\n\n adjust () {\n this.setProperty('--collapser', 'none');\n const height = this.node.offsetHeight;\n this.setProperty('--collapse', -height + 'px');\n this.setProperty('--collapser', '');\n }\n\n reset () {\n if (!this.pristine) this.disclosed = false;\n }\n}\n\nexport { Collapse };\n","import { DisclosuresGroup } from '../disclosure/disclosures-group.js';\n\nclass CollapsesGroup extends DisclosuresGroup {\n constructor () {\n super('Collapse');\n }\n\n static get instanceClassName () {\n return 'CollapsesGroup';\n }\n}\n\nexport { CollapsesGroup };\n","import ns from '../api/utilities/namespace.js';\n\nexport const EquisizedEmission = {\n CHANGE: ns('equisized', 'change')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass Equisized extends Instance {\n static get instanceClassName () {\n return 'Equisized';\n }\n\n init () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n\n measure () {\n if (this.isLegacy) this.style.width = 'auto';\n return this.getRect().width;\n }\n\n adjust (width) {\n if (this.isLegacy) this.style.width = `${width}px`;\n }\n\n dispose () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n}\n\nexport { Equisized };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass EquisizedsGroup extends Instance {\n static get instanceClassName () {\n return 'EquisizedsGroup';\n }\n\n init () {\n this.isResizing = true;\n this.isLoading = true;\n this.addAscent(EquisizedEmission.CHANGE, this.resize.bind(this));\n }\n\n load () {\n this.resize();\n }\n\n resize () {\n const equisizeds = this.element.getDescendantInstances('Equisized');\n if (!this.isLegacy) this.style.setProperty('--equisized-width', 'auto');\n\n const width = Math.max(...equisizeds.map(equisized => equisized.measure()));\n if (this.isLegacy) equisizeds.forEach(equisized => equisized.adjust(width));\n else this.style.setProperty('--equisized-width', `${width}px`);\n }\n}\n\nexport { EquisizedsGroup };\n","import ns from '../../api/utilities/namespace.js';\n\nconst ToggleEvent = {\n TOGGLE: ns.event('toggle')\n};\n\nexport { ToggleEvent };\n","import { Instance } from '../../api/modules/register/instance.js';\nimport { completeAssign } from '../../api/utilities/property/complete-assign.js';\nimport { ToggleEvent } from './toggle-event.js';\n\nclass Toggle extends Instance {\n static get instanceClassName () {\n return 'Toggle';\n }\n\n init () {\n this.pressed = this.pressed === 'true';\n this.listen('click', this.toggle.bind(this));\n }\n\n toggle () {\n this.pressed = this.pressed !== 'true';\n }\n\n get pressed () {\n return this.getAttribute('aria-pressed');\n }\n\n set pressed (value) {\n this.setAttribute('aria-pressed', value ? 'true' : 'false');\n this.dispatch(ToggleEvent.TOGGLE, value);\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n toggle: scope.toggle.bind(scope)\n });\n\n const proxyAccessors = {\n get pressed () {\n return scope.pressed;\n },\n set pressed (value) {\n scope.pressed = value;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n}\n\nexport { Toggle };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { setAttributes } from '../api/utilities/attribute';\n\nclass InjectSvg extends Instance {\n static get instanceClassName () {\n return 'InjectSvg';\n }\n\n init () {\n if (this.node) {\n this.img = this.node.querySelector('img');\n }\n\n if (!this.isLegacy) {\n this.replace();\n }\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n replace: scope.replace.bind(scope),\n restore: scope.restore.bind(scope)\n });\n }\n\n fetch () {\n if (this.img) {\n this.imgID = this.img.getAttribute('id');\n this.imgClass = this.img.getAttribute('class');\n this.imgURL = this.img.getAttribute('src');\n\n fetch(this.imgURL)\n .then(data => data.text())\n .then(response => {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(response, 'text/html');\n this.svg = xmlDoc.querySelector('svg');\n\n if (this.svg) {\n this.replace();\n }\n });\n }\n }\n\n replace () {\n if (!this.svg) {\n this.fetch();\n return;\n }\n\n if (this.imgID && typeof this.imgID !== 'undefined') {\n this.svg.setAttribute('id', this.imgID);\n }\n\n if (this.imgClass && typeof this.imgClass !== 'undefined') {\n this.svg.setAttribute('class', this.imgClass);\n }\n\n if (this.svg.hasAttribute('xmlns:a')) {\n this.svg.removeAttribute('xmlns:a');\n }\n\n this.node.setAttribute('data-fr-inject-svg', true);\n const svgAttributes = {\n 'aria-hidden': true,\n focusable: false\n };\n setAttributes(this.svg, svgAttributes);\n this.node.replaceChild(this.svg, this.img);\n }\n\n restore () {\n if (this.img && this.svg) {\n this.node.setAttribute('data-fr-inject-svg', false);\n this.node.replaceChild(this.img, this.svg);\n }\n }\n}\n\nexport { InjectSvg };\n","const setAttributes = (el, attrs) => {\n Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\n\nexport { setAttributes };\n","import ns from '../api/utilities/namespace.js';\n\nexport const InjectSvgSelector = {\n INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\n","import api from './script/api/api';\n\nimport { Instance } from './script/api/modules/register/instance.js';\nimport { KeyCodes } from './script/api/modules/register/key-codes.js';\nimport { Breakpoints } from './script/api/modules/register/breakpoints';\nimport { Disclosure } from './script/disclosure/disclosure.js';\nimport { DisclosureButton } from './script/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './script/disclosure/disclosures-group.js';\nimport { DisclosureType } from './script/disclosure/disclosure-type.js';\nimport { DisclosureEvent } from './script/disclosure/disclosure-event.js';\nimport { DisclosureEmission } from './script/disclosure/disclosure-emission.js';\nimport { CollapseButton } from './script/collapse/collapse-button.js';\nimport { Collapse } from './script/collapse/collapse.js';\nimport { CollapsesGroup } from './script/collapse/collapses-group.js';\nimport { CollapseSelector } from './script/collapse/collapse-selector.js';\nimport { Equisized } from './script/equisized/equisized.js';\nimport { EquisizedsGroup } from './script/equisized/equisizeds-group.js';\nimport { EquisizedEmission } from './script/equisized/equisized-emission.js';\nimport { Toggle } from './script/action/toggle/toggle';\nimport { RootSelector } from './script/api/modules/stage/root.js';\nimport { InjectSvg } from './script/inject/inject-svg';\nimport { InjectSvgSelector } from './script/inject/inject-svg-selector';\n\napi.core = {\n Instance: Instance,\n Breakpoints: Breakpoints,\n KeyCodes: KeyCodes,\n Disclosure: Disclosure,\n DisclosureButton: DisclosureButton,\n DisclosuresGroup: DisclosuresGroup,\n DisclosureType: DisclosureType,\n DisclosureEvent: DisclosureEvent,\n DisclosureEmission: DisclosureEmission,\n Collapse: Collapse,\n CollapseButton: CollapseButton,\n CollapsesGroup: CollapsesGroup,\n CollapseSelector: CollapseSelector,\n RootSelector: RootSelector,\n Equisized: Equisized,\n EquisizedEmission: EquisizedEmission,\n Toggle: Toggle,\n EquisizedsGroup: EquisizedsGroup,\n InjectSvg: InjectSvg,\n InjectSvgSelector: InjectSvgSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.core.CollapseSelector.COLLAPSE, api.core.Collapse);\napi.internals.register(api.core.InjectSvgSelector.INJECT_SVG, api.core.InjectSvg);\n\nexport default api;\n","import api from './index.js';\n\n/* legacy code here */\napi.internals.legacy.setLegacy();\n\nexport default api;\n"],"names":["State","this","modules","create","ModuleClass","const","module","type","getModule","add","item","remove","isActive","_isActive","value","values","Object","keys","map","e","activate","deactivate","isLegacy","_isLegacy","state","config","LogLevel","level","light","dark","logger","console","warn","error","log","message","Message","print","setColor","color","apply","getMessage","window","matchMedia","matches","domain","inputs","styles","objects","push","join","LEVELS","trace","debug","info","Inspector","id","msgs","bind","tree","stage","_branch","root","element","space","let","branch","indent","i","children","child","inspector","startAtDomContentLoaded","callback","document","readyState","requestAnimationFrame","addEventListener","Modes","AUTO","MANUAL","RUNTIME","LOADED","VUE","ANGULAR","REACT","Options","_mode","isStarted","starting","start","preventManipulation","configure","settings","startCallback","verbose","mode","options","Collection","_collection","forEach","length","collectable","indexOf","onAdd","onPopulate","index","splice","onRemove","onEmpty","execute","args","clear","clone","slice","collection","Module","super","ns","name","selector","notation","undefined","attr","result","event","emission","querySelectorAllArray","selectors","Array","prototype","call","querySelectorAll","queryParentSelector","parent","parentElement","documentElement","Registration","InstanceClass","creator","instances","isIntroduced","_instanceClassName","instanceClassName","_instanceClassNames","getInstanceClassNames","_property","substring","toLowerCase","dashed","replace","_attribute","getPrototypeOf","hasInstanceClassName","introduce","parse","node","nonRecursive","nodes","querySelector","instance","dispose","_dispose","instanceClassNames","property","attribute","Register","register","registration","count","Element","attributeNames","_children","_parent","_projects","proxy","scope","_proxy","html","end","outerHTML","project","populate","projects","hasInstance","_config","ascendants","descendants","addChild","isNaN","removeChild","emit","data","response","_emit","_emitter","ascend","_ascend","_ascent","descend","_descend","_descent","getInstance","getDescendantInstances","stopAtInstanceClassName","stopAtFirstInstance","getAscendantInstance","prepare","attributeName","examine","Root","setAttribute","Stage","observer","MutationObserver","mutate","modifications","willModify","modifying","modify","hasElement","getElement","getProxy","put","position","compareDocumentPosition","Node","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_PRECEDING","observe","childList","subtree","attributes","disconnect","mutations","examinations","mutation","removedNodes","addedNodes","target","descendant","targets","contains","disposables","disposable","creations","n","Renderer","rendering","render","nexts","request","next","Resizer","requireResize","resizing","resize","requesting","fonts","ready","then","ScrollLocker","_isLocked","_scrollY","lock","unlock","prototypeAccessors","isLocked","scrollY","body","style","top","setProperty","removeAttribute","removeProperty","scroll","Load","loading","load","FONT_FAMILIES","FontSwap","swapping","swap","families","filter","family","check","swapFont","MouseMove","requireMove","_isMoving","moving","move","listen","unlisten","removeEventListener","point","x","clientX","y","clientY","mouseMove","Engine","registerModule","stop","engine","sanitize","className","charAt","substr","getClassNames","split","modifyClass","classNames","addClass","removeClass","hasClass","dom","support","localStorage","TransitionSelector","NONE","completeAssign","sources","source","descriptors","reduce","key","getOwnPropertyDescriptor","getOwnPropertySymbols","sym","descriptor","enumerable","defineProperties","internals","legacy","defineProperty","get","setLegacy","motion","api","set","Emitter","emissions","closure","Error","Breakpoint","minWidth","test","Breakpoints","XS","SM","MD","LG","XL","Instance","jsAttribute","_isRendering","_isResizing","_isScrollLocked","_isLoading","_isSwappingFont","_listeners","_keyListenerTypes","_keys","handlingKey","handleKey","_registrations","_nexts","staticAccessors","init","getRegisteredInstances","dispatch","detail","bubbles","cancelable","CustomEvent","bubble","dispatchEvent","listenKey","code","preventDefault","stopPropagation","KeyAction","unlistenKey","some","handle","isRendering","isResizing","isBreakpoint","breakpoint","toUpperCase","isScrollLocked","isLoading","isSwappingFont","isMouseMoving","_isMouseMoving","addEmission","removeEmission","addAscent","removeAscent","addDescent","removeDescent","getAttribute","hasAttribute","propertyName","focus","hasFocus","activeElement","getRect","getBoundingClientRect","eventType","keyCode","DisclosureEvent","DISCLOSE","CONCEAL","DisclosureEmission","RESET","ADDED","REMOVED","GROUP","UNGROUP","Disclosure","DisclosureButtonInstanceClass","disclosuresGroupInstanceClassName","_selector","modifier","pristine","reset","update","assign","disclose","canConceal","conceal","buttons","button","group","getGroup","constructor","validate","_group","withhold","disclosed","current","preventFocus","_disclosed","toggle","isPrimary","buttonHasFocus","DisclosureButton","ariaState","controlsId","click","DisclosuresGroup","disclosureInstanceClassName","_index","proxyAccessors","members","member","getMembers","_members","getIndex","DisclosureType","EXPAND","ariaControls","SELECT","OPENED","CollapseButton","CollapseSelector","COLLAPSE","Collapse","transitionend","maxHeight","unbound","adjust","height","offsetHeight","CollapsesGroup","EquisizedEmission","CHANGE","Equisized","measure","width","EquisizedsGroup","equisizeds","Math","max","equisized","ToggleEvent","TOGGLE","Toggle","pressed","InjectSvg","img","restore","fetch","imgID","imgClass","imgURL","text","xmlDoc","DOMParser","parseFromString","svg","el","attrs","focusable","replaceChild","InjectSvgSelector","INJECT_SVG","core","KeyCodes","TAB","ESCAPE","END","HOME","LEFT","UP","RIGHT","DOWN","RootSelector","ROOT"],"mappings":"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"}
1
+ {"version":3,"file":"core.nomodule.min.js","sources":["../../src/core/script/api/state.js","../../.config/config.js","../../src/core/script/api/inspect/inspector.js","../../src/core/script/api/options/starters.js","../../src/core/script/api/options/options.js","../../src/core/script/api/utilities/collection.js","../../src/core/script/api/modules/module.js","../../src/core/script/api/utilities/namespace.js","../../src/core/script/api/utilities/dom/query-selector.js","../../src/core/script/api/modules/register/registration.js","../../src/core/script/api/modules/register/register.js","../../src/core/script/api/modules/stage/element.js","../../src/core/script/api/modules/stage/root.js","../../src/core/script/api/modules/stage/stage.js","../../src/core/script/api/modules/render/renderer.js","../../src/core/script/api/modules/resize/resizer.js","../../src/core/script/api/modules/scroll/scroll-locker.js","../../src/core/script/api/modules/load/load.js","../../src/core/script/api/modules/font-swap/font-swap.js","../../src/core/script/api/modules/mouse-move/mouse-move.js","../../src/core/script/api/engine.js","../../src/core/script/api/utilities/dom/classes.js","../../src/core/script/api/utilities/dom/index.js","../../src/core/script/api/utilities/support/browser-support.js","../../src/core/script/api/utilities/support/index.js","../../src/core/script/api/utilities/motion/transition-selector.js","../../src/core/script/api/utilities/motion/index.js","../../src/core/script/api/utilities/property/complete-assign.js","../../src/core/script/api/utilities/property/index.js","../../src/core/script/api/internals.js","../../src/core/script/api/api.js","../../src/core/script/api/utilities/emitter.js","../../src/core/script/api/modules/register/breakpoints.js","../../src/core/script/api/modules/register/instance.js","../../src/core/script/api/modules/register/key-codes.js","../../src/core/script/disclosure/disclosure-event.js","../../src/core/script/disclosure/disclosure-emission.js","../../src/core/script/disclosure/disclosure.js","../../src/core/script/disclosure/disclosure-button.js","../../src/core/script/disclosure/disclosures-group.js","../../src/core/script/disclosure/disclosure-type.js","../../src/core/script/collapse/collapse-button.js","../../src/core/script/collapse/collapse-selector.js","../../src/core/script/collapse/collapse.js","../../src/core/script/collapse/collapses-group.js","../../src/core/script/equisized/equisized-emission.js","../../src/core/script/equisized/equisized.js","../../src/core/script/equisized/equisizeds-group.js","../../src/core/script/action/toggle/toggle-event.js","../../src/core/script/action/toggle/toggle.js","../../src/core/script/inject/inject-svg.js","../../src/core/script/api/utilities/attribute.js","../../src/core/script/inject/inject-svg-selector.js","../../src/core/index.js","../../src/core/main.js","../../src/core/legacy.js"],"sourcesContent":["class State {\n constructor () {\n this.modules = {};\n }\n\n create (ModuleClass) {\n const module = new ModuleClass();\n this.modules[module.type] = module;\n }\n\n getModule (type) {\n return this.modules[type];\n }\n\n add (type, item) {\n this.modules[type].add(item);\n }\n\n remove (type, item) {\n this.modules[type].remove(item);\n }\n\n get isActive () {\n return this._isActive;\n }\n\n set isActive (value) {\n if (value === this._isActive) return;\n this._isActive = value;\n const values = Object.keys(this.modules).map((e) => {\n return this.modules[e];\n });\n if (value) {\n for (const module of values) {\n module.activate();\n }\n } else {\n for (const module of values) {\n module.deactivate();\n }\n }\n }\n\n get isLegacy () {\n return this._isLegacy;\n }\n\n set isLegacy (value) {\n if (value === this._isLegacy) return;\n this._isLegacy = value;\n }\n}\n\nconst state = new State();\n\nexport default state;\n","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 state from '../state.js';\nimport config from '../../../config.js';\n\nclass LogLevel {\n constructor (level, light, dark, logger) {\n this.level = level;\n this.light = light;\n this.dark = dark;\n\n switch (logger) {\n case 'warn':\n this.logger = console.warn;\n break;\n\n case 'error':\n this.logger = console.error;\n break;\n\n default:\n this.logger = console.log;\n }\n }\n\n log (...values) {\n const message = new Message(config.namespace);\n for (const value of values) message.add(value);\n this.print(message);\n }\n\n print (message) {\n message.setColor(this.color);\n this.logger.apply(console, message.getMessage());\n }\n\n get color () {\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? this.dark : this.light;\n }\n}\n\nclass Message {\n constructor (domain) {\n this.inputs = ['%c'];\n this.styles = ['font-family:Marianne', 'line-height: 1.5'];\n this.objects = [];\n\n if (domain) this.add(`${domain} :`);\n }\n\n add (value) {\n switch (typeof value) {\n case 'object':\n case 'function':\n this.inputs.push('%o ');\n this.objects.push(value);\n break;\n\n default:\n this.inputs.push(`${value} `);\n }\n }\n\n setColor (color) {\n this.styles.push(`color:${color}`);\n }\n\n getMessage () {\n return [this.inputs.join(''), this.styles.join(';'), ...this.objects];\n }\n}\n\nconst LEVELS = {\n trace: new LogLevel(0, '#616161', '#989898'),\n debug: new LogLevel(1, '#000091', '#8B8BFF'),\n info: new LogLevel(2, '#007c3b', '#00ed70'),\n warn: new LogLevel(3, '#ba4500', '#fa5c00', 'warn'),\n error: new LogLevel(4, '#D80600', '#FF4641', 'error')\n};\n\nclass Inspector {\n constructor () {\n this.level = 2;\n\n for (const id in LEVELS) {\n const level = LEVELS[id];\n this[id] = (...msgs) => {\n if (this.level <= level.level) level.log.apply(level, msgs);\n };\n this[id].print = level.print.bind(level);\n }\n }\n\n state () {\n const message = new Message();\n message.add(state);\n this.trace.print(message);\n }\n\n tree () {\n const stage = state.getModule('stage');\n if (!stage) return;\n const message = new Message();\n this._branch(stage.root, 0, message);\n this.trace.print(message);\n }\n\n _branch (element, space, message) {\n let branch = '';\n if (space > 0) {\n let indent = '';\n for (let i = 0; i < space; i++) indent += ' ';\n // branch += indent + '|\\n';\n branch += indent + '└─ ';\n }\n branch += `[${element.id}] ${element.html}`;\n message.add(branch);\n message.add({ '@': element });\n message.add('\\n');\n for (const child of element.children) branch += this._branch(child, space + 1, message);\n }\n}\n\nconst inspector = new Inspector();\n\nexport default inspector;\n","export const startAtDomContentLoaded = (callback) => {\n if (document.readyState !== 'loading') window.requestAnimationFrame(callback);\n else document.addEventListener('DOMContentLoaded', callback);\n};\n\nexport const startAuto = (callback) => {\n // detect\n startAtDomContentLoaded(callback);\n};\n","import inspector from '../inspect/inspector.js';\nimport { startAtDomContentLoaded, startAuto } from './starters.js';\n\nexport const Modes = {\n AUTO: 'auto',\n MANUAL: 'manual',\n RUNTIME: 'runtime',\n LOADED: 'loaded',\n VUE: 'vue',\n ANGULAR: 'angular',\n REACT: 'react'\n};\n\nclass Options {\n constructor () {\n this._mode = Modes.AUTO;\n this.isStarted = false;\n this.starting = this.start.bind(this);\n this.preventManipulation = false;\n }\n\n configure (settings = {}, start) {\n this.startCallback = start;\n if (settings.verbose === true) inspector.level = 0;\n this.mode = settings.mode || Modes.AUTO;\n }\n\n set mode (value) {\n switch (value) {\n case Modes.AUTO:\n this.preventManipulation = false;\n startAuto(this.starting);\n break;\n\n case Modes.LOADED:\n this.preventManipulation = false;\n startAtDomContentLoaded(this.starting);\n break;\n\n case Modes.RUNTIME:\n this.preventManipulation = false;\n this.start();\n break;\n\n case Modes.MANUAL:\n this.preventManipulation = false;\n break;\n\n case Modes.VUE:\n this.preventManipulation = true;\n break;\n\n case Modes.ANGULAR:\n this.preventManipulation = true;\n break;\n\n case Modes.REACT:\n this.preventManipulation = true;\n break;\n\n default:\n inspector.error('Illegal mode');\n return;\n }\n\n this._mode = value;\n inspector.info(`mode set to ${value}`);\n }\n\n get mode () {\n return this._mode;\n }\n\n start () {\n inspector.info('start');\n this.startCallback();\n }\n}\n\nconst options = new Options();\nexport default options;\n","class Collection {\n constructor () {\n this._collection = [];\n }\n\n forEach (callback) {\n this._collection.forEach(callback);\n }\n\n map (callback) {\n return this._collection.map(callback);\n }\n\n get length () {\n return this._collection.length;\n }\n\n add (collectable) {\n if (this._collection.indexOf(collectable) > -1) return false;\n this._collection.push(collectable);\n if (this.onAdd) this.onAdd();\n if (this.onPopulate && this._collection.length === 1) this.onPopulate();\n return true;\n }\n\n remove (collectable) {\n const index = this._collection.indexOf(collectable);\n if (index === -1) return false;\n this._collection.splice(index, 1);\n if (this.onRemove) this.onRemove();\n if (this.onEmpty && this._collection.length === 0) this.onEmpty();\n }\n\n execute (...args) {\n for (const collectable of this._collection) if (collectable) collectable.apply(null, args);\n }\n\n clear () {\n this._collection.length = 0;\n }\n\n clone () {\n const clone = new Collection();\n clone._collection = this._collection.slice();\n return clone;\n }\n\n get collection () {\n return this._collection;\n }\n}\n\nexport { Collection };\n","import { Collection } from '../utilities/collection.js';\n\nclass Module extends Collection {\n constructor (type) {\n super();\n this.type = type;\n this.isActive = false;\n }\n\n activate () {}\n deactivate () {}\n}\n\nexport { Module };\n","import config from '../../../config.js';\n\nconst ns = name => `${config.prefix}-${name}`;\n\nns.selector = (name, notation) => {\n if (notation === undefined) notation = '.';\n return `${notation}${ns(name)}`;\n};\n\nns.attr = (name) => `data-${ns(name)}`;\n\nns.attr.selector = (name, value) => {\n let result = ns.attr(name);\n if (value !== undefined) result += `=\"${value}\"`;\n return `[${result}]`;\n};\n\nns.event = (type) => `${config.namespace}.${type}`;\n\nns.emission = (domain, type) => `emission:${domain}.${type}`;\n\nexport default ns;\n","export const querySelectorAllArray = (element, selectors) => Array.prototype.slice.call(element.querySelectorAll(selectors));\n\nexport const queryParentSelector = (element, selectors) => {\n const parent = element.parentElement;\n if (parent.matches(selectors)) return parent;\n if (parent === document.documentElement) return null;\n return queryParentSelector(parent, selectors);\n};\n","import { Collection } from '../../utilities/collection.js';\nimport state from '../../state.js';\nimport ns from '../../utilities/namespace.js';\nimport { querySelectorAllArray } from '../../utilities/dom/query-selector';\n\nclass Registration {\n constructor (selector, InstanceClass, creator) {\n this.selector = selector;\n this.InstanceClass = InstanceClass;\n this.creator = creator;\n this.instances = new Collection();\n this.isIntroduced = false;\n this._instanceClassName = this.InstanceClass.instanceClassName;\n this._instanceClassNames = this.getInstanceClassNames(this.InstanceClass);\n this._property = this._instanceClassName.substring(0, 1).toLowerCase() + this._instanceClassName.substring(1);\n const dashed = this._instanceClassName\n .replace(/[^a-zA-Z0-9]+/g, '-')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([0-9])([^0-9])/g, '$1-$2')\n .replace(/([^0-9])([0-9])/g, '$1-$2')\n .toLowerCase();\n this._attribute = ns.attr(`js-${dashed}`);\n }\n\n getInstanceClassNames (InstanceClass) {\n const prototype = Object.getPrototypeOf(InstanceClass);\n if (!prototype || prototype.instanceClassName === 'Instance') return [InstanceClass.instanceClassName];\n return [...this.getInstanceClassNames(prototype), InstanceClass.instanceClassName];\n }\n\n hasInstanceClassName (instanceClassName) {\n return this._instanceClassNames.indexOf(instanceClassName) > -1;\n }\n\n introduce () {\n if (this.isIntroduced) return;\n this.isIntroduced = true;\n state.getModule('stage').parse(document.documentElement, this);\n }\n\n parse (node, nonRecursive) {\n const nodes = [];\n if (node.matches && node.matches(this.selector)) nodes.push(node);\n // eslint-disable-next-line no-useless-call\n if (!nonRecursive && node.querySelectorAll && node.querySelector(this.selector)) nodes.push.apply(nodes, querySelectorAllArray(node, this.selector));\n return nodes;\n }\n\n create (element) {\n if (!element.node.matches(this.selector)) return;\n const instance = new this.InstanceClass();\n this.instances.add(instance);\n return instance;\n }\n\n remove (instance) {\n this.instances.remove(instance);\n }\n\n dispose () {\n const instances = this.instances.collection;\n for (let i = instances.length - 1; i > -1; i--) instances[i]._dispose();\n this.creator = null;\n }\n\n get instanceClassName () {\n return this._instanceClassName;\n }\n\n get instanceClassNames () {\n return this._instanceClassNames;\n }\n\n get property () {\n return this._property;\n }\n\n get attribute () {\n return this._attribute;\n }\n}\n\nexport { Registration };\n","import { Module } from '../module.js';\nimport { Registration } from './registration.js';\nimport state from '../../state.js';\n\nclass Register extends Module {\n constructor () {\n super('register');\n }\n\n register (selector, InstanceClass, creator) {\n const registration = new Registration(selector, InstanceClass, creator);\n this.add(registration);\n if (state.isActive) registration.introduce();\n return registration;\n }\n\n activate () {\n for (const registration of this.collection) registration.introduce();\n }\n\n remove (registration) {\n registration.dispose();\n super.remove(registration);\n }\n}\n\nexport { Register };\n","import state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\n\nlet count = 0;\n\nclass Element {\n constructor (node, id) {\n if (!id) {\n count++;\n this.id = count;\n } else this.id = id;\n this.node = node;\n this.attributeNames = [];\n this.instances = [];\n this._children = [];\n this._parent = null;\n this._projects = [];\n }\n\n get proxy () {\n const scope = this;\n if (!this._proxy) {\n this._proxy = {\n id: this.id,\n get parent () {\n return scope.parent ? scope.parent.proxy : null;\n },\n get children () {\n return scope.children.map((child) => child.proxy);\n }\n };\n\n for (const instance of this.instances) this._proxy[instance.registration.property] = instance.proxy;\n }\n return this._proxy;\n }\n\n get html () {\n const end = this.node.outerHTML.indexOf('>');\n return this.node.outerHTML.substring(0, end + 1);\n }\n\n project (registration) {\n if (this._projects.indexOf(registration) === -1) this._projects.push(registration);\n }\n\n populate () {\n const projects = this._projects.slice();\n this._projects.length = 0;\n for (const registration of projects) this.create(registration);\n }\n\n create (registration) {\n if (this.hasInstance(registration.instanceClassName)) {\n // inspector.debug(`failed creation, instance of ${registration.instanceClassName} already exists on element [${this.id}]`);\n return;\n }\n inspector.debug(`create instance of ${registration.instanceClassName} on element [${this.id}]`);\n const instance = registration.create(this);\n this.instances.push(instance);\n instance._config(this, registration);\n if (this._proxy) this._proxy[registration.property] = instance.proxy;\n }\n\n remove (instance) {\n const index = this.instances.indexOf(instance);\n if (index > -1) this.instances.splice(index, 1);\n if (this._proxy) delete this._proxy[instance.registration.property];\n }\n\n get parent () {\n return this._parent;\n }\n\n get ascendants () {\n return [this.parent, ...this.parent.ascendants];\n }\n\n get children () {\n return this._children;\n }\n\n get descendants () {\n const descendants = [...this._children];\n this._children.forEach(child => descendants.push(...child.descendants));\n return descendants;\n }\n\n // TODO : emit ascendant et descendant de changement ?\n\n addChild (child, index) {\n if (this._children.indexOf(child) > -1) return null;\n child._parent = this;\n if (!isNaN(index) && index > -1 && index < this._children.length) this._children.splice(index, 0, child);\n else this._children.push(child);\n return child;\n }\n\n removeChild (child) {\n const index = this._children.indexOf(child);\n if (index === -1) return null;\n child._parent = null;\n this._children.splice(index, 1);\n }\n\n emit (type, data) {\n const elements = state.getModule('stage').collection;\n const response = [];\n for (const element of elements) response.push(...element._emit(type, data));\n return response;\n }\n\n _emit (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._emitter.emit(type, data));\n return response;\n }\n\n ascend (type, data) {\n if (this._parent) return this._parent._ascend(type, data);\n return [];\n }\n\n _ascend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._ascent.emit(type, data));\n if (this._parent) response.push(...this._parent._ascend(type, data));\n return response;\n }\n\n descend (type, data) {\n const response = [];\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n _descend (type, data) {\n const response = [];\n for (const instance of this.instances) response.push(...instance._descent.emit(type, data));\n for (const child of this._children) response.push(...child._descend(type, data));\n return response;\n }\n\n getInstance (instanceClassName) {\n for (const instance of this.instances) if (instance.registration.hasInstanceClassName(instanceClassName)) return instance;\n return null;\n }\n\n hasInstance (instanceClassName) {\n return this.getInstance(instanceClassName) !== null;\n }\n\n getDescendantInstances (instanceClassName, stopAtInstanceClassName, stopAtFirstInstance) {\n if (!instanceClassName) return [];\n const instances = [];\n for (const child of this._children) {\n const instance = child.getInstance(instanceClassName);\n if (instance) {\n instances.push(instance);\n if (stopAtFirstInstance) continue;\n }\n if ((!stopAtInstanceClassName || !child.hasInstance(stopAtInstanceClassName)) && child.children.length) instances.push.apply(instances, child.getDescendantInstances(instanceClassName, stopAtInstanceClassName, stopAtFirstInstance));\n }\n return instances;\n }\n\n getAscendantInstance (instanceClassName, stopAtInstanceClassName) {\n if (!instanceClassName || !this._parent) return null;\n const instance = this._parent.getInstance(instanceClassName);\n if (instance) return instance;\n if (stopAtInstanceClassName && this._parent.hasInstance(stopAtInstanceClassName)) return null;\n return this._parent.getAscendantInstance(instanceClassName, stopAtInstanceClassName);\n }\n\n dispose () {\n for (const instance of this.instances) instance._dispose();\n this.instances.length = 0;\n state.remove('stage', this);\n this.parent.removeChild(this);\n this._children.length = 0;\n inspector.debug(`remove element [${this.id}] ${this.html}`);\n }\n\n prepare (attributeName) {\n if (this.attributeNames.indexOf(attributeName) === -1) this.attributeNames.push(attributeName);\n }\n\n examine () {\n const attributeNames = this.attributeNames.slice();\n this.attributeNames.length = 0;\n for (let i = this.instances.length - 1; i > -1; i--) this.instances[i].examine(attributeNames);\n }\n}\n\nexport { Element };\n","import { Element } from './element.js';\nimport ns from '../../utilities/namespace.js';\n\nclass Root extends Element {\n constructor () {\n super(document.documentElement, 'root');\n this.node.setAttribute(ns.attr('js'), true);\n }\n}\n\nconst RootSelector = {\n ROOT: ':root'\n};\n\nexport { Root, RootSelector };\n","import state from '../../state.js';\nimport { Element } from './element.js';\nimport { Module } from '../module.js';\nimport { Root } from './root.js';\nimport inspector from '../../inspect/inspector.js';\n\nclass Stage extends Module {\n constructor () {\n super('stage');\n this.root = new Root();\n super.add(this.root);\n this.observer = new MutationObserver(this.mutate.bind(this));\n this.modifications = [];\n this.willModify = false;\n this.modifying = this.modify.bind(this);\n }\n\n hasElement (node) {\n for (const element of this.collection) if (element.node === node) return true;\n return false;\n }\n\n getElement (node) {\n for (const element of this.collection) if (element.node === node) return element;\n const element = new Element(node);\n this.add(element);\n inspector.debug(`add element [${element.id}] ${element.html}`);\n return element;\n }\n\n getProxy (node) {\n if (!this.hasElement(node)) return null;\n const element = this.getElement(node);\n return element.proxy;\n }\n\n add (element) {\n super.add(element);\n this.put(element, this.root);\n }\n\n put (element, branch) {\n let index = 0;\n for (let i = branch.children.length - 1; i > -1; i--) {\n const child = branch.children[i];\n const position = element.node.compareDocumentPosition(child.node);\n if (position & Node.DOCUMENT_POSITION_CONTAINS) {\n this.put(element, child);\n return;\n } else if (position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n branch.removeChild(child);\n element.addChild(child, 0);\n } else if (position & Node.DOCUMENT_POSITION_PRECEDING) {\n index = i + 1;\n break;\n }\n }\n\n branch.addChild(element, index);\n }\n\n activate () {\n this.observer.observe(document.documentElement, { childList: true, subtree: true, attributes: true });\n }\n\n deactivate () {\n this.observer.disconnect();\n }\n\n mutate (mutations) {\n const examinations = [];\n mutations.forEach((mutation) => {\n switch (mutation.type) {\n case 'childList':\n mutation.removedNodes.forEach((node) => this.dispose(node));\n mutation.addedNodes.forEach((node) => this.parse(node));\n break;\n\n case 'attributes':\n if (this.hasElement(mutation.target)) {\n const element = this.getElement(mutation.target);\n element.prepare(mutation.attributeName);\n if (examinations.indexOf(element) === -1) examinations.push(element);\n for (const descendant of element.descendants) if (examinations.indexOf(descendant) === -1) examinations.push(descendant);\n }\n if (this.modifications.indexOf(mutation.target) === -1) this.modifications.push(mutation.target);\n break;\n }\n });\n\n examinations.forEach(element => element.examine());\n if (this.modifications.length && !this.willModify) {\n this.willModify = true;\n window.requestAnimationFrame(this.modifying);\n }\n }\n\n modify () {\n this.willModify = false;\n const targets = this.modifications.slice();\n this.modifications.length = 0;\n for (const target of targets) if (document.documentElement.contains(target)) this.parse(target);\n }\n\n dispose (node) {\n const disposables = [];\n this.forEach((element) => {\n if (node.contains(element.node)) disposables.push(element);\n });\n\n for (const disposable of disposables) {\n disposable.dispose();\n this.remove(disposable);\n }\n }\n\n parse (node, registration, nonRecursive) {\n const registrations = registration ? [registration] : state.getModule('register').collection;\n const creations = [];\n\n for (const registration of registrations) {\n const nodes = registration.parse(node, nonRecursive);\n\n for (const n of nodes) {\n const element = this.getElement(n);\n element.project(registration);\n if (creations.indexOf(element) === -1) creations.push(element);\n }\n }\n\n for (const element of creations) element.populate();\n }\n}\n\nexport { Stage };\n","import state from '../../state.js';\nimport { Module } from '../module.js';\nimport { Collection } from '../../utilities/collection.js';\n\nclass Renderer extends Module {\n constructor () {\n super('render');\n this.rendering = this.render.bind(this);\n this.nexts = new Collection();\n }\n\n activate () {\n window.requestAnimationFrame(this.rendering);\n }\n\n request (instance) {\n this.nexts.add(instance);\n }\n\n render () {\n if (!state.isActive) return;\n window.requestAnimationFrame(this.rendering);\n this.forEach((instance) => instance.render());\n if (!this.nexts.length) return;\n const nexts = this.nexts.clone();\n this.nexts.clear();\n nexts.forEach((instance) => instance.next());\n }\n}\n\nexport { Renderer };\n","import { Module } from '../module.js';\n\nclass Resizer extends Module {\n constructor () {\n super('resize');\n this.requireResize = false;\n this.resizing = this.resize.bind(this);\n const requesting = this.request.bind(this);\n if (document.fonts) {\n document.fonts.ready.then(requesting);\n }\n window.addEventListener('resize', requesting);\n window.addEventListener('orientationchange', requesting);\n }\n\n activate () {\n this.request();\n }\n\n request () {\n if (this.requireResize) return;\n this.requireResize = true;\n window.requestAnimationFrame(this.resizing);\n }\n\n resize () {\n if (!this.requireResize) return;\n this.forEach((instance) => instance.resize());\n this.requireResize = false;\n }\n}\n\nexport { Resizer };\n","import ns from '../../utilities/namespace.js';\nimport { Module } from '../module.js';\n\nclass ScrollLocker extends Module {\n constructor () {\n super('lock');\n this._isLocked = false;\n this._scrollY = 0;\n this.onPopulate = this.lock.bind(this);\n this.onEmpty = this.unlock.bind(this);\n }\n\n get isLocked () {\n return this._isLocked;\n }\n\n lock () {\n if (!this._isLocked) {\n this._isLocked = true;\n this._scrollY = window.scrollY;\n if (this.isLegacy) document.body.style.top = this._scrollY * -1 + 'px';\n else document.body.style.setProperty('--scroll-top', this._scrollY * -1 + 'px');\n document.documentElement.setAttribute(ns.attr('scrolling'), 'false');\n }\n }\n\n unlock () {\n if (this._isLocked) {\n this._isLocked = false;\n document.documentElement.removeAttribute(ns.attr('scrolling'));\n if (this.isLegacy) document.body.style.top = '';\n else document.body.style.removeProperty('--scroll-top');\n window.scroll(0, this._scrollY);\n }\n }\n}\n\nexport { ScrollLocker };\n","import { Module } from '../module.js';\n\nclass Load extends Module {\n constructor () {\n super('load');\n this.loading = this.load.bind(this);\n }\n\n activate () {\n window.addEventListener('load', this.loading);\n }\n\n load () {\n this.forEach((instance) => instance.load());\n }\n}\n\nexport { Load };\n","import { Module } from '../module.js';\n\nconst FONT_FAMILIES = ['Marianne', 'Spectral'];\n\nclass FontSwap extends Module {\n constructor () {\n super('font-swap');\n this.swapping = this.swap.bind(this);\n }\n\n activate () {\n if (document.fonts) {\n document.fonts.addEventListener('loadingdone', this.swapping);\n }\n }\n\n swap () {\n const families = FONT_FAMILIES.filter(family => document.fonts.check(`16px ${family}`));\n\n this.forEach((instance) => instance.swapFont(families));\n }\n}\n\nexport { FontSwap };\n","import { Module } from '../module.js';\n\nclass MouseMove extends Module {\n constructor () {\n super('mouse-move');\n this.requireMove = false;\n this._isMoving = false;\n this.moving = this.move.bind(this);\n this.requesting = this.request.bind(this);\n this.onPopulate = this.listen.bind(this);\n this.onEmpty = this.unlisten.bind(this);\n }\n\n listen () {\n if (this._isMoving) return;\n this._isMoving = true;\n this.requireMove = false;\n document.documentElement.addEventListener('mousemove', this.requesting);\n }\n\n unlisten () {\n if (!this._isMoving) return;\n this._isMoving = false;\n this.requireMove = false;\n document.documentElement.removeEventListener('mousemove', this.requesting);\n }\n\n request (e) {\n if (!this._isMoving) return;\n this.point = { x: e.clientX, y: e.clientY };\n if (this.requireMove) return;\n this.requireMove = true;\n window.requestAnimationFrame(this.moving);\n }\n\n move () {\n if (!this.requireMove) return;\n this.forEach((instance) => instance.mouseMove(this.point));\n this.requireMove = false;\n }\n}\n\nexport { MouseMove };\n","import { Register } from './modules/register/register.js';\nimport { Stage } from './modules/stage/stage.js';\nimport { Renderer } from './modules/render/renderer.js';\nimport { Resizer } from './modules/resize/resizer.js';\nimport { ScrollLocker } from './modules/scroll/scroll-locker.js';\nimport { Load } from './modules/load/load.js';\nimport { FontSwap } from './modules/font-swap/font-swap';\nimport { MouseMove } from './modules/mouse-move/mouse-move';\nimport inspector from './inspect/inspector.js';\nimport state from './state.js';\n\nclass Engine {\n constructor () {\n state.create(Register);\n state.create(Stage);\n state.create(Renderer);\n state.create(Resizer);\n state.create(ScrollLocker);\n state.create(Load);\n state.create(FontSwap);\n state.create(MouseMove);\n\n const registerModule = state.getModule('register');\n this.register = registerModule.register.bind(registerModule);\n }\n\n get isActive () {\n return state.isActive;\n }\n\n start () {\n inspector.debug('START');\n state.isActive = true;\n }\n\n stop () {\n inspector.debug('STOP');\n state.isActive = false;\n }\n}\n\nconst engine = new Engine();\nexport default engine;\n","const sanitize = (className) => className.charAt(0) === '.' ? className.substr(1) : className;\n\nconst getClassNames = (element) => element.className ? element.className.split(' ') : [];\n\nconst modifyClass = (element, className, remove) => {\n className = sanitize(className);\n const classNames = getClassNames(element);\n const index = classNames.indexOf(className);\n if (remove === true) {\n if (index > -1) classNames.splice(index, 1);\n } else if (index === -1) classNames.push(className);\n element.className = classNames.join(' ');\n};\n\nconst addClass = (element, className) => modifyClass(element, className);\n\nexport { addClass };\n\nconst removeClass = (element, className) => modifyClass(element, className, true);\n\nexport { removeClass };\n\nconst hasClass = (element, className) => getClassNames(element).indexOf(sanitize(className)) > -1;\n\nexport { hasClass };\n","import { addClass, hasClass, removeClass } from './classes.js';\nimport { queryParentSelector, querySelectorAllArray } from './query-selector.js';\n\nconst dom = {};\n\ndom.addClass = addClass;\ndom.hasClass = hasClass;\ndom.removeClass = removeClass;\ndom.queryParentSelector = queryParentSelector;\ndom.querySelectorAllArray = querySelectorAllArray;\n\nexport default dom;\n","const supportLocalStorage = () => {\n try {\n return 'localStorage' in window && window.localStorage !== null;\n } catch (e) {\n return false;\n }\n};\n\nexport { supportLocalStorage };\n","import { supportLocalStorage } from './browser-support.js';\n\nconst support = {};\n\nsupport.supportLocalStorage = supportLocalStorage;\n\nexport default support;\n","import ns from '../namespace.js';\n\nexport const TransitionSelector = {\n NONE: ns.selector('transition-none')\n};\n","import { TransitionSelector } from './transition-selector';\n\nconst selector = {};\n\nselector.TransitionSelector = TransitionSelector;\n\nexport default selector;\n","/**\n * Copy properties from multiple sources including accessors.\n * source : https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#copier_des_accesseurs\n *\n * @param {object} [target] - Target object to copy into\n * @param {...objects} [sources] - Multiple objects\n * @return {object} A new object\n *\n * @example\n *\n * const obj1 = {\n * key: 'value'\n * };\n * const obj2 = {\n * get function01 () {\n * return a-value;\n * }\n * set function01 () {\n * return a-value;\n * }\n * };\n * completeAssign(obj1, obj2)\n */\nconst completeAssign = (target, ...sources) => {\n sources.forEach(source => {\n const descriptors = Object.keys(source).reduce((descriptors, key) => {\n descriptors[key] = Object.getOwnPropertyDescriptor(source, key);\n return descriptors;\n }, {});\n\n Object.getOwnPropertySymbols(source).forEach(sym => {\n const descriptor = Object.getOwnPropertyDescriptor(source, sym);\n if (descriptor.enumerable) {\n descriptors[sym] = descriptor;\n }\n });\n Object.defineProperties(target, descriptors);\n });\n return target;\n};\n\nexport { completeAssign };\n","import { completeAssign } from './complete-assign';\n\nconst property = {};\n\nproperty.completeAssign = completeAssign;\n\nexport default property;\n","import state from './state.js';\nimport engine from './engine.js';\nimport options from './options/options.js';\nimport dom from './utilities/dom/index';\nimport ns from './utilities/namespace.js';\nimport support from './utilities/support/index';\nimport motion from './utilities/motion/index';\nimport property from './utilities/property/index';\n\nconst internals = {};\nconst legacy = {};\n\nObject.defineProperty(legacy, 'isLegacy', {\n get: () => state.isLegacy\n});\n\nlegacy.setLegacy = () => {\n state.isLegacy = true;\n};\n\ninternals.legacy = legacy;\ninternals.dom = dom;\ninternals.support = support;\ninternals.motion = motion;\ninternals.property = property;\ninternals.ns = ns;\ninternals.register = engine.register;\n\nObject.defineProperty(internals, 'preventManipulation', {\n get: () => options.preventManipulation\n});\n\nexport default internals;\n","import state from './state.js';\nimport options, { Modes } from './options/options.js';\nimport config from '../../config.js';\nimport engine from './engine.js';\nimport inspector from './inspect/inspector.js';\nimport internals from './internals.js';\n\ninspector.info(`version ${config.version}`);\n\nconst api = (node) => {\n const stage = state.getModule('stage');\n return stage.getProxy(node);\n};\n\napi.Modes = Modes;\n\nObject.defineProperty(api, 'mode', {\n set: (value) => { options.mode = value; },\n get: () => options.mode\n});\n\napi.internals = internals;\n\napi.start = engine.start;\napi.stop = engine.stop;\n\napi.inspector = inspector;\n\noptions.configure(window[config.namespace], api.start);\n\nwindow[config.namespace] = api;\nexport default api;\n","class Emitter {\n constructor () {\n this.emissions = {};\n }\n\n add (type, closure) {\n if (typeof closure !== 'function') throw new Error('closure must be a function');\n if (!this.emissions[type]) this.emissions[type] = [];\n this.emissions[type].push(closure);\n }\n\n remove (type, closure) {\n if (!this.emissions[type]) return;\n if (!closure) delete this.emissions[type];\n else {\n const index = this.emissions[type].indexOf(closure);\n if (index > -1) this.emissions[type].splice(index);\n }\n }\n\n emit (type, data) {\n if (!this.emissions[type]) return [];\n const response = [];\n for (const closure of this.emissions[type]) if (closure) response.push(closure(data));\n return response;\n }\n\n dispose () {\n this.emissions = null;\n }\n}\n\nexport { Emitter };\n","class Breakpoint {\n constructor (id, minWidth) {\n this.id = id;\n this.minWidth = minWidth;\n }\n\n test () {\n return window.matchMedia(`(min-width: ${this.minWidth}em)`).matches;\n }\n}\n\nexport const Breakpoints = {\n XS: new Breakpoint('xs', 0),\n SM: new Breakpoint('sm', 36),\n MD: new Breakpoint('md', 48),\n LG: new Breakpoint('lg', 62),\n XL: new Breakpoint('xl', 78)\n};\n","import { Emitter } from '../../utilities/emitter.js';\nimport state from '../../state.js';\nimport inspector from '../../inspect/inspector.js';\nimport { Breakpoints } from './breakpoints.js';\nimport { addClass, removeClass, hasClass } from '../../utilities/dom/classes.js';\nimport { queryParentSelector, querySelectorAllArray } from '../../utilities/dom/query-selector.js';\n\nclass Instance {\n constructor (jsAttribute = true) {\n this.jsAttribute = jsAttribute;\n this._isRendering = false;\n this._isResizing = false;\n this._isScrollLocked = false;\n this._isLoading = false;\n this._isSwappingFont = false;\n this._listeners = {};\n this._keyListenerTypes = [];\n this._keys = [];\n this.handlingKey = this.handleKey.bind(this);\n this._emitter = new Emitter();\n this._ascent = new Emitter();\n this._descent = new Emitter();\n this._registrations = [];\n this._nexts = [];\n }\n\n static get instanceClassName () {\n return 'Instance';\n }\n\n _config (element, registration) {\n this.element = element;\n this.registration = registration;\n this.node = element.node;\n this.id = element.node.id;\n if (this.jsAttribute) this.setAttribute(registration.attribute, true);\n this.init();\n }\n\n init () {}\n\n get proxy () {\n const scope = this;\n return {\n render: () => scope.render(),\n resize: () => scope.resize()\n };\n }\n\n register (selector, InstanceClass) {\n const registration = state.getModule('register').register(selector, InstanceClass, this);\n this._registrations.push(registration);\n }\n\n getRegisteredInstances (instanceClassName) {\n for (const registration of this._registrations) if (registration.hasInstanceClassName(instanceClassName)) return registration.instances.collection;\n return [];\n }\n\n dispatch (type, detail, bubbles, cancelable) {\n const event = new CustomEvent(type, { detail: detail, bubble: bubbles === true, cancelable: cancelable === true });\n this.node.dispatchEvent(event);\n }\n\n listen (type, closure, options) {\n if (!this._listeners[type]) this._listeners[type] = [];\n if (this._listeners[type].indexOf(closure) > -1) return;\n this._listeners[type].push(closure);\n this.node.addEventListener(type, closure, options);\n }\n\n unlisten (type, closure) {\n if (!type) {\n for (const type in this._listeners) this.unlisten(type);\n } else if (!closure) {\n if (!this._listeners[type]) return;\n for (const closure of this._listeners[type]) this.node.removeEventListener(type, closure);\n this._listeners[type].length = 0;\n } else {\n if (!this._listeners[type]) return;\n const index = this._listeners[type].indexOf(closure);\n if (index > -1) this._listeners[type].splice(index, 1);\n this.node.removeEventListener(type, closure);\n }\n }\n\n listenKey (code, closure, preventDefault = false, stopPropagation = false, type = 'down') {\n if (this._keyListenerTypes.indexOf(type) === -1) {\n this.listen(`key${type}`, this.handlingKey);\n this._keyListenerTypes.push(type);\n }\n\n this._keys.push(new KeyAction(type, code, closure, preventDefault, stopPropagation));\n }\n\n unlistenKey (code, closure) {\n this._keys = this._keys.filter((key) => key.code !== code || key.closure !== closure);\n\n this._keyListenerTypes.forEach(type => {\n if (!this._keys.some(key => key.type === type)) this.unlisten(`key${type}`, this.handlingKey);\n });\n }\n\n handleKey (e) {\n for (const key of this._keys) key.handle(e);\n }\n\n get isRendering () { return this._isRendering; }\n\n set isRendering (value) {\n if (this._isRendering === value) return;\n if (value) state.add('render', this);\n else state.remove('render', this);\n this._isRendering = value;\n }\n\n render () {}\n\n request (closure) {\n this._nexts.push(closure);\n state.getModule('render').request(this);\n }\n\n next () {\n const nexts = this._nexts.slice();\n this._nexts.length = 0;\n for (const closure of nexts) if (closure) closure();\n }\n\n get isResizing () { return this._isResizing; }\n\n set isResizing (value) {\n if (this._isResizing === value) return;\n if (value) {\n state.add('resize', this);\n this.resize();\n } else state.remove('resize', this);\n this._isResizing = value;\n }\n\n resize () {}\n\n isBreakpoint (breakpoint) {\n switch (true) {\n case typeof breakpoint === 'string':\n return Breakpoints[breakpoint.toUpperCase()].test();\n\n default:\n return breakpoint.test();\n }\n }\n\n get isScrollLocked () {\n return this._isScrollLocked;\n }\n\n set isScrollLocked (value) {\n if (this._isScrollLocked === value) return;\n if (value) state.add('lock', this);\n else state.remove('lock', this);\n this._isScrollLocked = value;\n }\n\n get isLoading () {\n return this._isLoading;\n }\n\n set isLoading (value) {\n if (this._isLoading === value) return;\n if (value) state.add('load', this);\n else state.remove('load', this);\n this._isLoading = value;\n }\n\n load () {}\n\n get isSwappingFont () {\n return this._isSwappingFont;\n }\n\n set isSwappingFont (value) {\n if (this._isSwappingFont === value) return;\n if (value) state.add('font-swap', this);\n else state.remove('font-swap', this);\n this._isSwappingFont = value;\n }\n\n swapFont () {}\n\n get isMouseMoving () { return this._isMouseMoving; }\n\n set isMouseMoving (value) {\n if (this._isMouseMoving === value) return;\n if (value) {\n state.add('mouse-move', this);\n } else {\n state.remove('mouse-move', this);\n }\n this._isMouseMoving = value;\n }\n\n mouseMove (point) {}\n\n examine (attributeNames) {\n if (!this.node.matches(this.registration.selector)) {\n this._dispose();\n return;\n }\n\n this.mutate(attributeNames);\n }\n\n mutate (attributeNames) {}\n\n _dispose () {\n inspector.debug(`dispose instance of ${this.registration.instanceClassName} on element [${this.element.id}]`);\n this.removeAttribute(this.registration.attribute);\n this.unlisten();\n this._keys = null;\n this.isRendering = false;\n this.isResizing = false;\n this._nexts = null;\n state.getModule('render').nexts.remove(this);\n this.isScrollLocked = false;\n this.isLoading = false;\n this.isSwappingFont = false;\n this._emitter.dispose();\n this._emitter = null;\n this._ascent.dispose();\n this._ascent = null;\n this._descent.dispose();\n this._descent = null;\n this.element.remove(this);\n for (const registration of this._registrations) state.remove('register', registration);\n this._registrations = null;\n this.registration.remove(this);\n this.dispose();\n }\n\n dispose () {}\n\n emit (type, data) {\n return this.element.emit(type, data);\n }\n\n addEmission (type, closure) {\n this._emitter.add(type, closure);\n }\n\n removeEmission (type, closure) {\n this._emitter.remove(type, closure);\n }\n\n ascend (type, data) {\n return this.element.ascend(type, data);\n }\n\n addAscent (type, closure) {\n this._ascent.add(type, closure);\n }\n\n removeAscent (type, closure) {\n this._ascent.remove(type, closure);\n }\n\n descend (type, data) {\n return this.element.descend(type, data);\n }\n\n addDescent (type, closure) {\n this._descent.add(type, closure);\n }\n\n removeDescent (type, closure) {\n this._descent.remove(type, closure);\n }\n\n get style () {\n return this.node.style;\n }\n\n addClass (className) {\n addClass(this.node, className);\n }\n\n removeClass (className) {\n removeClass(this.node, className);\n }\n\n hasClass (className) {\n return hasClass(this.node, className);\n }\n\n setAttribute (attributeName, value) {\n this.node.setAttribute(attributeName, value);\n }\n\n getAttribute (attributeName) {\n return this.node.getAttribute(attributeName);\n }\n\n hasAttribute (attributeName) {\n return this.node.hasAttribute(attributeName);\n }\n\n removeAttribute (attributeName) {\n this.node.removeAttribute(attributeName);\n }\n\n setProperty (propertyName, value) {\n this.node.style.setProperty(propertyName, value);\n }\n\n removeProperty (propertyName) {\n this.node.style.removeProperty(propertyName);\n }\n\n focus () {\n this.node.focus();\n }\n\n get hasFocus () {\n return this.node === document.activeElement;\n }\n\n matches (selectors) {\n return this.node.matches(selectors);\n }\n\n querySelector (selectors) {\n return this.node.querySelector(selectors);\n }\n\n querySelectorAll (selectors) {\n return querySelectorAllArray(this.node, selectors);\n }\n\n queryParentSelector (selectors) {\n return queryParentSelector(this.node, selectors);\n }\n\n getRect () {\n return this.node.getBoundingClientRect();\n }\n\n get isLegacy () {\n return state.isLegacy;\n }\n}\n\nclass KeyAction {\n constructor (type, code, closure, preventDefault, stopPropagation) {\n this.type = type;\n this.eventType = `key${type}`;\n this.code = code;\n this.closure = closure;\n this.preventDefault = preventDefault === true;\n this.stopPropagation = stopPropagation === true;\n }\n\n handle (e) {\n if (e.type !== this.eventType) return;\n if (e.keyCode === this.code) {\n this.closure(e);\n if (this.preventDefault) {\n e.preventDefault();\n }\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n }\n }\n}\n\nexport { Instance };\n","export const KeyCodes = {\n TAB: 9,\n ESCAPE: 27,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40\n};\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEvent = {\n DISCLOSE: ns.event('disclose'),\n CONCEAL: ns.event('conceal')\n};\n\nexport { DisclosureEvent };\n","import ns from '../api/utilities/namespace.js';\n\nconst DisclosureEmission = {\n RESET: ns.emission('disclosure', 'reset'),\n ADDED: ns.emission('disclosure', 'added'),\n REMOVED: ns.emission('disclosure', 'removed'),\n GROUP: ns.emission('disclosure', 'group'),\n UNGROUP: ns.emission('disclosure', 'ungroup')\n};\n\nexport { DisclosureEmission };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEvent } from './disclosure-event.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass Disclosure extends Instance {\n constructor (type, selector, DisclosureButtonInstanceClass, disclosuresGroupInstanceClassName) {\n super();\n this.type = type;\n this._selector = selector;\n this.DisclosureButtonInstanceClass = DisclosureButtonInstanceClass;\n this.disclosuresGroupInstanceClassName = disclosuresGroupInstanceClassName;\n this.modifier = this._selector + '--' + this.type.id;\n this.pristine = true;\n }\n\n static get instanceClassName () {\n return 'Disclosure';\n }\n\n init () {\n this.addDescent(DisclosureEmission.RESET, this.reset.bind(this));\n this.addDescent(DisclosureEmission.GROUP, this.update.bind(this));\n this.addDescent(DisclosureEmission.UNGROUP, this.update.bind(this));\n this.register(`[aria-controls=\"${this.id}\"]`, this.DisclosureButtonInstanceClass);\n this.ascend(DisclosureEmission.ADDED);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n disclose: scope.disclose.bind(scope),\n focus: scope.focus.bind(scope)\n });\n\n if (this.type.canConceal) proxy.conceal = scope.conceal.bind(scope);\n\n const proxyAccessors = {\n get buttons () {\n return scope.buttons.map((button) => button.proxy);\n },\n get group () {\n const group = scope.group;\n return group ? group.proxy : null;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n\n get buttons () {\n return this.getRegisteredInstances(this.DisclosureButtonInstanceClass.instanceClassName);\n }\n\n update () {\n this.getGroup();\n }\n\n getGroup () {\n if (!this.disclosuresGroupInstanceClassName) {\n this._group = null;\n return;\n }\n\n const group = this.element.getAscendantInstance(this.disclosuresGroupInstanceClassName, this.constructor.instanceClassName);\n if (!group || !group.validate(this)) {\n this._group = null;\n return;\n }\n\n this._group = group;\n }\n\n get group () {\n return this._group;\n }\n\n disclose (withhold) {\n if (this.disclosed) return false;\n this.pristine = false;\n this.disclosed = true;\n if (!withhold && this.group) this.group.current = this;\n return true;\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return false;\n if (!this.type.canConceal && this.group && this.group.current === this) return false;\n this.pristine = false;\n this.disclosed = false;\n if (!withhold && this.group && this.group.current === this) this.group.current = null;\n if (!preventFocus) this.focus();\n this.descend(DisclosureEmission.RESET);\n return true;\n }\n\n get disclosed () {\n return this._disclosed;\n }\n\n set disclosed (value) {\n if (this._disclosed === value) return;\n this.dispatch(value ? DisclosureEvent.DISCLOSE : DisclosureEvent.CONCEAL, this.type);\n this._disclosed = value;\n if (value) this.addClass(this.modifier);\n else this.removeClass(this.modifier);\n for (let i = 0; i < this.buttons.length; i++) this.buttons[i].apply(value);\n }\n\n reset () {}\n\n toggle (isPrimary) {\n if (!this.type.canConceal) this.disclose();\n else {\n switch (true) {\n case !isPrimary:\n case this.disclosed:\n this.conceal();\n break;\n\n default:\n this.disclose();\n }\n }\n }\n\n get buttonHasFocus () {\n if (this.buttons.some((button) => { return button.hasFocus; })) return true;\n return false;\n }\n\n get hasFocus () {\n if (super.hasFocus) return true;\n if (this.buttonHasFocus) return true;\n return this.querySelectorAll(':focus').length > 0;\n }\n\n focus () {\n for (let i = 0; i < this.buttons.length; i++) {\n const button = this.buttons[i];\n if (button.isPrimary) {\n button.focus();\n return;\n }\n }\n }\n\n dispose () {\n this._group = null;\n super.dispose();\n this.ascend(DisclosureEmission.REMOVED);\n }\n}\n\nexport { Disclosure };\n","import { Instance } from '../api/modules/register/instance';\nimport ns from '../api/utilities/namespace.js';\n\nclass DisclosureButton extends Instance {\n constructor (type) {\n super();\n this.type = type;\n this.attributeName = type.ariaState ? 'aria-' + type.id : ns.attr(type.id);\n }\n\n static get instanceClassName () {\n return 'DisclosureButton';\n }\n\n init () {\n this.controlsId = this.getAttribute('aria-controls');\n this.isPrimary = this.hasAttribute(this.attributeName);\n if (this.isPrimary && this.disclosed && this.registration.creator.pristine) this.registration.creator.disclose();\n this.listen('click', this.click.bind(this));\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n focus: scope.focus.bind(scope)\n });\n }\n\n click (e) {\n if (this.registration.creator) this.registration.creator.toggle(this.isPrimary);\n }\n\n mutate (attributeNames) {\n if (this.isPrimary && attributeNames.indexOf(this.attributeName) > -1 && this.registration.creator) {\n if (this.disclosed) this.registration.creator.disclose();\n else if (this.type.canConceal) this.registration.creator.conceal();\n }\n }\n\n apply (value) {\n if (!this.isPrimary) return;\n this.setAttribute(this.attributeName, value);\n }\n\n get disclosed () {\n return this.getAttribute(this.attributeName) === 'true';\n }\n}\n\nexport { DisclosureButton };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { DisclosureEmission } from './disclosure-emission.js';\nimport { completeAssign } from '../api/utilities/property/complete-assign.js';\n\nclass DisclosuresGroup extends Instance {\n constructor (disclosureInstanceClassName, jsAttribute) {\n super(jsAttribute);\n this.disclosureInstanceClassName = disclosureInstanceClassName;\n this._index = -1;\n }\n\n static get instanceClassName () {\n return 'DisclosuresGroup';\n }\n\n init () {\n this.addAscent(DisclosureEmission.ADDED, this.update.bind(this));\n this.addAscent(DisclosureEmission.REMOVED, this.update.bind(this));\n this.descend(DisclosureEmission.GROUP);\n this.update();\n }\n\n get proxy () {\n const scope = this;\n\n const proxyAccessors = {\n set index (value) {\n scope.index = value;\n },\n get index () {\n return scope.index;\n },\n get length () {\n return scope.length;\n },\n get current () {\n const current = scope.current;\n return current ? current.proxy : null;\n },\n get members () {\n return scope.members.map((member) => member.proxy);\n },\n get hasFocus () {\n return scope.hasFocus;\n }\n };\n\n return completeAssign(super.proxy, proxyAccessors);\n }\n\n validate (member) {\n return true;\n }\n\n getMembers () {\n const members = this.element.getDescendantInstances(this.disclosureInstanceClassName, this.constructor.instanceClassName, true);\n this._members = members.filter(this.validate.bind(this));\n }\n\n update () {\n this.getMembers();\n this.getIndex();\n }\n\n get members () {\n return this._members;\n }\n\n get length () {\n return this.members ? this.members.length : 0;\n }\n\n getIndex () {\n this._index = -1;\n for (let i = 0; i < this.length; i++) {\n if (this.index > -1) this.members[i].conceal(true, true);\n else if (this.members[i].disclosed) {\n this.index = i;\n }\n }\n }\n\n get index () {\n return this._index;\n }\n\n set index (value) {\n if (value < -1 || value >= this.length || value === this._index) return;\n this._index = value;\n for (let i = 0; i < this.length; i++) {\n const member = this.members[i];\n if (value === i) {\n member.disclose(true);\n } else {\n member.conceal(true, true);\n }\n }\n this.apply();\n }\n\n get current () {\n return this._index === -1 ? null : this.members[this._index];\n }\n\n set current (member) {\n this.index = this.members.indexOf(member);\n }\n\n get hasFocus () {\n const current = this.current;\n if (current) return current.hasFocus;\n return false;\n }\n\n apply () {}\n\n dispose () {\n super.dispose();\n this.descend(DisclosureEmission.UNGROUP);\n this._members = null;\n }\n}\n\nexport { DisclosuresGroup };\n","export const DisclosureType = {\n EXPAND: {\n id: 'expanded',\n ariaState: true,\n ariaControls: true,\n canConceal: true\n },\n SELECT: {\n id: 'selected',\n ariaState: true,\n ariaControls: true,\n canConceal: false\n },\n OPENED: {\n id: 'opened',\n ariaState: false,\n ariaControls: true,\n canConceal: true\n }\n};\n","import { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { DisclosureButton } from '../disclosure/disclosure-button.js';\n\nclass CollapseButton extends DisclosureButton {\n constructor () {\n super(DisclosureType.EXPAND);\n }\n\n static get instanceClassName () {\n return 'CollapseButton';\n }\n}\n\nexport { CollapseButton };\n","import ns from '../api/utilities/namespace.js';\n\nexport const CollapseSelector = {\n COLLAPSE: ns.selector('collapse')\n};\n","import { Disclosure } from '../disclosure/disclosure.js';\nimport { CollapseSelector } from './collapse-selector.js';\nimport { DisclosureType } from '../disclosure/disclosure-type.js';\nimport { CollapseButton } from './collapse-button.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 Collapse extends Disclosure {\n constructor () {\n super(DisclosureType.EXPAND, CollapseSelector.COLLAPSE, CollapseButton, 'CollapsesGroup');\n }\n\n static get instanceClassName () {\n return 'Collapse';\n }\n\n init () {\n super.init();\n this.listen('transitionend', this.transitionend.bind(this));\n }\n\n transitionend (e) {\n if (!this.disclosed) {\n if (this.isLegacy) this.style.maxHeight = '';\n else this.style.removeProperty('--collapse-max-height');\n }\n }\n\n unbound () {\n if (this.isLegacy) this.style.maxHeight = 'none';\n else this.style.setProperty('--collapse-max-height', 'none');\n }\n\n disclose (withhold) {\n if (this.disclosed) return;\n this.unbound();\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.disclose(withhold);\n });\n });\n }\n\n conceal (withhold, preventFocus) {\n if (!this.disclosed) return;\n this.request(() => {\n this.adjust();\n this.request(() => {\n super.conceal(withhold, preventFocus);\n });\n });\n }\n\n adjust () {\n this.setProperty('--collapser', 'none');\n const height = this.node.offsetHeight;\n this.setProperty('--collapse', -height + 'px');\n this.setProperty('--collapser', '');\n }\n\n reset () {\n if (!this.pristine) this.disclosed = false;\n }\n}\n\nexport { Collapse };\n","import { DisclosuresGroup } from '../disclosure/disclosures-group.js';\n\nclass CollapsesGroup extends DisclosuresGroup {\n constructor () {\n super('Collapse');\n }\n\n static get instanceClassName () {\n return 'CollapsesGroup';\n }\n}\n\nexport { CollapsesGroup };\n","import ns from '../api/utilities/namespace.js';\n\nexport const EquisizedEmission = {\n CHANGE: ns('equisized', 'change')\n};\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass Equisized extends Instance {\n static get instanceClassName () {\n return 'Equisized';\n }\n\n init () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n\n measure () {\n if (this.isLegacy) this.style.width = 'auto';\n return this.getRect().width;\n }\n\n adjust (width) {\n if (this.isLegacy) this.style.width = `${width}px`;\n }\n\n dispose () {\n this.ascend(EquisizedEmission.CHANGE);\n }\n}\n\nexport { Equisized };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { EquisizedEmission } from './equisized-emission.js';\n\nclass EquisizedsGroup extends Instance {\n static get instanceClassName () {\n return 'EquisizedsGroup';\n }\n\n init () {\n this.isResizing = true;\n this.isLoading = true;\n this.addAscent(EquisizedEmission.CHANGE, this.resize.bind(this));\n }\n\n load () {\n this.resize();\n }\n\n resize () {\n const equisizeds = this.element.getDescendantInstances('Equisized');\n if (!this.isLegacy) this.style.setProperty('--equisized-width', 'auto');\n\n const width = Math.max(...equisizeds.map(equisized => equisized.measure()));\n if (this.isLegacy) equisizeds.forEach(equisized => equisized.adjust(width));\n else this.style.setProperty('--equisized-width', `${width}px`);\n }\n}\n\nexport { EquisizedsGroup };\n","import ns from '../../api/utilities/namespace.js';\n\nconst ToggleEvent = {\n TOGGLE: ns.event('toggle')\n};\n\nexport { ToggleEvent };\n","import { Instance } from '../../api/modules/register/instance.js';\nimport { completeAssign } from '../../api/utilities/property/complete-assign.js';\nimport { ToggleEvent } from './toggle-event.js';\n\nclass Toggle extends Instance {\n static get instanceClassName () {\n return 'Toggle';\n }\n\n init () {\n this.pressed = this.pressed === 'true';\n this.listen('click', this.toggle.bind(this));\n }\n\n toggle () {\n this.pressed = this.pressed !== 'true';\n }\n\n get pressed () {\n return this.getAttribute('aria-pressed');\n }\n\n set pressed (value) {\n this.setAttribute('aria-pressed', value ? 'true' : 'false');\n this.dispatch(ToggleEvent.TOGGLE, value);\n }\n\n get proxy () {\n const scope = this;\n const proxy = Object.assign(super.proxy, {\n toggle: scope.toggle.bind(scope)\n });\n\n const proxyAccessors = {\n get pressed () {\n return scope.pressed;\n },\n set pressed (value) {\n scope.pressed = value;\n }\n };\n\n return completeAssign(proxy, proxyAccessors);\n }\n}\n\nexport { Toggle };\n","import { Instance } from '../api/modules/register/instance.js';\nimport { setAttributes } from '../api/utilities/attribute';\n\nclass InjectSvg extends Instance {\n static get instanceClassName () {\n return 'InjectSvg';\n }\n\n init () {\n if (this.node) {\n this.img = this.node.querySelector('img');\n }\n\n if (!this.isLegacy) {\n this.replace();\n }\n }\n\n get proxy () {\n const scope = this;\n return Object.assign(super.proxy, {\n replace: scope.replace.bind(scope),\n restore: scope.restore.bind(scope)\n });\n }\n\n fetch () {\n if (this.img) {\n this.imgID = this.img.getAttribute('id');\n this.imgClass = this.img.getAttribute('class');\n this.imgURL = this.img.getAttribute('src');\n\n fetch(this.imgURL)\n .then(data => data.text())\n .then(response => {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(response, 'text/html');\n this.svg = xmlDoc.querySelector('svg');\n\n if (this.svg) {\n this.replace();\n }\n });\n }\n }\n\n replace () {\n if (!this.svg) {\n this.fetch();\n return;\n }\n\n if (this.imgID && typeof this.imgID !== 'undefined') {\n this.svg.setAttribute('id', this.imgID);\n }\n\n if (this.imgClass && typeof this.imgClass !== 'undefined') {\n this.svg.setAttribute('class', this.imgClass);\n }\n\n if (this.svg.hasAttribute('xmlns:a')) {\n this.svg.removeAttribute('xmlns:a');\n }\n\n this.node.setAttribute('data-fr-inject-svg', true);\n const svgAttributes = {\n 'aria-hidden': true,\n focusable: false\n };\n setAttributes(this.svg, svgAttributes);\n this.node.replaceChild(this.svg, this.img);\n }\n\n restore () {\n if (this.img && this.svg) {\n this.node.setAttribute('data-fr-inject-svg', false);\n this.node.replaceChild(this.img, this.svg);\n }\n }\n}\n\nexport { InjectSvg };\n","const setAttributes = (el, attrs) => {\n Object.keys(attrs).forEach(key => el.setAttribute(key, attrs[key]));\n};\n\nexport { setAttributes };\n","import ns from '../api/utilities/namespace.js';\n\nexport const InjectSvgSelector = {\n INJECT_SVG: `[${ns.attr('inject-svg')}]`\n};\n","import api from './script/api/api';\n\nimport { Instance } from './script/api/modules/register/instance.js';\nimport { KeyCodes } from './script/api/modules/register/key-codes.js';\nimport { Breakpoints } from './script/api/modules/register/breakpoints';\nimport { Disclosure } from './script/disclosure/disclosure.js';\nimport { DisclosureButton } from './script/disclosure/disclosure-button.js';\nimport { DisclosuresGroup } from './script/disclosure/disclosures-group.js';\nimport { DisclosureType } from './script/disclosure/disclosure-type.js';\nimport { DisclosureEvent } from './script/disclosure/disclosure-event.js';\nimport { DisclosureEmission } from './script/disclosure/disclosure-emission.js';\nimport { CollapseButton } from './script/collapse/collapse-button.js';\nimport { Collapse } from './script/collapse/collapse.js';\nimport { CollapsesGroup } from './script/collapse/collapses-group.js';\nimport { CollapseSelector } from './script/collapse/collapse-selector.js';\nimport { Equisized } from './script/equisized/equisized.js';\nimport { EquisizedsGroup } from './script/equisized/equisizeds-group.js';\nimport { EquisizedEmission } from './script/equisized/equisized-emission.js';\nimport { Toggle } from './script/action/toggle/toggle';\nimport { RootSelector } from './script/api/modules/stage/root.js';\nimport { InjectSvg } from './script/inject/inject-svg';\nimport { InjectSvgSelector } from './script/inject/inject-svg-selector';\n\napi.core = {\n Instance: Instance,\n Breakpoints: Breakpoints,\n KeyCodes: KeyCodes,\n Disclosure: Disclosure,\n DisclosureButton: DisclosureButton,\n DisclosuresGroup: DisclosuresGroup,\n DisclosureType: DisclosureType,\n DisclosureEvent: DisclosureEvent,\n DisclosureEmission: DisclosureEmission,\n Collapse: Collapse,\n CollapseButton: CollapseButton,\n CollapsesGroup: CollapsesGroup,\n CollapseSelector: CollapseSelector,\n RootSelector: RootSelector,\n Equisized: Equisized,\n EquisizedEmission: EquisizedEmission,\n Toggle: Toggle,\n EquisizedsGroup: EquisizedsGroup,\n InjectSvg: InjectSvg,\n InjectSvgSelector: InjectSvgSelector\n};\n\nexport default api;\n","import api from './index.js';\n\napi.internals.register(api.core.CollapseSelector.COLLAPSE, api.core.Collapse);\napi.internals.register(api.core.InjectSvgSelector.INJECT_SVG, api.core.InjectSvg);\n\nexport default api;\n","import api from './index.js';\n\n/* legacy code here */\napi.internals.legacy.setLegacy();\n\nexport default api;\n"],"names":["State","this","modules","create","ModuleClass","const","module","type","getModule","add","item","remove","isActive","_isActive","value","values","Object","keys","map","e","activate","deactivate","isLegacy","_isLegacy","state","config","LogLevel","level","light","dark","logger","console","warn","error","log","message","Message","print","setColor","color","apply","getMessage","window","matchMedia","matches","domain","inputs","styles","objects","push","join","LEVELS","trace","debug","info","Inspector","id","msgs","bind","tree","stage","_branch","root","element","space","let","branch","indent","i","children","child","inspector","startAtDomContentLoaded","callback","document","readyState","requestAnimationFrame","addEventListener","Modes","AUTO","MANUAL","RUNTIME","LOADED","VUE","ANGULAR","REACT","Options","_mode","isStarted","starting","start","preventManipulation","configure","settings","startCallback","verbose","mode","options","Collection","_collection","forEach","length","collectable","indexOf","onAdd","onPopulate","index","splice","onRemove","onEmpty","execute","args","clear","clone","slice","collection","Module","super","ns","name","selector","notation","undefined","attr","result","event","emission","querySelectorAllArray","selectors","Array","prototype","call","querySelectorAll","queryParentSelector","parent","parentElement","documentElement","Registration","InstanceClass","creator","instances","isIntroduced","_instanceClassName","instanceClassName","_instanceClassNames","getInstanceClassNames","_property","substring","toLowerCase","dashed","replace","_attribute","getPrototypeOf","hasInstanceClassName","introduce","parse","node","nonRecursive","nodes","querySelector","instance","dispose","_dispose","instanceClassNames","property","attribute","Register","register","registration","count","Element","attributeNames","_children","_parent","_projects","proxy","scope","_proxy","html","end","outerHTML","project","populate","projects","hasInstance","_config","ascendants","descendants","addChild","isNaN","removeChild","emit","data","response","_emit","_emitter","ascend","_ascend","_ascent","descend","_descend","_descent","getInstance","getDescendantInstances","stopAtInstanceClassName","stopAtFirstInstance","getAscendantInstance","prepare","attributeName","examine","Root","setAttribute","Stage","observer","MutationObserver","mutate","modifications","willModify","modifying","modify","hasElement","getElement","getProxy","put","position","compareDocumentPosition","Node","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_PRECEDING","observe","childList","subtree","attributes","disconnect","mutations","examinations","mutation","removedNodes","addedNodes","target","descendant","targets","contains","disposables","disposable","creations","n","Renderer","rendering","render","nexts","request","next","Resizer","requireResize","resizing","resize","requesting","fonts","ready","then","ScrollLocker","_isLocked","_scrollY","lock","unlock","prototypeAccessors","isLocked","scrollY","body","style","top","setProperty","removeAttribute","removeProperty","scroll","Load","loading","load","FONT_FAMILIES","FontSwap","swapping","swap","families","filter","family","check","swapFont","MouseMove","requireMove","_isMoving","moving","move","listen","unlisten","removeEventListener","point","x","clientX","y","clientY","mouseMove","Engine","registerModule","stop","engine","sanitize","className","charAt","substr","getClassNames","split","modifyClass","classNames","addClass","removeClass","hasClass","dom","support","localStorage","TransitionSelector","NONE","completeAssign","sources","source","descriptors","reduce","key","getOwnPropertyDescriptor","getOwnPropertySymbols","sym","descriptor","enumerable","defineProperties","internals","legacy","defineProperty","get","setLegacy","motion","api","set","Emitter","emissions","closure","Error","Breakpoint","minWidth","test","Breakpoints","XS","SM","MD","LG","XL","Instance","jsAttribute","_isRendering","_isResizing","_isScrollLocked","_isLoading","_isSwappingFont","_listeners","_keyListenerTypes","_keys","handlingKey","handleKey","_registrations","_nexts","staticAccessors","init","getRegisteredInstances","dispatch","detail","bubbles","cancelable","CustomEvent","bubble","dispatchEvent","listenKey","code","preventDefault","stopPropagation","KeyAction","unlistenKey","some","handle","isRendering","isResizing","isBreakpoint","breakpoint","toUpperCase","isScrollLocked","isLoading","isSwappingFont","isMouseMoving","_isMouseMoving","addEmission","removeEmission","addAscent","removeAscent","addDescent","removeDescent","getAttribute","hasAttribute","propertyName","focus","hasFocus","activeElement","getRect","getBoundingClientRect","eventType","keyCode","DisclosureEvent","DISCLOSE","CONCEAL","DisclosureEmission","RESET","ADDED","REMOVED","GROUP","UNGROUP","Disclosure","DisclosureButtonInstanceClass","disclosuresGroupInstanceClassName","_selector","modifier","pristine","reset","update","assign","disclose","canConceal","conceal","buttons","button","group","getGroup","constructor","validate","_group","withhold","disclosed","current","preventFocus","_disclosed","toggle","isPrimary","buttonHasFocus","DisclosureButton","ariaState","controlsId","click","DisclosuresGroup","disclosureInstanceClassName","_index","proxyAccessors","members","member","getMembers","_members","getIndex","DisclosureType","EXPAND","ariaControls","SELECT","OPENED","CollapseButton","CollapseSelector","COLLAPSE","Collapse","transitionend","maxHeight","unbound","adjust","height","offsetHeight","CollapsesGroup","EquisizedEmission","CHANGE","Equisized","measure","width","EquisizedsGroup","equisizeds","Math","max","equisized","ToggleEvent","TOGGLE","Toggle","pressed","InjectSvg","img","restore","fetch","imgID","imgClass","imgURL","text","xmlDoc","DOMParser","parseFromString","svg","el","attrs","focusable","replaceChild","InjectSvgSelector","INJECT_SVG","core","KeyCodes","TAB","ESCAPE","END","HOME","LEFT","UP","RIGHT","DOWN","RootSelector","ROOT"],"mappings":"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"}