wcs-core 7.4.0 → 7.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 (555) hide show
  1. package/bundle/index.d.ts +45 -0
  2. package/bundle/index.js +2 -0
  3. package/bundle/index.js.map +1 -0
  4. package/bundle/p-010cf905.js +2 -0
  5. package/bundle/p-010cf905.js.map +1 -0
  6. package/bundle/p-2751ddc1.js +2 -0
  7. package/bundle/p-2751ddc1.js.map +1 -0
  8. package/bundle/p-2bef72c7.js +2 -0
  9. package/bundle/p-2bef72c7.js.map +1 -0
  10. package/bundle/p-2e9b9605.js +2 -0
  11. package/bundle/p-2e9b9605.js.map +1 -0
  12. package/bundle/p-35d7af48.js +2 -0
  13. package/bundle/p-35d7af48.js.map +1 -0
  14. package/bundle/p-38e45350.js +2 -0
  15. package/bundle/p-38e45350.js.map +1 -0
  16. package/bundle/p-3abf8a42.js +2 -0
  17. package/bundle/p-3abf8a42.js.map +1 -0
  18. package/bundle/p-44a3b0b9.js +2 -0
  19. package/bundle/p-44a3b0b9.js.map +1 -0
  20. package/bundle/p-60193ef5.js +2 -0
  21. package/bundle/p-60193ef5.js.map +1 -0
  22. package/bundle/p-6bc981dd.js +156 -0
  23. package/bundle/p-6bc981dd.js.map +1 -0
  24. package/bundle/p-763371a0.js +16 -0
  25. package/bundle/p-763371a0.js.map +1 -0
  26. package/bundle/p-8bfdf6f6.js +2 -0
  27. package/bundle/p-8bfdf6f6.js.map +1 -0
  28. package/bundle/p-97e70e10.js +2 -0
  29. package/bundle/p-97e70e10.js.map +1 -0
  30. package/bundle/p-98bd8a96.js +2 -0
  31. package/bundle/p-98bd8a96.js.map +1 -0
  32. package/bundle/p-a0f32ead.js +2 -0
  33. package/bundle/p-a0f32ead.js.map +1 -0
  34. package/bundle/p-a7468a3a.js +2 -0
  35. package/bundle/p-a7468a3a.js.map +1 -0
  36. package/bundle/p-c8b73e93.js +2 -0
  37. package/bundle/p-c8b73e93.js.map +1 -0
  38. package/bundle/p-d23d7658.js +2 -0
  39. package/bundle/p-d23d7658.js.map +1 -0
  40. package/bundle/p-d3404c52.js +2 -0
  41. package/bundle/p-d3404c52.js.map +1 -0
  42. package/bundle/p-e1fb3625.js +2 -0
  43. package/bundle/p-e1fb3625.js.map +1 -0
  44. package/bundle/p-f0dda0b8.js +2 -0
  45. package/bundle/p-f0dda0b8.js.map +1 -0
  46. package/bundle/p-fb2751c2.js +2 -0
  47. package/bundle/p-fb2751c2.js.map +1 -0
  48. package/bundle/p-fc9ba34d.js +2 -0
  49. package/bundle/p-fc9ba34d.js.map +1 -0
  50. package/bundle/package.json +8 -0
  51. package/bundle/wcs-accordion-content.d.ts +11 -0
  52. package/bundle/wcs-accordion-content.js +2 -0
  53. package/bundle/wcs-accordion-content.js.map +1 -0
  54. package/bundle/wcs-accordion-header.d.ts +11 -0
  55. package/bundle/wcs-accordion-header.js +2 -0
  56. package/bundle/wcs-accordion-header.js.map +1 -0
  57. package/bundle/wcs-accordion-panel.d.ts +11 -0
  58. package/bundle/wcs-accordion-panel.js +2 -0
  59. package/bundle/wcs-accordion-panel.js.map +1 -0
  60. package/bundle/wcs-accordion.d.ts +11 -0
  61. package/bundle/wcs-accordion.js +2 -0
  62. package/bundle/wcs-accordion.js.map +1 -0
  63. package/bundle/wcs-action-bar.d.ts +11 -0
  64. package/bundle/wcs-action-bar.js +2 -0
  65. package/bundle/wcs-action-bar.js.map +1 -0
  66. package/bundle/wcs-alert-drawer.d.ts +11 -0
  67. package/bundle/wcs-alert-drawer.js +2 -0
  68. package/bundle/wcs-alert-drawer.js.map +1 -0
  69. package/bundle/wcs-alert.d.ts +11 -0
  70. package/bundle/wcs-alert.js +2 -0
  71. package/bundle/wcs-alert.js.map +1 -0
  72. package/bundle/wcs-app.d.ts +11 -0
  73. package/bundle/wcs-app.js +2 -0
  74. package/bundle/wcs-app.js.map +1 -0
  75. package/bundle/wcs-badge.d.ts +11 -0
  76. package/bundle/wcs-badge.js +2 -0
  77. package/bundle/wcs-badge.js.map +1 -0
  78. package/bundle/wcs-breadcrumb-item.d.ts +11 -0
  79. package/bundle/wcs-breadcrumb-item.js +2 -0
  80. package/bundle/wcs-breadcrumb-item.js.map +1 -0
  81. package/bundle/wcs-breadcrumb.d.ts +11 -0
  82. package/bundle/wcs-breadcrumb.js +2 -0
  83. package/bundle/wcs-breadcrumb.js.map +1 -0
  84. package/bundle/wcs-button.d.ts +11 -0
  85. package/bundle/wcs-button.js +2 -0
  86. package/bundle/wcs-button.js.map +1 -0
  87. package/bundle/wcs-card-body.d.ts +11 -0
  88. package/bundle/wcs-card-body.js +2 -0
  89. package/bundle/wcs-card-body.js.map +1 -0
  90. package/bundle/wcs-card-content.d.ts +11 -0
  91. package/bundle/wcs-card-content.js +2 -0
  92. package/bundle/wcs-card-content.js.map +1 -0
  93. package/bundle/wcs-card-footer.d.ts +11 -0
  94. package/bundle/wcs-card-footer.js +2 -0
  95. package/bundle/wcs-card-footer.js.map +1 -0
  96. package/bundle/wcs-card-header.d.ts +11 -0
  97. package/bundle/wcs-card-header.js +2 -0
  98. package/bundle/wcs-card-header.js.map +1 -0
  99. package/bundle/wcs-card-media.d.ts +11 -0
  100. package/bundle/wcs-card-media.js +2 -0
  101. package/bundle/wcs-card-media.js.map +1 -0
  102. package/bundle/wcs-card.d.ts +11 -0
  103. package/bundle/wcs-card.js +2 -0
  104. package/bundle/wcs-card.js.map +1 -0
  105. package/bundle/wcs-checkbox.d.ts +11 -0
  106. package/bundle/wcs-checkbox.js +2 -0
  107. package/bundle/wcs-checkbox.js.map +1 -0
  108. package/bundle/wcs-chip.d.ts +11 -0
  109. package/bundle/wcs-chip.js +2 -0
  110. package/bundle/wcs-chip.js.map +1 -0
  111. package/bundle/wcs-com-nav-category.d.ts +11 -0
  112. package/bundle/wcs-com-nav-category.js +2 -0
  113. package/bundle/wcs-com-nav-category.js.map +1 -0
  114. package/bundle/wcs-com-nav-item.d.ts +11 -0
  115. package/bundle/wcs-com-nav-item.js +2 -0
  116. package/bundle/wcs-com-nav-item.js.map +1 -0
  117. package/bundle/wcs-com-nav-submenu.d.ts +11 -0
  118. package/bundle/wcs-com-nav-submenu.js +2 -0
  119. package/bundle/wcs-com-nav-submenu.js.map +1 -0
  120. package/bundle/wcs-com-nav.d.ts +11 -0
  121. package/bundle/wcs-com-nav.js +2 -0
  122. package/bundle/wcs-com-nav.js.map +1 -0
  123. package/bundle/wcs-counter.d.ts +11 -0
  124. package/bundle/wcs-counter.js +2 -0
  125. package/bundle/wcs-counter.js.map +1 -0
  126. package/bundle/wcs-divider.d.ts +11 -0
  127. package/bundle/wcs-divider.js +2 -0
  128. package/bundle/wcs-divider.js.map +1 -0
  129. package/bundle/wcs-dropdown-divider.d.ts +11 -0
  130. package/bundle/wcs-dropdown-divider.js +2 -0
  131. package/bundle/wcs-dropdown-divider.js.map +1 -0
  132. package/bundle/wcs-dropdown-header.d.ts +11 -0
  133. package/bundle/wcs-dropdown-header.js +2 -0
  134. package/bundle/wcs-dropdown-header.js.map +1 -0
  135. package/bundle/wcs-dropdown-item.d.ts +11 -0
  136. package/bundle/wcs-dropdown-item.js +2 -0
  137. package/bundle/wcs-dropdown-item.js.map +1 -0
  138. package/bundle/wcs-dropdown.d.ts +11 -0
  139. package/bundle/wcs-dropdown.js +2 -0
  140. package/bundle/wcs-dropdown.js.map +1 -0
  141. package/bundle/wcs-editable-field.d.ts +11 -0
  142. package/bundle/wcs-editable-field.js +2 -0
  143. package/bundle/wcs-editable-field.js.map +1 -0
  144. package/bundle/wcs-error.d.ts +11 -0
  145. package/bundle/wcs-error.js +2 -0
  146. package/bundle/wcs-error.js.map +1 -0
  147. package/bundle/wcs-field-content.d.ts +11 -0
  148. package/bundle/wcs-field-content.js +2 -0
  149. package/bundle/wcs-field-content.js.map +1 -0
  150. package/bundle/wcs-field-label.d.ts +11 -0
  151. package/bundle/wcs-field-label.js +2 -0
  152. package/bundle/wcs-field-label.js.map +1 -0
  153. package/bundle/wcs-field.d.ts +11 -0
  154. package/bundle/wcs-field.js +2 -0
  155. package/bundle/wcs-field.js.map +1 -0
  156. package/bundle/wcs-footer.d.ts +11 -0
  157. package/bundle/wcs-footer.js +2 -0
  158. package/bundle/wcs-footer.js.map +1 -0
  159. package/bundle/wcs-form-field.d.ts +11 -0
  160. package/bundle/wcs-form-field.js +2 -0
  161. package/bundle/wcs-form-field.js.map +1 -0
  162. package/bundle/wcs-galactic-menu.d.ts +11 -0
  163. package/bundle/wcs-galactic-menu.js +2 -0
  164. package/bundle/wcs-galactic-menu.js.map +1 -0
  165. package/bundle/wcs-galactic.d.ts +11 -0
  166. package/bundle/wcs-galactic.js +2 -0
  167. package/bundle/wcs-galactic.js.map +1 -0
  168. package/bundle/wcs-grid-column.d.ts +11 -0
  169. package/bundle/wcs-grid-column.js +2 -0
  170. package/bundle/wcs-grid-column.js.map +1 -0
  171. package/bundle/wcs-grid-custom-cell.d.ts +11 -0
  172. package/bundle/wcs-grid-custom-cell.js +2 -0
  173. package/bundle/wcs-grid-custom-cell.js.map +1 -0
  174. package/bundle/wcs-grid-pagination.d.ts +11 -0
  175. package/bundle/wcs-grid-pagination.js +2 -0
  176. package/bundle/wcs-grid-pagination.js.map +1 -0
  177. package/bundle/wcs-grid.d.ts +11 -0
  178. package/bundle/wcs-grid.js +2 -0
  179. package/bundle/wcs-grid.js.map +1 -0
  180. package/bundle/wcs-header.d.ts +11 -0
  181. package/bundle/wcs-header.js +2 -0
  182. package/bundle/wcs-header.js.map +1 -0
  183. package/bundle/wcs-hint.d.ts +11 -0
  184. package/bundle/wcs-hint.js +2 -0
  185. package/bundle/wcs-hint.js.map +1 -0
  186. package/bundle/wcs-horizontal-stepper.d.ts +11 -0
  187. package/bundle/wcs-horizontal-stepper.js +2 -0
  188. package/bundle/wcs-horizontal-stepper.js.map +1 -0
  189. package/bundle/wcs-icon.d.ts +11 -0
  190. package/bundle/wcs-icon.js +2 -0
  191. package/bundle/wcs-icon.js.map +1 -0
  192. package/bundle/wcs-input.d.ts +11 -0
  193. package/bundle/wcs-input.js +2 -0
  194. package/bundle/wcs-input.js.map +1 -0
  195. package/bundle/wcs-label.d.ts +11 -0
  196. package/bundle/wcs-label.js +2 -0
  197. package/bundle/wcs-label.js.map +1 -0
  198. package/bundle/wcs-list-item-properties.d.ts +11 -0
  199. package/bundle/wcs-list-item-properties.js +2 -0
  200. package/bundle/wcs-list-item-properties.js.map +1 -0
  201. package/bundle/wcs-list-item-property.d.ts +11 -0
  202. package/bundle/wcs-list-item-property.js +2 -0
  203. package/bundle/wcs-list-item-property.js.map +1 -0
  204. package/bundle/wcs-list-item.d.ts +11 -0
  205. package/bundle/wcs-list-item.js +2 -0
  206. package/bundle/wcs-list-item.js.map +1 -0
  207. package/bundle/wcs-mat-icon.d.ts +11 -0
  208. package/bundle/wcs-mat-icon.js +2 -0
  209. package/bundle/wcs-mat-icon.js.map +1 -0
  210. package/bundle/wcs-modal.d.ts +11 -0
  211. package/bundle/wcs-modal.js +2 -0
  212. package/bundle/wcs-modal.js.map +1 -0
  213. package/bundle/wcs-native-select.d.ts +11 -0
  214. package/bundle/wcs-native-select.js +2 -0
  215. package/bundle/wcs-native-select.js.map +1 -0
  216. package/bundle/wcs-nav-item.d.ts +11 -0
  217. package/bundle/wcs-nav-item.js +2 -0
  218. package/bundle/wcs-nav-item.js.map +1 -0
  219. package/bundle/wcs-nav.d.ts +11 -0
  220. package/bundle/wcs-nav.js +2 -0
  221. package/bundle/wcs-nav.js.map +1 -0
  222. package/bundle/wcs-progress-bar.d.ts +11 -0
  223. package/bundle/wcs-progress-bar.js +2 -0
  224. package/bundle/wcs-progress-bar.js.map +1 -0
  225. package/bundle/wcs-progress-radial.d.ts +11 -0
  226. package/bundle/wcs-progress-radial.js +2 -0
  227. package/bundle/wcs-progress-radial.js.map +1 -0
  228. package/bundle/wcs-radio-group.d.ts +11 -0
  229. package/bundle/wcs-radio-group.js +2 -0
  230. package/bundle/wcs-radio-group.js.map +1 -0
  231. package/bundle/wcs-radio.d.ts +11 -0
  232. package/bundle/wcs-radio.js +2 -0
  233. package/bundle/wcs-radio.js.map +1 -0
  234. package/bundle/wcs-select-option.d.ts +11 -0
  235. package/bundle/wcs-select-option.js +2 -0
  236. package/bundle/wcs-select-option.js.map +1 -0
  237. package/bundle/wcs-select.d.ts +11 -0
  238. package/bundle/wcs-select.js +2 -0
  239. package/bundle/wcs-select.js.map +1 -0
  240. package/bundle/wcs-skeleton-circle.d.ts +11 -0
  241. package/bundle/wcs-skeleton-circle.js +2 -0
  242. package/bundle/wcs-skeleton-circle.js.map +1 -0
  243. package/bundle/wcs-skeleton-rectangle.d.ts +11 -0
  244. package/bundle/wcs-skeleton-rectangle.js +2 -0
  245. package/bundle/wcs-skeleton-rectangle.js.map +1 -0
  246. package/bundle/wcs-skeleton-text.d.ts +11 -0
  247. package/bundle/wcs-skeleton-text.js +2 -0
  248. package/bundle/wcs-skeleton-text.js.map +1 -0
  249. package/bundle/wcs-spinner.d.ts +11 -0
  250. package/bundle/wcs-spinner.js +2 -0
  251. package/bundle/wcs-spinner.js.map +1 -0
  252. package/bundle/wcs-switch.d.ts +11 -0
  253. package/bundle/wcs-switch.js +2 -0
  254. package/bundle/wcs-switch.js.map +1 -0
  255. package/bundle/wcs-tab.d.ts +11 -0
  256. package/bundle/wcs-tab.js +2 -0
  257. package/bundle/wcs-tab.js.map +1 -0
  258. package/bundle/wcs-tabs.d.ts +11 -0
  259. package/bundle/wcs-tabs.js +2 -0
  260. package/bundle/wcs-tabs.js.map +1 -0
  261. package/bundle/wcs-textarea.d.ts +11 -0
  262. package/bundle/wcs-textarea.js +2 -0
  263. package/bundle/wcs-textarea.js.map +1 -0
  264. package/bundle/wcs-tooltip.d.ts +11 -0
  265. package/bundle/wcs-tooltip.js +7 -0
  266. package/bundle/wcs-tooltip.js.map +1 -0
  267. package/composite-elements/index.d.ts +33 -0
  268. package/composite-elements/index.js +2 -0
  269. package/composite-elements/index.js.map +1 -0
  270. package/composite-elements/p-04663560.js +2 -0
  271. package/composite-elements/p-04663560.js.map +1 -0
  272. package/composite-elements/p-0c306f8c.js +2 -0
  273. package/composite-elements/p-0c306f8c.js.map +1 -0
  274. package/composite-elements/p-2454bcae.js +2 -0
  275. package/composite-elements/p-2454bcae.js.map +1 -0
  276. package/composite-elements/p-2bef72c7.js +2 -0
  277. package/composite-elements/p-2bef72c7.js.map +1 -0
  278. package/composite-elements/p-35d7af48.js +2 -0
  279. package/composite-elements/p-35d7af48.js.map +1 -0
  280. package/composite-elements/p-3abf8a42.js +2 -0
  281. package/composite-elements/p-3abf8a42.js.map +1 -0
  282. package/composite-elements/p-46f752d5.js +2 -0
  283. package/composite-elements/p-46f752d5.js.map +1 -0
  284. package/composite-elements/p-55668982.js +2 -0
  285. package/composite-elements/p-55668982.js.map +1 -0
  286. package/composite-elements/p-5a3d7fec.js +2 -0
  287. package/composite-elements/p-5a3d7fec.js.map +1 -0
  288. package/composite-elements/p-6dd2b564.js +156 -0
  289. package/composite-elements/p-6dd2b564.js.map +1 -0
  290. package/composite-elements/p-a0f32ead.js +2 -0
  291. package/composite-elements/p-a0f32ead.js.map +1 -0
  292. package/composite-elements/p-a14aec19.js +2 -0
  293. package/composite-elements/p-a14aec19.js.map +1 -0
  294. package/composite-elements/p-a7468a3a.js +2 -0
  295. package/composite-elements/p-a7468a3a.js.map +1 -0
  296. package/composite-elements/p-a90bb01e.js +2 -0
  297. package/composite-elements/p-a90bb01e.js.map +1 -0
  298. package/composite-elements/p-af24fb0d.js +16 -0
  299. package/composite-elements/p-af24fb0d.js.map +1 -0
  300. package/composite-elements/p-b83afff9.js +2 -0
  301. package/composite-elements/p-b83afff9.js.map +1 -0
  302. package/composite-elements/p-b92e818b.js +2 -0
  303. package/composite-elements/p-b92e818b.js.map +1 -0
  304. package/composite-elements/p-d3404c52.js +2 -0
  305. package/composite-elements/p-d3404c52.js.map +1 -0
  306. package/composite-elements/p-e1fb3625.js +2 -0
  307. package/composite-elements/p-e1fb3625.js.map +1 -0
  308. package/composite-elements/p-e803bb26.js +2 -0
  309. package/composite-elements/p-e803bb26.js.map +1 -0
  310. package/composite-elements/p-ef26b4d8.js +2 -0
  311. package/composite-elements/p-ef26b4d8.js.map +1 -0
  312. package/composite-elements/p-fb2751c2.js +2 -0
  313. package/composite-elements/p-fb2751c2.js.map +1 -0
  314. package/composite-elements/p-fe1f9cc5.js +2 -0
  315. package/composite-elements/p-fe1f9cc5.js.map +1 -0
  316. package/composite-elements/package.json +12 -0
  317. package/composite-elements/wcs-accordion-content.d.ts +11 -0
  318. package/composite-elements/wcs-accordion-content.js +2 -0
  319. package/composite-elements/wcs-accordion-content.js.map +1 -0
  320. package/composite-elements/wcs-accordion-header.d.ts +11 -0
  321. package/composite-elements/wcs-accordion-header.js +2 -0
  322. package/composite-elements/wcs-accordion-header.js.map +1 -0
  323. package/composite-elements/wcs-accordion-panel.d.ts +11 -0
  324. package/composite-elements/wcs-accordion-panel.js +2 -0
  325. package/composite-elements/wcs-accordion-panel.js.map +1 -0
  326. package/composite-elements/wcs-accordion.d.ts +11 -0
  327. package/composite-elements/wcs-accordion.js +2 -0
  328. package/composite-elements/wcs-accordion.js.map +1 -0
  329. package/composite-elements/wcs-action-bar.d.ts +11 -0
  330. package/composite-elements/wcs-action-bar.js +2 -0
  331. package/composite-elements/wcs-action-bar.js.map +1 -0
  332. package/composite-elements/wcs-alert-drawer.d.ts +11 -0
  333. package/composite-elements/wcs-alert-drawer.js +2 -0
  334. package/composite-elements/wcs-alert-drawer.js.map +1 -0
  335. package/composite-elements/wcs-alert.d.ts +11 -0
  336. package/composite-elements/wcs-alert.js +2 -0
  337. package/composite-elements/wcs-alert.js.map +1 -0
  338. package/composite-elements/wcs-app.d.ts +11 -0
  339. package/composite-elements/wcs-app.js +2 -0
  340. package/composite-elements/wcs-app.js.map +1 -0
  341. package/composite-elements/wcs-badge.d.ts +11 -0
  342. package/composite-elements/wcs-badge.js +2 -0
  343. package/composite-elements/wcs-badge.js.map +1 -0
  344. package/composite-elements/wcs-breadcrumb-item.d.ts +11 -0
  345. package/composite-elements/wcs-breadcrumb-item.js +2 -0
  346. package/composite-elements/wcs-breadcrumb-item.js.map +1 -0
  347. package/composite-elements/wcs-breadcrumb.d.ts +11 -0
  348. package/composite-elements/wcs-breadcrumb.js +2 -0
  349. package/composite-elements/wcs-breadcrumb.js.map +1 -0
  350. package/composite-elements/wcs-button.d.ts +11 -0
  351. package/composite-elements/wcs-button.js +2 -0
  352. package/composite-elements/wcs-button.js.map +1 -0
  353. package/composite-elements/wcs-card-body.d.ts +11 -0
  354. package/composite-elements/wcs-card-body.js +2 -0
  355. package/composite-elements/wcs-card-body.js.map +1 -0
  356. package/composite-elements/wcs-card-content.d.ts +11 -0
  357. package/composite-elements/wcs-card-content.js +2 -0
  358. package/composite-elements/wcs-card-content.js.map +1 -0
  359. package/composite-elements/wcs-card-footer.d.ts +11 -0
  360. package/composite-elements/wcs-card-footer.js +2 -0
  361. package/composite-elements/wcs-card-footer.js.map +1 -0
  362. package/composite-elements/wcs-card-header.d.ts +11 -0
  363. package/composite-elements/wcs-card-header.js +2 -0
  364. package/composite-elements/wcs-card-header.js.map +1 -0
  365. package/composite-elements/wcs-card-media.d.ts +11 -0
  366. package/composite-elements/wcs-card-media.js +2 -0
  367. package/composite-elements/wcs-card-media.js.map +1 -0
  368. package/composite-elements/wcs-card.d.ts +11 -0
  369. package/composite-elements/wcs-card.js +2 -0
  370. package/composite-elements/wcs-card.js.map +1 -0
  371. package/composite-elements/wcs-checkbox.d.ts +11 -0
  372. package/composite-elements/wcs-checkbox.js +2 -0
  373. package/composite-elements/wcs-checkbox.js.map +1 -0
  374. package/composite-elements/wcs-chip.d.ts +11 -0
  375. package/composite-elements/wcs-chip.js +2 -0
  376. package/composite-elements/wcs-chip.js.map +1 -0
  377. package/composite-elements/wcs-com-nav-category.d.ts +11 -0
  378. package/composite-elements/wcs-com-nav-category.js +2 -0
  379. package/composite-elements/wcs-com-nav-category.js.map +1 -0
  380. package/composite-elements/wcs-com-nav-item.d.ts +11 -0
  381. package/composite-elements/wcs-com-nav-item.js +2 -0
  382. package/composite-elements/wcs-com-nav-item.js.map +1 -0
  383. package/composite-elements/wcs-com-nav-submenu.d.ts +11 -0
  384. package/composite-elements/wcs-com-nav-submenu.js +2 -0
  385. package/composite-elements/wcs-com-nav-submenu.js.map +1 -0
  386. package/composite-elements/wcs-com-nav.d.ts +11 -0
  387. package/composite-elements/wcs-com-nav.js +2 -0
  388. package/composite-elements/wcs-com-nav.js.map +1 -0
  389. package/composite-elements/wcs-counter.d.ts +11 -0
  390. package/composite-elements/wcs-counter.js +2 -0
  391. package/composite-elements/wcs-counter.js.map +1 -0
  392. package/composite-elements/wcs-divider.d.ts +11 -0
  393. package/composite-elements/wcs-divider.js +2 -0
  394. package/composite-elements/wcs-divider.js.map +1 -0
  395. package/composite-elements/wcs-dropdown-divider.d.ts +11 -0
  396. package/composite-elements/wcs-dropdown-divider.js +2 -0
  397. package/composite-elements/wcs-dropdown-divider.js.map +1 -0
  398. package/composite-elements/wcs-dropdown-header.d.ts +11 -0
  399. package/composite-elements/wcs-dropdown-header.js +2 -0
  400. package/composite-elements/wcs-dropdown-header.js.map +1 -0
  401. package/composite-elements/wcs-dropdown-item.d.ts +11 -0
  402. package/composite-elements/wcs-dropdown-item.js +2 -0
  403. package/composite-elements/wcs-dropdown-item.js.map +1 -0
  404. package/composite-elements/wcs-dropdown.d.ts +11 -0
  405. package/composite-elements/wcs-dropdown.js +2 -0
  406. package/composite-elements/wcs-dropdown.js.map +1 -0
  407. package/composite-elements/wcs-editable-field.d.ts +11 -0
  408. package/composite-elements/wcs-editable-field.js +2 -0
  409. package/composite-elements/wcs-editable-field.js.map +1 -0
  410. package/composite-elements/wcs-error.d.ts +11 -0
  411. package/composite-elements/wcs-error.js +2 -0
  412. package/composite-elements/wcs-error.js.map +1 -0
  413. package/composite-elements/wcs-field-content.d.ts +11 -0
  414. package/composite-elements/wcs-field-content.js +2 -0
  415. package/composite-elements/wcs-field-content.js.map +1 -0
  416. package/composite-elements/wcs-field-label.d.ts +11 -0
  417. package/composite-elements/wcs-field-label.js +2 -0
  418. package/composite-elements/wcs-field-label.js.map +1 -0
  419. package/composite-elements/wcs-field.d.ts +11 -0
  420. package/composite-elements/wcs-field.js +2 -0
  421. package/composite-elements/wcs-field.js.map +1 -0
  422. package/composite-elements/wcs-footer.d.ts +11 -0
  423. package/composite-elements/wcs-footer.js +2 -0
  424. package/composite-elements/wcs-footer.js.map +1 -0
  425. package/composite-elements/wcs-form-field.d.ts +11 -0
  426. package/composite-elements/wcs-form-field.js +2 -0
  427. package/composite-elements/wcs-form-field.js.map +1 -0
  428. package/composite-elements/wcs-galactic-menu.d.ts +11 -0
  429. package/composite-elements/wcs-galactic-menu.js +2 -0
  430. package/composite-elements/wcs-galactic-menu.js.map +1 -0
  431. package/composite-elements/wcs-galactic.d.ts +11 -0
  432. package/composite-elements/wcs-galactic.js +2 -0
  433. package/composite-elements/wcs-galactic.js.map +1 -0
  434. package/composite-elements/wcs-grid-column.d.ts +11 -0
  435. package/composite-elements/wcs-grid-column.js +2 -0
  436. package/composite-elements/wcs-grid-column.js.map +1 -0
  437. package/composite-elements/wcs-grid-custom-cell.d.ts +11 -0
  438. package/composite-elements/wcs-grid-custom-cell.js +2 -0
  439. package/composite-elements/wcs-grid-custom-cell.js.map +1 -0
  440. package/composite-elements/wcs-grid-pagination.d.ts +11 -0
  441. package/composite-elements/wcs-grid-pagination.js +2 -0
  442. package/composite-elements/wcs-grid-pagination.js.map +1 -0
  443. package/composite-elements/wcs-grid.d.ts +11 -0
  444. package/composite-elements/wcs-grid.js +2 -0
  445. package/composite-elements/wcs-grid.js.map +1 -0
  446. package/composite-elements/wcs-header.d.ts +11 -0
  447. package/composite-elements/wcs-header.js +2 -0
  448. package/composite-elements/wcs-header.js.map +1 -0
  449. package/composite-elements/wcs-hint.d.ts +11 -0
  450. package/composite-elements/wcs-hint.js +2 -0
  451. package/composite-elements/wcs-hint.js.map +1 -0
  452. package/composite-elements/wcs-horizontal-stepper.d.ts +11 -0
  453. package/composite-elements/wcs-horizontal-stepper.js +2 -0
  454. package/composite-elements/wcs-horizontal-stepper.js.map +1 -0
  455. package/composite-elements/wcs-icon.d.ts +11 -0
  456. package/composite-elements/wcs-icon.js +2 -0
  457. package/composite-elements/wcs-icon.js.map +1 -0
  458. package/composite-elements/wcs-input.d.ts +11 -0
  459. package/composite-elements/wcs-input.js +2 -0
  460. package/composite-elements/wcs-input.js.map +1 -0
  461. package/composite-elements/wcs-label.d.ts +11 -0
  462. package/composite-elements/wcs-label.js +2 -0
  463. package/composite-elements/wcs-label.js.map +1 -0
  464. package/composite-elements/wcs-list-item-properties.d.ts +11 -0
  465. package/composite-elements/wcs-list-item-properties.js +2 -0
  466. package/composite-elements/wcs-list-item-properties.js.map +1 -0
  467. package/composite-elements/wcs-list-item-property.d.ts +11 -0
  468. package/composite-elements/wcs-list-item-property.js +2 -0
  469. package/composite-elements/wcs-list-item-property.js.map +1 -0
  470. package/composite-elements/wcs-list-item.d.ts +11 -0
  471. package/composite-elements/wcs-list-item.js +2 -0
  472. package/composite-elements/wcs-list-item.js.map +1 -0
  473. package/composite-elements/wcs-mat-icon.d.ts +11 -0
  474. package/composite-elements/wcs-mat-icon.js +2 -0
  475. package/composite-elements/wcs-mat-icon.js.map +1 -0
  476. package/composite-elements/wcs-modal.d.ts +11 -0
  477. package/composite-elements/wcs-modal.js +2 -0
  478. package/composite-elements/wcs-modal.js.map +1 -0
  479. package/composite-elements/wcs-native-select.d.ts +11 -0
  480. package/composite-elements/wcs-native-select.js +2 -0
  481. package/composite-elements/wcs-native-select.js.map +1 -0
  482. package/composite-elements/wcs-nav-item.d.ts +11 -0
  483. package/composite-elements/wcs-nav-item.js +2 -0
  484. package/composite-elements/wcs-nav-item.js.map +1 -0
  485. package/composite-elements/wcs-nav.d.ts +11 -0
  486. package/composite-elements/wcs-nav.js +2 -0
  487. package/composite-elements/wcs-nav.js.map +1 -0
  488. package/composite-elements/wcs-progress-bar.d.ts +11 -0
  489. package/composite-elements/wcs-progress-bar.js +2 -0
  490. package/composite-elements/wcs-progress-bar.js.map +1 -0
  491. package/composite-elements/wcs-progress-radial.d.ts +11 -0
  492. package/composite-elements/wcs-progress-radial.js +2 -0
  493. package/composite-elements/wcs-progress-radial.js.map +1 -0
  494. package/composite-elements/wcs-radio-group.d.ts +11 -0
  495. package/composite-elements/wcs-radio-group.js +2 -0
  496. package/composite-elements/wcs-radio-group.js.map +1 -0
  497. package/composite-elements/wcs-radio.d.ts +11 -0
  498. package/composite-elements/wcs-radio.js +2 -0
  499. package/composite-elements/wcs-radio.js.map +1 -0
  500. package/composite-elements/wcs-select-option.d.ts +11 -0
  501. package/composite-elements/wcs-select-option.js +2 -0
  502. package/composite-elements/wcs-select-option.js.map +1 -0
  503. package/composite-elements/wcs-select.d.ts +11 -0
  504. package/composite-elements/wcs-select.js +2 -0
  505. package/composite-elements/wcs-select.js.map +1 -0
  506. package/composite-elements/wcs-skeleton-circle.d.ts +11 -0
  507. package/composite-elements/wcs-skeleton-circle.js +2 -0
  508. package/composite-elements/wcs-skeleton-circle.js.map +1 -0
  509. package/composite-elements/wcs-skeleton-rectangle.d.ts +11 -0
  510. package/composite-elements/wcs-skeleton-rectangle.js +2 -0
  511. package/composite-elements/wcs-skeleton-rectangle.js.map +1 -0
  512. package/composite-elements/wcs-skeleton-text.d.ts +11 -0
  513. package/composite-elements/wcs-skeleton-text.js +2 -0
  514. package/composite-elements/wcs-skeleton-text.js.map +1 -0
  515. package/composite-elements/wcs-spinner.d.ts +11 -0
  516. package/composite-elements/wcs-spinner.js +2 -0
  517. package/composite-elements/wcs-spinner.js.map +1 -0
  518. package/composite-elements/wcs-switch.d.ts +11 -0
  519. package/composite-elements/wcs-switch.js +2 -0
  520. package/composite-elements/wcs-switch.js.map +1 -0
  521. package/composite-elements/wcs-tab.d.ts +11 -0
  522. package/composite-elements/wcs-tab.js +2 -0
  523. package/composite-elements/wcs-tab.js.map +1 -0
  524. package/composite-elements/wcs-tabs.d.ts +11 -0
  525. package/composite-elements/wcs-tabs.js +2 -0
  526. package/composite-elements/wcs-tabs.js.map +1 -0
  527. package/composite-elements/wcs-textarea.d.ts +11 -0
  528. package/composite-elements/wcs-textarea.js +2 -0
  529. package/composite-elements/wcs-textarea.js.map +1 -0
  530. package/composite-elements/wcs-tooltip.d.ts +11 -0
  531. package/composite-elements/wcs-tooltip.js +7 -0
  532. package/composite-elements/wcs-tooltip.js.map +1 -0
  533. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -1
  534. package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
  535. package/dist/cjs/wcs-accordion.cjs.entry.js +5 -1
  536. package/dist/cjs/wcs-accordion.cjs.entry.js.map +1 -1
  537. package/dist/collection/components/accordion/accordion.e2e.playwright.js +62 -0
  538. package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -1
  539. package/dist/collection/components/accordion/accordion.js +5 -1
  540. package/dist/collection/components/accordion/accordion.js.map +1 -1
  541. package/dist/collection/components/accordion-panel/accordion-panel.js +2 -1
  542. package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
  543. package/dist/esm/wcs-accordion-panel.entry.js +2 -1
  544. package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
  545. package/dist/esm/wcs-accordion.entry.js +5 -1
  546. package/dist/esm/wcs-accordion.entry.js.map +1 -1
  547. package/dist/types/components/accordion/accordion.d.ts +1 -0
  548. package/dist/wcs/{p-f2eeb249.entry.js → p-2329af04.entry.js} +2 -2
  549. package/dist/wcs/{p-f2eeb249.entry.js.map → p-2329af04.entry.js.map} +1 -1
  550. package/dist/wcs/p-5d598d35.entry.js +2 -0
  551. package/dist/wcs/p-5d598d35.entry.js.map +1 -0
  552. package/dist/wcs/wcs.esm.js +1 -1
  553. package/package.json +1 -1
  554. package/dist/wcs/p-828b45b4.entry.js +0 -2
  555. package/dist/wcs/p-828b45b4.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"file":"wcs-accordion-panel.entry.cjs.js","mappings":";;;;;;;;AAAA,MAAM,iBAAiB,GAAG,khJAAkhJ,CAAC;AAC7iJ,gCAAe,iBAAiB;;ACehC,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAqC3C,cAAc;;;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjBA,6BAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9BC,yBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;KACL;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5EC,4BAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAGD,MAAM,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,MAAM;QAIF,QACIC,QAACC,UAAI,uDACDD,oGAAuB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAE,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB,GAChCA,mEAAM,IAAI,EAAC,QAAQ,GAAE,EACrBA,mEAAM,KAAK,EAAC,eAAe,IACtB,CAAC,IAAI,CAAC,cAAc,KACjBA,qEAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAQ,CAAC,EAEnDA,QAACE,uBAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF,EACTF,kEAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,IAC7BA,mEAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,EACT;KACL;;;;;;;;;;","names":["inheritAriaAttributes","inheritAttributes","setOrRemoveAttribute","h","Host","SelectArrow"],"sources":["src/components/accordion-panel/accordion-panel.scss?tag=wcs-accordion-panel&encapsulation=shadow","src/components/accordion-panel/accordion-panel.tsx"],"sourcesContent":["@mixin accordion-panel-focus {\n outline: var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus);\n}\n\n:host {\n display: flex;\n flex-direction: column;\n cursor: pointer;\n\n --wcs-accordion-panel-color-default: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-highlight: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-hover: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-press: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-action-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-accordion-panel-action-color-highlight: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-action-color-hover: var(--wcs-semantic-color-foreground-action-secondary-hover);\n --wcs-accordion-panel-action-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-accordion-panel-background-color-highlight: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-accordion-panel-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-accordion-panel-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n\n --wcs-accordion-panel-header-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-accordion-panel-header-font-size: var(--wcs-semantic-font-size-heading-6);\n --wcs-accordion-panel-header-gap: calc(3 * var(--wcs-semantic-spacing-base));\n --wcs-accordion-panel-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-accordion-panel-border-radius-open: var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;\n --wcs-accordion-panel-padding-vertical: var(--wcs-semantic-spacing-large);\n --wcs-accordion-panel-padding-horizontal: calc(var(--wcs-semantic-spacing-base) * 3);\n\n --wcs-accordion-panel-header-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width-focus: var(--wcs-semantic-border-width-large);\n --wcs-accordion-panel-border-color: var(--wcs-semantic-color-border-secondary);\n\n --wcs-accordion-panel-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-accordion-panel-border-style-focus: var(--wcs-semantic-border-style-focus-base);\n\n --wcs-accordion-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n border: var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);\n border-radius: var(--wcs-accordion-panel-border-radius);\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wcs-accordion-panel-header-gap);\n padding: var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);\n border-radius: var(--wcs-accordion-panel-border-radius);\n font-weight: var(--wcs-accordion-panel-header-font-weight);\n // TODO replace px to rem\n font-size: var(--wcs-accordion-panel-header-font-size);\n font-family: var(--wcs-font-sans-serif);\n color: var(--wcs-accordion-panel-color-default);\n background-color: var(--wcs-accordion-panel-background-color-default);\n border: none;\n\n transition: background-color var(--wcs-accordion-transition-duration);\n\n @media (forced-colors: active) {\n // for WHCM\n border: var(--wcs-accordion-panel-header-border-width) solid ButtonBorder;\n }\n &:focus-visible {\n @include accordion-panel-focus;\n }\n\n &:hover {\n cursor: pointer;\n\n color: var(--wcs-accordion-panel-color-hover);\n background-color: var(--wcs-accordion-panel-background-color-hover);\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-hover);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-hover);\n }\n }\n }\n\n &:active {\n background-color: var(--wcs-accordion-panel-background-color-press);\n }\n }\n\n .header-action {\n display: flex;\n align-items: center;\n user-select: none;\n\n color: var(--wcs-accordion-panel-action-color-default);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-default);\n }\n }\n\n .content {\n display: none;\n }\n\n}\n\n:host([open]) {\n margin-bottom: 0;\n\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n }\n\n .content {\n display: block;\n }\n\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n padding-bottom: 0;\n }\n\n .content {\n border-radius: 0 0 var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius);\n margin-bottom: var(--wcs-);\n background-color: var(--wcs-accordion-panel-background-color-default);\n }\n }\n */\n\n &:host([highlight]) {\n .header {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-highlight);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-highlight);\n }\n }\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .content {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n }\n */\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"wcs-accordion-panel.entry.cjs.js","mappings":";;;;;;;;AAAA,MAAM,iBAAiB,GAAG,khJAAkhJ,CAAC;AAC7iJ,gCAAe,iBAAiB;;ACehC,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAqC3C,cAAc;;;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjBA,6BAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9BC,yBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5EC,4BAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAGD,MAAM,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,MAAM;QAIF,QACIC,QAACC,UAAI,uDACDD,oGAAuB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAE,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB,GAChCA,mEAAM,IAAI,EAAC,QAAQ,GAAE,EACrBA,mEAAM,KAAK,EAAC,eAAe,IACtB,CAAC,IAAI,CAAC,cAAc,KACjBA,qEAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAQ,CAAC,EAEnDA,QAACE,uBAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF,EACTF,kEAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,IAC7BA,mEAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,EACT;KACL;;;;;;;;;;","names":["inheritAriaAttributes","inheritAttributes","setOrRemoveAttribute","h","Host","SelectArrow"],"sources":["src/components/accordion-panel/accordion-panel.scss?tag=wcs-accordion-panel&encapsulation=shadow","src/components/accordion-panel/accordion-panel.tsx"],"sourcesContent":["@mixin accordion-panel-focus {\n outline: var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus);\n}\n\n:host {\n display: flex;\n flex-direction: column;\n cursor: pointer;\n\n --wcs-accordion-panel-color-default: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-highlight: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-hover: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-press: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-action-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-accordion-panel-action-color-highlight: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-action-color-hover: var(--wcs-semantic-color-foreground-action-secondary-hover);\n --wcs-accordion-panel-action-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-accordion-panel-background-color-highlight: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-accordion-panel-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-accordion-panel-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n\n --wcs-accordion-panel-header-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-accordion-panel-header-font-size: var(--wcs-semantic-font-size-heading-6);\n --wcs-accordion-panel-header-gap: calc(3 * var(--wcs-semantic-spacing-base));\n --wcs-accordion-panel-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-accordion-panel-border-radius-open: var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;\n --wcs-accordion-panel-padding-vertical: var(--wcs-semantic-spacing-large);\n --wcs-accordion-panel-padding-horizontal: calc(var(--wcs-semantic-spacing-base) * 3);\n\n --wcs-accordion-panel-header-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width-focus: var(--wcs-semantic-border-width-large);\n --wcs-accordion-panel-border-color: var(--wcs-semantic-color-border-secondary);\n\n --wcs-accordion-panel-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-accordion-panel-border-style-focus: var(--wcs-semantic-border-style-focus-base);\n\n --wcs-accordion-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n border: var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);\n border-radius: var(--wcs-accordion-panel-border-radius);\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wcs-accordion-panel-header-gap);\n padding: var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);\n border-radius: var(--wcs-accordion-panel-border-radius);\n font-weight: var(--wcs-accordion-panel-header-font-weight);\n // TODO replace px to rem\n font-size: var(--wcs-accordion-panel-header-font-size);\n font-family: var(--wcs-font-sans-serif);\n color: var(--wcs-accordion-panel-color-default);\n background-color: var(--wcs-accordion-panel-background-color-default);\n border: none;\n\n transition: background-color var(--wcs-accordion-transition-duration);\n\n @media (forced-colors: active) {\n // for WHCM\n border: var(--wcs-accordion-panel-header-border-width) solid ButtonBorder;\n }\n &:focus-visible {\n @include accordion-panel-focus;\n }\n\n &:hover {\n cursor: pointer;\n\n color: var(--wcs-accordion-panel-color-hover);\n background-color: var(--wcs-accordion-panel-background-color-hover);\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-hover);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-hover);\n }\n }\n }\n\n &:active {\n background-color: var(--wcs-accordion-panel-background-color-press);\n }\n }\n\n .header-action {\n display: flex;\n align-items: center;\n user-select: none;\n\n color: var(--wcs-accordion-panel-action-color-default);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-default);\n }\n }\n\n .content {\n display: none;\n }\n\n}\n\n:host([open]) {\n margin-bottom: 0;\n\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n }\n\n .content {\n display: block;\n }\n\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n padding-bottom: 0;\n }\n\n .content {\n border-radius: 0 0 var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius);\n margin-bottom: var(--wcs-);\n background-color: var(--wcs-accordion-panel-background-color-default);\n }\n }\n */\n\n &:host([highlight]) {\n .header {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-highlight);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-highlight);\n }\n }\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .content {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n }\n */\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n this.openChange(this.open);\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -42,8 +42,12 @@ const Accordion = class {
42
42
  opt.groupContentWithHeader = this.groupContentWithHeader;
43
43
  });
44
44
  }
45
+ handleSlotChange() {
46
+ // Refresh the list of accordion panels to include dynamically added ones
47
+ this.accordionPanels = this.getAllAccordionPanelsFromHostElement();
48
+ }
45
49
  render() {
46
- return (index.h(index.Host, { key: '0f1933aeff3cc2d73e6fc5051bac74656e418a02' }, index.h("slot", { key: 'effc61fd6ac1edcb598d9bc4053363030a1fc2e9' })));
50
+ return (index.h(index.Host, { key: 'ba2036b6e1aef2af13f96172fcf39726490c09ab' }, index.h("slot", { key: '89202c68bf64011fb0f6a8b7e487934a6129c9ea', onSlotchange: this.handleSlotChange.bind(this) })));
47
51
  }
48
52
  getAllAccordionPanelsFromHostElement() {
49
53
  return Array.from(this.el.children)
@@ -1 +1 @@
1
- {"file":"wcs-accordion.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,YAAY,GAAG,6HAA6H,CAAC;AACnJ,2BAAe,YAAY;;MCWd,SAAS;;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/C;KACJ;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5C,CAAC,CAAA;KACL;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAClC,CAAC,CAAA;KACL;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAC5D,CAAC,CAAA;KACL;IAGD,MAAM;QACF,QACIA,QAACC,UAAI,uDACDD,oEAAO,CACJ,EACT;KACL;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;KAC7F;;;;IAKO,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/E;;;;;;;;;;;;","names":["h","Host"],"sources":["src/components/accordion/accordion.scss?tag=wcs-accordion&encapsulation=shadow","src/components/accordion/accordion.tsx"],"sourcesContent":[":host {\n --wcs-accordion-gap: var(--wcs-semantic-spacing-base);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-accordion-gap);\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n\n render() {\n return (\n <Host>\n <slot/>\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"],"version":3}
1
+ {"file":"wcs-accordion.entry.cjs.js","mappings":";;;;;;AAAA,MAAM,YAAY,GAAG,6HAA6H,CAAC;AACnJ,2BAAe,YAAY;;MCWd,SAAS;;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/C;KACJ;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5C,CAAC,CAAA;KACL;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAClC,CAAC,CAAA;KACL;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAC5D,CAAC,CAAA;KACL;IAEO,gBAAgB;;QAEpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;KACtE;IAED,MAAM;QACF,QACIA,QAACC,UAAI,uDACDD,mEAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CACrD,EACT;KACL;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;KAC7F;;;;IAKO,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/E;;;;;;;;;;;;","names":["h","Host"],"sources":["src/components/accordion/accordion.scss?tag=wcs-accordion&encapsulation=shadow","src/components/accordion/accordion.tsx"],"sourcesContent":[":host {\n --wcs-accordion-gap: var(--wcs-semantic-spacing-base);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-accordion-gap);\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n private handleSlotChange() {\n // Refresh the list of accordion panels to include dynamically added ones\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n }\n\n render() {\n return (\n <Host>\n <slot onSlotchange={this.handleSlotChange.bind(this)} />\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"],"version":3}
@@ -179,5 +179,67 @@ test.describe('accordion', () => {
179
179
  await expect(level2Panel).toHaveJSProperty('open', true);
180
180
  await expect(level3Panel).toHaveJSProperty('open', true);
181
181
  });
182
+ test('should close other panels when dynamically adding a new open panel', async ({ page }) => {
183
+ // Given
184
+ await setWcsContent(page, `
185
+ <wcs-accordion id="parent-accordion">
186
+ <wcs-accordion-panel id="parent-panel">
187
+ <wcs-accordion-header>Configuration générale</wcs-accordion-header>
188
+ <wcs-accordion-content>
189
+ <wcs-accordion id="nested-accordion">
190
+ <wcs-accordion-panel id="static-panel">
191
+ <wcs-accordion-header>Paramètres utilisateur</wcs-accordion-header>
192
+ <wcs-accordion-content>Gestion des préférences utilisateur</wcs-accordion-content>
193
+ </wcs-accordion-panel>
194
+ </wcs-accordion>
195
+ </wcs-accordion-content>
196
+ </wcs-accordion-panel>
197
+ </wcs-accordion>
198
+ `);
199
+ // When - Open parent panel first
200
+ const parentPanel = page.locator('#parent-panel');
201
+ await parentPanel.click();
202
+ await page.waitForChanges();
203
+ // Then
204
+ await expect(parentPanel).toHaveJSProperty('open', true);
205
+ // When - Add first dynamic panel with open=true
206
+ await page.evaluate(() => {
207
+ const nestedAccordion = document.querySelector('#nested-accordion');
208
+ const dynamicPanel1 = document.createElement('wcs-accordion-panel');
209
+ dynamicPanel1.id = 'dynamic-panel-1';
210
+ dynamicPanel1.setAttribute('open', 'true');
211
+ dynamicPanel1.innerHTML = `
212
+ <wcs-accordion-header>Panel dynamique #1</wcs-accordion-header>
213
+ <wcs-accordion-content>Contenu dynamique 1</wcs-accordion-content>
214
+ `;
215
+ nestedAccordion.appendChild(dynamicPanel1);
216
+ });
217
+ await page.waitForChanges();
218
+ const staticPanel = page.locator('#static-panel');
219
+ const dynamicPanel1 = page.locator('#dynamic-panel-1');
220
+ // Then - Static panel should be closed, dynamic panel 1 should be open
221
+ await expect(staticPanel).toHaveJSProperty('open', false);
222
+ await expect(dynamicPanel1).toHaveJSProperty('open', true);
223
+ // When - Add second dynamic panel with open=true
224
+ await page.evaluate(() => {
225
+ const nestedAccordion = document.querySelector('#nested-accordion');
226
+ const dynamicPanel2 = document.createElement('wcs-accordion-panel');
227
+ dynamicPanel2.id = 'dynamic-panel-2';
228
+ dynamicPanel2.setAttribute('open', 'true');
229
+ dynamicPanel2.innerHTML = `
230
+ <wcs-accordion-header>Panel dynamique #2</wcs-accordion-header>
231
+ <wcs-accordion-content>Contenu dynamique 2</wcs-accordion-content>
232
+ `;
233
+ nestedAccordion.appendChild(dynamicPanel2);
234
+ });
235
+ await page.waitForChanges();
236
+ const dynamicPanel2 = page.locator('#dynamic-panel-2');
237
+ // Then - Dynamic panel 1 should be closed, dynamic panel 2 should be open
238
+ await expect(staticPanel).toHaveJSProperty('open', false);
239
+ await expect(dynamicPanel1).toHaveJSProperty('open', false);
240
+ await expect(dynamicPanel2).toHaveJSProperty('open', true);
241
+ // And - Parent panel should remain open (different accordion level)
242
+ await expect(parentPanel).toHaveJSProperty('open', true);
243
+ });
182
244
  });
183
245
  //# sourceMappingURL=accordion.e2e.playwright.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\nimport { expect } from \"@playwright/test\";\n\ntest.describe('accordion', () => {\n test('should open and close accordion panels', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n });\n\n test('should close other panels when opening a new one at the same level', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When - Open first panel\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n\n // When - Open second panel\n await panels.nth(1).click();\n await page.waitForChanges();\n\n // Then - First panel should be closed\n await expect(panels.nth(0)).toHaveJSProperty('open', false);\n await expect(panels.nth(1)).toHaveJSProperty('open', true);\n });\n\n test('should not close parent accordion when opening nested accordion', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <p>Parent content</p>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Parent content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('wcs-accordion > wcs-accordion-panel');\n\n // When - Open parent panel first\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n\n // When - Open nested accordion panel\n const nestedPanels = page.locator('wcs-accordion wcs-accordion wcs-accordion-panel');\n await nestedPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then - Parent should remain open, nested panel should be open\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(nestedPanels.nth(0)).toHaveJSProperty('open', true);\n });\n\n test('should not close nested accordions when opening another parent panel', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"parent-accordion\">\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('#parent-accordion > wcs-accordion-panel');\n\n // When - Open first parent and its nested panel\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n const firstNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:first-child wcs-accordion-panel');\n await firstNestedPanel.click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true);\n\n // When - Open second parent\n await parentPanels.nth(1).click();\n await page.waitForChanges();\n\n const secondNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:nth-child(2) wcs-accordion-panel');\n\n // Then - First parent should close but nested panel state should be preserved\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', false);\n await expect(parentPanels.nth(1)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true); // Nested panel keeps its state\n await expect(secondNestedPanel).toHaveJSProperty('open', false);\n });\n\n test('should handle deeply nested accordions independently', async ({ page, }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"level1-accordion\">\n <wcs-accordion-panel id=\"level1-panel\">\n <wcs-accordion-header>Level 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level2-accordion\">\n <wcs-accordion-panel id=\"level2-panel\">\n <wcs-accordion-header>Level 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level3-accordion\">\n <wcs-accordion-panel id=\"level3-panel\">\n <wcs-accordion-header>Level 3</wcs-accordion-header>\n <wcs-accordion-content>Deep content</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n // When - Open all levels progressively\n const level1Panel = page.locator('#level1-panel');\n await level1Panel.click();\n await page.waitForChanges();\n\n const level2Panel = page.locator('#level2-panel');\n await level2Panel.click();\n await page.waitForChanges();\n\n const level3Panel = page.locator('#level3-panel');\n await level3Panel.click();\n await page.waitForChanges();\n\n // Then - All levels should be open\n await expect(level1Panel).toHaveJSProperty('open', true);\n await expect(level2Panel).toHaveJSProperty('open', true);\n await expect(level3Panel).toHaveJSProperty('open', true);\n });\n});\n"]}
1
+ {"version":3,"file":"accordion.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.e2e.playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAW,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IAC5B,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QACjF,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;SAWzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAEnD,OAAO;QACP,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO;QACP,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAC7G,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;SAWzB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAEnD,0BAA0B;QAC1B,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO;QACP,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC3D,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE5D,2BAA2B;QAC3B,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,sCAAsC;QACtC,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAC1G,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;SAuBzB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;QAEzE,iCAAiC;QACjC,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO;QACP,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEjE,qCAAqC;QACrC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;QACrF,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,gEAAgE;QAChE,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sEAAsE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAC/G,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;SAyBzB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAE7E,gDAAgD;QAChD,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC;QAC7G,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO;QACP,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE9D,4BAA4B;QAC5B,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAClC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;QAE/G,8EAA8E;QAC9E,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAClE,MAAM,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,+BAA+B;QAC9F,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,IAAI,GAAI,EAAE,EAAE;QAC9E,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;SAqBzB,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,mCAAmC;QACnC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;QAC7G,QAAQ;QACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;;;;;;;;;SAczB,CAAC,CAAC;QAEH,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,OAAO;QACP,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEzD,gDAAgD;QAChD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACpE,aAAa,CAAC,EAAE,GAAG,iBAAiB,CAAC;YACrC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,aAAa,CAAC,SAAS,GAAG;;;aAGzB,CAAC;YACF,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEvD,uEAAuE;QACvE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3D,iDAAiD;QACjD,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACrB,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;YACpE,aAAa,CAAC,EAAE,GAAG,iBAAiB,CAAC;YACrC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3C,aAAa,CAAC,SAAS,GAAG;;;aAGzB,CAAC;YACF,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAE5B,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEvD,0EAA0E;QAC1E,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC5D,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAE3D,oEAAoE;QACpE,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\nimport { expect } from \"@playwright/test\";\n\ntest.describe('accordion', () => {\n test('should open and close accordion panels', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n });\n\n test('should close other panels when opening a new one at the same level', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const panels = page.locator('wcs-accordion-panel');\n\n // When - Open first panel\n await panels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(panels.nth(0)).toHaveJSProperty('open', true);\n await expect(panels.nth(1)).toHaveJSProperty('open', false);\n\n // When - Open second panel\n await panels.nth(1).click();\n await page.waitForChanges();\n\n // Then - First panel should be closed\n await expect(panels.nth(0)).toHaveJSProperty('open', false);\n await expect(panels.nth(1)).toHaveJSProperty('open', true);\n });\n\n test('should not close parent accordion when opening nested accordion', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <p>Parent content</p>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Parent content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('wcs-accordion > wcs-accordion-panel');\n\n // When - Open parent panel first\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n\n // When - Open nested accordion panel\n const nestedPanels = page.locator('wcs-accordion wcs-accordion wcs-accordion-panel');\n await nestedPanels.nth(0).click();\n await page.waitForChanges();\n\n // Then - Parent should remain open, nested panel should be open\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(nestedPanels.nth(0)).toHaveJSProperty('open', true);\n });\n\n test('should not close nested accordions when opening another parent panel', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"parent-accordion\">\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 1</wcs-accordion-header>\n <wcs-accordion-content>Child content 1</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n <wcs-accordion-panel>\n <wcs-accordion-header>Parent Panel 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion>\n <wcs-accordion-panel>\n <wcs-accordion-header>Child Panel 2</wcs-accordion-header>\n <wcs-accordion-content>Child content 2</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n const parentPanels = page.locator('#parent-accordion > wcs-accordion-panel');\n\n // When - Open first parent and its nested panel\n await parentPanels.nth(0).click();\n await page.waitForChanges();\n\n const firstNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:first-child wcs-accordion-panel');\n await firstNestedPanel.click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true);\n\n // When - Open second parent\n await parentPanels.nth(1).click();\n await page.waitForChanges();\n\n const secondNestedPanel = page.locator('wcs-accordion > wcs-accordion-panel:nth-child(2) wcs-accordion-panel');\n\n // Then - First parent should close but nested panel state should be preserved\n await expect(parentPanels.nth(0)).toHaveJSProperty('open', false);\n await expect(parentPanels.nth(1)).toHaveJSProperty('open', true);\n await expect(firstNestedPanel).toHaveJSProperty('open', true); // Nested panel keeps its state\n await expect(secondNestedPanel).toHaveJSProperty('open', false);\n });\n\n test('should handle deeply nested accordions independently', async ({ page, }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"level1-accordion\">\n <wcs-accordion-panel id=\"level1-panel\">\n <wcs-accordion-header>Level 1</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level2-accordion\">\n <wcs-accordion-panel id=\"level2-panel\">\n <wcs-accordion-header>Level 2</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"level3-accordion\">\n <wcs-accordion-panel id=\"level3-panel\">\n <wcs-accordion-header>Level 3</wcs-accordion-header>\n <wcs-accordion-content>Deep content</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n // When - Open all levels progressively\n const level1Panel = page.locator('#level1-panel');\n await level1Panel.click();\n await page.waitForChanges();\n\n const level2Panel = page.locator('#level2-panel');\n await level2Panel.click();\n await page.waitForChanges();\n\n const level3Panel = page.locator('#level3-panel');\n await level3Panel.click();\n await page.waitForChanges();\n\n // Then - All levels should be open\n await expect(level1Panel).toHaveJSProperty('open', true);\n await expect(level2Panel).toHaveJSProperty('open', true);\n await expect(level3Panel).toHaveJSProperty('open', true);\n });\n\n test('should close other panels when dynamically adding a new open panel', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-accordion id=\"parent-accordion\">\n <wcs-accordion-panel id=\"parent-panel\">\n <wcs-accordion-header>Configuration générale</wcs-accordion-header>\n <wcs-accordion-content>\n <wcs-accordion id=\"nested-accordion\">\n <wcs-accordion-panel id=\"static-panel\">\n <wcs-accordion-header>Paramètres utilisateur</wcs-accordion-header>\n <wcs-accordion-content>Gestion des préférences utilisateur</wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n </wcs-accordion-content>\n </wcs-accordion-panel>\n </wcs-accordion>\n `);\n\n // When - Open parent panel first\n const parentPanel = page.locator('#parent-panel');\n await parentPanel.click();\n await page.waitForChanges();\n\n // Then\n await expect(parentPanel).toHaveJSProperty('open', true);\n\n // When - Add first dynamic panel with open=true\n await page.evaluate(() => {\n const nestedAccordion = document.querySelector('#nested-accordion');\n const dynamicPanel1 = document.createElement('wcs-accordion-panel');\n dynamicPanel1.id = 'dynamic-panel-1';\n dynamicPanel1.setAttribute('open', 'true');\n dynamicPanel1.innerHTML = `\n <wcs-accordion-header>Panel dynamique #1</wcs-accordion-header>\n <wcs-accordion-content>Contenu dynamique 1</wcs-accordion-content>\n `;\n nestedAccordion.appendChild(dynamicPanel1);\n });\n await page.waitForChanges();\n\n const staticPanel = page.locator('#static-panel');\n const dynamicPanel1 = page.locator('#dynamic-panel-1');\n\n // Then - Static panel should be closed, dynamic panel 1 should be open\n await expect(staticPanel).toHaveJSProperty('open', false);\n await expect(dynamicPanel1).toHaveJSProperty('open', true);\n\n // When - Add second dynamic panel with open=true\n await page.evaluate(() => {\n const nestedAccordion = document.querySelector('#nested-accordion');\n const dynamicPanel2 = document.createElement('wcs-accordion-panel');\n dynamicPanel2.id = 'dynamic-panel-2';\n dynamicPanel2.setAttribute('open', 'true');\n dynamicPanel2.innerHTML = `\n <wcs-accordion-header>Panel dynamique #2</wcs-accordion-header>\n <wcs-accordion-content>Contenu dynamique 2</wcs-accordion-content>\n `;\n nestedAccordion.appendChild(dynamicPanel2);\n });\n await page.waitForChanges();\n\n const dynamicPanel2 = page.locator('#dynamic-panel-2');\n\n // Then - Dynamic panel 1 should be closed, dynamic panel 2 should be open\n await expect(staticPanel).toHaveJSProperty('open', false);\n await expect(dynamicPanel1).toHaveJSProperty('open', false);\n await expect(dynamicPanel2).toHaveJSProperty('open', true);\n\n // And - Parent panel should remain open (different accordion level)\n await expect(parentPanel).toHaveJSProperty('open', true);\n });\n});\n"]}
@@ -38,8 +38,12 @@ export class Accordion {
38
38
  opt.groupContentWithHeader = this.groupContentWithHeader;
39
39
  });
40
40
  }
41
+ handleSlotChange() {
42
+ // Refresh the list of accordion panels to include dynamically added ones
43
+ this.accordionPanels = this.getAllAccordionPanelsFromHostElement();
44
+ }
41
45
  render() {
42
- return (h(Host, { key: '0f1933aeff3cc2d73e6fc5051bac74656e418a02' }, h("slot", { key: 'effc61fd6ac1edcb598d9bc4053363030a1fc2e9' })));
46
+ return (h(Host, { key: 'ba2036b6e1aef2af13f96172fcf39726490c09ab' }, h("slot", { key: '89202c68bf64011fb0f6a8b7e487934a6129c9ea', onSlotchange: this.handleSlotChange.bind(this) })));
43
47
  }
44
48
  getAllAccordionPanelsFromHostElement() {
45
49
  return Array.from(this.el.children)
@@ -1 +1 @@
1
- {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjF;;;;GAIG;AAMH,MAAM,OAAO,SAAS;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACxC,CAAC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAA;IACN,CAAC;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC7D,CAAC,CAAC,CAAA;IACN,CAAC;IAGD,MAAM;QACF,OAAO,CACH,EAAC,IAAI;YACD,8DAAO,CACJ,CACV,CAAC;IACN,CAAC;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n\n render() {\n return (\n <Host>\n <slot/>\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"]}
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../../src/components/accordion/accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEjF;;;;GAIG;AAMH,MAAM,OAAO,SAAS;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACxC,CAAC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAA;IACN,CAAC;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC,EAAE,EAAE;YAC/D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;QAC7D,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,gBAAgB;QACpB,yEAAyE;QACzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM;QACF,OAAO,CACH,EAAC,IAAI;YACD,6DAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CACrD,CACV,CAAC;IACN,CAAC;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n private handleSlotChange() {\n // Refresh the list of accordion panels to include dynamically added ones\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n }\n\n render() {\n return (\n <Host>\n <slot onSlotchange={this.handleSlotChange.bind(this)} />\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"]}
@@ -45,6 +45,7 @@ export class AccordionPanel {
45
45
  }
46
46
  componentWillLoad() {
47
47
  this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS));
48
+ this.openChange(this.open);
48
49
  }
49
50
  async setAriaAttribute(attr, value) {
50
51
  setOrRemoveAttribute(this.nativeButton, attr, value);
@@ -53,7 +54,7 @@ export class AccordionPanel {
53
54
  this.open = false;
54
55
  }
55
56
  render() {
56
- return (h(Host, { key: 'bcd77b8240481d974555978566472aa28fd374d4' }, h("button", Object.assign({ key: '5fde3c3d7fe95a9a685ef3b9f03b0344fdf7d1be', "aria-expanded": this.open ? "true" : "false", "aria-controls": "content", class: "header", ref: (el) => this.nativeButton = el, onClick: () => this.open = !this.open }, this.inheritedAttributes), h("slot", { key: '05bd17435fa8821e26d7df49305f2dd331783fb4', name: "header" }), h("span", { key: 'a25b3acc00d4c00675fadfdbabb3c6173d0b9efa', class: "header-action" }, !this.hideActionText && (h("span", { key: '5979042236883a5181471bad831dbe90d7518047' }, this.open ? 'Fermez' : 'Ouvrez')), h(SelectArrow, { key: '8f918ddaef3b7d01c271ce39e0ffe614af33fe8e', up: this.open }))), h("div", { key: '594f012cfe62aa5eb1d8cd2184af7a87ff9f3adb', class: "content", id: "content" }, h("slot", { key: '040d3ba0ec7d879341fc3c7a563f1b3b84659564', name: "content" }))));
57
+ return (h(Host, { key: 'e8a0d26ab4355bad7a351a672de03a9be460db41' }, h("button", Object.assign({ key: '8a8b6657ffe8508fa8051e836289e262c248e20d', "aria-expanded": this.open ? "true" : "false", "aria-controls": "content", class: "header", ref: (el) => this.nativeButton = el, onClick: () => this.open = !this.open }, this.inheritedAttributes), h("slot", { key: '7addb6db5a516834dc2f27b7b00b655aa228548e', name: "header" }), h("span", { key: 'f97d43a2c46ea36fb19aacc35744f60abf3467ce', class: "header-action" }, !this.hideActionText && (h("span", { key: 'f40a6b43deccc8a4436d8f267b5763cb75a8c074' }, this.open ? 'Fermez' : 'Ouvrez')), h(SelectArrow, { key: '28f6eb62c4e99c4d5c82afffc222c07e65ac30a2', up: this.open }))), h("div", { key: '7950a5031c2b6319054bb237be7b5b5a709158cd', class: "content", id: "content" }, h("slot", { key: 'bddb7506e586b90552ce6211418d7d2852a431f1', name: "content" }))));
57
58
  }
58
59
  static get is() { return "wcs-accordion-panel"; }
59
60
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-panel.js","sourceRoot":"","sources":["../../../src/components/accordion-panel/accordion-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,MAAM,OAAO,cAAc;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAGD,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,MAAM;QAIF,OAAO,CACH,EAAC,IAAI;YACD,8FAAuB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB;gBAChC,6DAAM,IAAI,EAAC,QAAQ,GAAE;gBACrB,6DAAM,KAAK,EAAC,eAAe;oBACtB,CAAC,IAAI,CAAC,cAAc,IAAI,CACrB,+DAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAQ,CAAC;oBAEnD,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF;YACT,4DAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS;gBAC7B,6DAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"accordion-panel.js","sourceRoot":"","sources":["../../../src/components/accordion-panel/accordion-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAET,OAAO,EACP,KAAK,EAEL,CAAC,EACD,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,KAAK,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAErG,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,MAAM,OAAO,cAAc;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAGD,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,MAAM;QAIF,OAAO,CACH,EAAC,IAAI;YACD,8FAAuB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB;gBAChC,6DAAM,IAAI,EAAC,QAAQ,GAAE;gBACrB,6DAAM,KAAK,EAAC,eAAe;oBACtB,CAAC,IAAI,CAAC,cAAc,IAAI,CACrB,+DAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAQ,CAAC;oBAEnD,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF;YACT,4DAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS;gBAC7B,6DAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n this.openChange(this.open);\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -21,6 +21,7 @@ const AccordionPanel = class {
21
21
  }
22
22
  componentWillLoad() {
23
23
  this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS));
24
+ this.openChange(this.open);
24
25
  }
25
26
  async setAriaAttribute(attr, value) {
26
27
  setOrRemoveAttribute(this.nativeButton, attr, value);
@@ -29,7 +30,7 @@ const AccordionPanel = class {
29
30
  this.open = false;
30
31
  }
31
32
  render() {
32
- return (h(Host, { key: 'bcd77b8240481d974555978566472aa28fd374d4' }, h("button", Object.assign({ key: '5fde3c3d7fe95a9a685ef3b9f03b0344fdf7d1be', "aria-expanded": this.open ? "true" : "false", "aria-controls": "content", class: "header", ref: (el) => this.nativeButton = el, onClick: () => this.open = !this.open }, this.inheritedAttributes), h("slot", { key: '05bd17435fa8821e26d7df49305f2dd331783fb4', name: "header" }), h("span", { key: 'a25b3acc00d4c00675fadfdbabb3c6173d0b9efa', class: "header-action" }, !this.hideActionText && (h("span", { key: '5979042236883a5181471bad831dbe90d7518047' }, this.open ? 'Fermez' : 'Ouvrez')), h(SelectArrow, { key: '8f918ddaef3b7d01c271ce39e0ffe614af33fe8e', up: this.open }))), h("div", { key: '594f012cfe62aa5eb1d8cd2184af7a87ff9f3adb', class: "content", id: "content" }, h("slot", { key: '040d3ba0ec7d879341fc3c7a563f1b3b84659564', name: "content" }))));
33
+ return (h(Host, { key: 'e8a0d26ab4355bad7a351a672de03a9be460db41' }, h("button", Object.assign({ key: '8a8b6657ffe8508fa8051e836289e262c248e20d', "aria-expanded": this.open ? "true" : "false", "aria-controls": "content", class: "header", ref: (el) => this.nativeButton = el, onClick: () => this.open = !this.open }, this.inheritedAttributes), h("slot", { key: '7addb6db5a516834dc2f27b7b00b655aa228548e', name: "header" }), h("span", { key: 'f97d43a2c46ea36fb19aacc35744f60abf3467ce', class: "header-action" }, !this.hideActionText && (h("span", { key: 'f40a6b43deccc8a4436d8f267b5763cb75a8c074' }, this.open ? 'Fermez' : 'Ouvrez')), h(SelectArrow, { key: '28f6eb62c4e99c4d5c82afffc222c07e65ac30a2', up: this.open }))), h("div", { key: '7950a5031c2b6319054bb237be7b5b5a709158cd', class: "content", id: "content" }, h("slot", { key: 'bddb7506e586b90552ce6211418d7d2852a431f1', name: "content" }))));
33
34
  }
34
35
  get el() { return getElement(this); }
35
36
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"wcs-accordion-panel.entry.js","mappings":";;;;AAAA,MAAM,iBAAiB,GAAG,khJAAkhJ,CAAC;AAC7iJ,gCAAe,iBAAiB;;ACehC,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAqC3C,cAAc;;;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;KACL;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAGD,MAAM,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,MAAM;QAIF,QACI,EAAC,IAAI,uDACD,8FAAuB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAE,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB,GAChC,6DAAM,IAAI,EAAC,QAAQ,GAAE,EACrB,6DAAM,KAAK,EAAC,eAAe,IACtB,CAAC,IAAI,CAAC,cAAc,KACjB,+DAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAQ,CAAC,EAEnD,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF,EACT,4DAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,IAC7B,6DAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,EACT;KACL;;;;;;;;;;","names":[],"sources":["src/components/accordion-panel/accordion-panel.scss?tag=wcs-accordion-panel&encapsulation=shadow","src/components/accordion-panel/accordion-panel.tsx"],"sourcesContent":["@mixin accordion-panel-focus {\n outline: var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus);\n}\n\n:host {\n display: flex;\n flex-direction: column;\n cursor: pointer;\n\n --wcs-accordion-panel-color-default: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-highlight: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-hover: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-press: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-action-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-accordion-panel-action-color-highlight: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-action-color-hover: var(--wcs-semantic-color-foreground-action-secondary-hover);\n --wcs-accordion-panel-action-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-accordion-panel-background-color-highlight: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-accordion-panel-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-accordion-panel-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n\n --wcs-accordion-panel-header-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-accordion-panel-header-font-size: var(--wcs-semantic-font-size-heading-6);\n --wcs-accordion-panel-header-gap: calc(3 * var(--wcs-semantic-spacing-base));\n --wcs-accordion-panel-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-accordion-panel-border-radius-open: var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;\n --wcs-accordion-panel-padding-vertical: var(--wcs-semantic-spacing-large);\n --wcs-accordion-panel-padding-horizontal: calc(var(--wcs-semantic-spacing-base) * 3);\n\n --wcs-accordion-panel-header-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width-focus: var(--wcs-semantic-border-width-large);\n --wcs-accordion-panel-border-color: var(--wcs-semantic-color-border-secondary);\n\n --wcs-accordion-panel-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-accordion-panel-border-style-focus: var(--wcs-semantic-border-style-focus-base);\n\n --wcs-accordion-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n border: var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);\n border-radius: var(--wcs-accordion-panel-border-radius);\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wcs-accordion-panel-header-gap);\n padding: var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);\n border-radius: var(--wcs-accordion-panel-border-radius);\n font-weight: var(--wcs-accordion-panel-header-font-weight);\n // TODO replace px to rem\n font-size: var(--wcs-accordion-panel-header-font-size);\n font-family: var(--wcs-font-sans-serif);\n color: var(--wcs-accordion-panel-color-default);\n background-color: var(--wcs-accordion-panel-background-color-default);\n border: none;\n\n transition: background-color var(--wcs-accordion-transition-duration);\n\n @media (forced-colors: active) {\n // for WHCM\n border: var(--wcs-accordion-panel-header-border-width) solid ButtonBorder;\n }\n &:focus-visible {\n @include accordion-panel-focus;\n }\n\n &:hover {\n cursor: pointer;\n\n color: var(--wcs-accordion-panel-color-hover);\n background-color: var(--wcs-accordion-panel-background-color-hover);\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-hover);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-hover);\n }\n }\n }\n\n &:active {\n background-color: var(--wcs-accordion-panel-background-color-press);\n }\n }\n\n .header-action {\n display: flex;\n align-items: center;\n user-select: none;\n\n color: var(--wcs-accordion-panel-action-color-default);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-default);\n }\n }\n\n .content {\n display: none;\n }\n\n}\n\n:host([open]) {\n margin-bottom: 0;\n\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n }\n\n .content {\n display: block;\n }\n\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n padding-bottom: 0;\n }\n\n .content {\n border-radius: 0 0 var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius);\n margin-bottom: var(--wcs-);\n background-color: var(--wcs-accordion-panel-background-color-default);\n }\n }\n */\n\n &:host([highlight]) {\n .header {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-highlight);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-highlight);\n }\n }\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .content {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n }\n */\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"wcs-accordion-panel.entry.js","mappings":";;;;AAAA,MAAM,iBAAiB,GAAG,khJAAkhJ,CAAC;AAC7iJ,gCAAe,iBAAiB;;ACehC,MAAM,yBAAyB,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAqC3C,cAAc;;;;QAGf,wBAAmB,GAAyB,EAAE,CAAC;oBAED,KAAK;8BAMV,KAAK;yBAOV,KAAK;sCAOQ,KAAK;;IAU9D,UAAU,CAAC,QAAiB;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAC3D,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACxD;IAGD,MAAM,KAAK;QACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;KACrB;IAED,MAAM;QAIF,QACI,EAAC,IAAI,uDACD,8FAAuB,IAAI,CAAC,IAAI,GAAG,MAAM,GAAE,OAAO,mBAC5B,SAAS,EACvB,KAAK,EAAC,QAAQ,EACd,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,GAAG,EAAE,EACnC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,IACjC,IAAI,CAAC,mBAAmB,GAChC,6DAAM,IAAI,EAAC,QAAQ,GAAE,EACrB,6DAAM,KAAK,EAAC,eAAe,IACtB,CAAC,IAAI,CAAC,cAAc,KACjB,+DAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,QAAQ,CAAQ,CAAC,EAEnD,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,IAAI,GAAG,CAC1B,CACF,EACT,4DAAK,KAAK,EAAC,SAAS,EAAC,EAAE,EAAC,SAAS,IAC7B,6DAAM,IAAI,EAAC,SAAS,GAAE,CACpB,CACH,EACT;KACL;;;;;;;;;;","names":[],"sources":["src/components/accordion-panel/accordion-panel.scss?tag=wcs-accordion-panel&encapsulation=shadow","src/components/accordion-panel/accordion-panel.tsx"],"sourcesContent":["@mixin accordion-panel-focus {\n outline: var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus);\n}\n\n:host {\n display: flex;\n flex-direction: column;\n cursor: pointer;\n\n --wcs-accordion-panel-color-default: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-highlight: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-hover: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-color-press: var(--wcs-semantic-color-text-primary);\n --wcs-accordion-panel-action-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-accordion-panel-action-color-highlight: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-action-color-hover: var(--wcs-semantic-color-foreground-action-secondary-hover);\n --wcs-accordion-panel-action-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n --wcs-accordion-panel-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-accordion-panel-background-color-highlight: var(--wcs-semantic-color-background-action-secondary-press);\n --wcs-accordion-panel-background-color-hover: var(--wcs-semantic-color-background-action-secondary-hover);\n --wcs-accordion-panel-background-color-press: var(--wcs-semantic-color-background-action-secondary-press);\n\n --wcs-accordion-panel-header-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-accordion-panel-header-font-size: var(--wcs-semantic-font-size-heading-6);\n --wcs-accordion-panel-header-gap: calc(3 * var(--wcs-semantic-spacing-base));\n --wcs-accordion-panel-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-accordion-panel-border-radius-open: var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;\n --wcs-accordion-panel-padding-vertical: var(--wcs-semantic-spacing-large);\n --wcs-accordion-panel-padding-horizontal: calc(var(--wcs-semantic-spacing-base) * 3);\n\n --wcs-accordion-panel-header-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width: var(--wcs-semantic-border-width-default);\n --wcs-accordion-panel-border-width-focus: var(--wcs-semantic-border-width-large);\n --wcs-accordion-panel-border-color: var(--wcs-semantic-color-border-secondary);\n\n --wcs-accordion-panel-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-accordion-panel-border-style-focus: var(--wcs-semantic-border-style-focus-base);\n\n --wcs-accordion-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n border: var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);\n border-radius: var(--wcs-accordion-panel-border-radius);\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wcs-accordion-panel-header-gap);\n padding: var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);\n border-radius: var(--wcs-accordion-panel-border-radius);\n font-weight: var(--wcs-accordion-panel-header-font-weight);\n // TODO replace px to rem\n font-size: var(--wcs-accordion-panel-header-font-size);\n font-family: var(--wcs-font-sans-serif);\n color: var(--wcs-accordion-panel-color-default);\n background-color: var(--wcs-accordion-panel-background-color-default);\n border: none;\n\n transition: background-color var(--wcs-accordion-transition-duration);\n\n @media (forced-colors: active) {\n // for WHCM\n border: var(--wcs-accordion-panel-header-border-width) solid ButtonBorder;\n }\n &:focus-visible {\n @include accordion-panel-focus;\n }\n\n &:hover {\n cursor: pointer;\n\n color: var(--wcs-accordion-panel-color-hover);\n background-color: var(--wcs-accordion-panel-background-color-hover);\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-hover);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-hover);\n }\n }\n }\n\n &:active {\n background-color: var(--wcs-accordion-panel-background-color-press);\n }\n }\n\n .header-action {\n display: flex;\n align-items: center;\n user-select: none;\n\n color: var(--wcs-accordion-panel-action-color-default);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-default);\n }\n }\n\n .content {\n display: none;\n }\n\n}\n\n:host([open]) {\n margin-bottom: 0;\n\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n }\n\n .content {\n display: block;\n }\n\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .header {\n border-radius: var(--wcs-accordion-panel-border-radius-open);\n padding-bottom: 0;\n }\n\n .content {\n border-radius: 0 0 var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius);\n margin-bottom: var(--wcs-);\n background-color: var(--wcs-accordion-panel-background-color-default);\n }\n }\n */\n\n &:host([highlight]) {\n .header {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n\n .header-action {\n color: var(--wcs-accordion-panel-action-color-highlight);\n\n .arrow {\n fill: var(--wcs-accordion-panel-action-color-highlight);\n }\n }\n\n /* FIXME GroupContentWithHeader is deprecated. Remove this.\n &:host([group-content-with-header]) {\n .content {\n background-color: var(--wcs-accordion-panel-background-color-highlight);\n color: var(--wcs-accordion-panel-color-highlight);\n }\n }\n */\n }\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { SelectArrow } from '../select/select-arrow';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst ACCORDION_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The accordion-panel is a subcomponent of `wcs-accordion`. It represents every panel of the accordion that can be expanded.\n * \n *\n * @cssprop --wcs-accordion-panel-color-default - Default color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-highlight - Highlight color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-hover - Hover color of the accordion panel\n * @cssprop --wcs-accordion-panel-color-press - Press color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-default - Default action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-highlight - Highlight action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-hover - Hovered action color of the accordion panel\n * @cssprop --wcs-accordion-panel-action-color-press - Pressed action color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-default - Default background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-highlight - Highlight background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-hover - Hover background color of the accordion panel\n * @cssprop --wcs-accordion-panel-background-color-press - Press background color of the accordion panel\n * @cssprop --wcs-accordion-panel-header-font-size - Font size of the accordion panel header\n * @cssprop --wcs-accordion-panel-header-font-weight - Font weight of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-radius - Border radius of the accordion panel\n * @cssprop --wcs-accordion-panel-border-radius-open - Border radius of the open accordion panel\n * @cssprop --wcs-accordion-panel-padding-vertical - Vertical padding of the accordion panel\n * @cssprop --wcs-accordion-panel-padding-horizontal - Horizontal padding of the accordion panel\n * @cssprop --wcs-accordion-panel-header-border-width - Border width of the accordion panel header\n * @cssprop --wcs-accordion-panel-border-width - Border width of the accordion panel\n * @cssprop --wcs-accordion-panel-border-width-focus - Border width of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-color - Border color of the accordion panel\n * @cssprop --wcs-accordion-panel-border-color-focus - Border color of the accordion panel when focused\n * @cssprop --wcs-accordion-panel-border-style-focus - Border style of the accordion panel when focused\n * @cssprop --wcs-accordion-transition-duration - Transition duration of the accordion panel\n */\n@Component({\n tag: 'wcs-accordion-panel',\n styleUrl: 'accordion-panel.scss',\n shadow: true\n})\nexport class AccordionPanel implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @Prop({reflect: true, mutable: true}) open: boolean = false;\n\n /**\n * Specifies whether the component should display the open/close text.\n * if false, it won't show the open/close text.\n */\n @Prop({reflect: true}) hideActionText: boolean = false;\n\n /**\n * Specifies whether the component should highlight when open with primary color.\n * if true, the background color will be the primary color.\n * if false, the background color will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * Specifies wether the component should group the content with header in one card\n * if true, there will be only one card with the header and the content\n * Nothing change when the panel is close\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n /**\n * Emitted when the open property changes. \n * Note that this event is stopped from propagating when using the component inside a wcs-accordion as the \n * accordion handles the open state of its accordion-panel children.\n */\n @Event() wcsOpenChange!: EventEmitter<boolean>;\n\n @Watch('open')\n openChange(newValue: boolean) {\n this.wcsOpenChange.emit(newValue);\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, ACCORDION_INHERITED_ATTRS),\n };\n this.openChange(this.open);\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n @Method()\n async close() {\n this.open = false;\n }\n\n render() {\n \n \n \n return (\n <Host>\n <button aria-expanded={this.open ? \"true\": \"false\"}\n aria-controls=\"content\"\n class=\"header\"\n ref={(el) => this.nativeButton = el}\n onClick={() => this.open = !this.open}\n {...this.inheritedAttributes}>\n <slot name=\"header\"/>\n <span class=\"header-action\">\n {!this.hideActionText && (\n <span>{this.open ? 'Fermez' : 'Ouvrez'}</span>)\n }\n <SelectArrow up={this.open}/>\n </span>\n </button>\n <div class=\"content\" id=\"content\">\n <slot name=\"content\"/>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -38,8 +38,12 @@ const Accordion = class {
38
38
  opt.groupContentWithHeader = this.groupContentWithHeader;
39
39
  });
40
40
  }
41
+ handleSlotChange() {
42
+ // Refresh the list of accordion panels to include dynamically added ones
43
+ this.accordionPanels = this.getAllAccordionPanelsFromHostElement();
44
+ }
41
45
  render() {
42
- return (h(Host, { key: '0f1933aeff3cc2d73e6fc5051bac74656e418a02' }, h("slot", { key: 'effc61fd6ac1edcb598d9bc4053363030a1fc2e9' })));
46
+ return (h(Host, { key: 'ba2036b6e1aef2af13f96172fcf39726490c09ab' }, h("slot", { key: '89202c68bf64011fb0f6a8b7e487934a6129c9ea', onSlotchange: this.handleSlotChange.bind(this) })));
43
47
  }
44
48
  getAllAccordionPanelsFromHostElement() {
45
49
  return Array.from(this.el.children)
@@ -1 +1 @@
1
- {"file":"wcs-accordion.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,6HAA6H,CAAC;AACnJ,2BAAe,YAAY;;MCWd,SAAS;;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/C;KACJ;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5C,CAAC,CAAA;KACL;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAClC,CAAC,CAAA;KACL;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAC5D,CAAC,CAAA;KACL;IAGD,MAAM;QACF,QACI,EAAC,IAAI,uDACD,8DAAO,CACJ,EACT;KACL;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;KAC7F;;;;IAKO,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/E;;;;;;;;;;;;","names":[],"sources":["src/components/accordion/accordion.scss?tag=wcs-accordion&encapsulation=shadow","src/components/accordion/accordion.tsx"],"sourcesContent":[":host {\n --wcs-accordion-gap: var(--wcs-semantic-spacing-base);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-accordion-gap);\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n\n render() {\n return (\n <Host>\n <slot/>\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"],"version":3}
1
+ {"file":"wcs-accordion.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,6HAA6H,CAAC;AACnJ,2BAAe,YAAY;;MCWd,SAAS;;;QAEV,oBAAe,GAAmC,EAAE,CAAC;8BAMZ,IAAI;yBAOT,KAAK;sCASQ,KAAK;;IAE9D,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAEnE,IAAI,CAAC,2BAA2B,EAAE,CAAC;QACnC,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,4BAA4B,EAAE,CAAC;KACvC;IAGD,oBAAoB,CAAC,KAA2B;QAC5C,KAAK,CAAC,wBAAwB,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SAC/C;KACJ;IAGO,2BAA2B;QAC/B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;SAC5C,CAAC,CAAA;KACL;IAGO,sBAAsB;QAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAClC,CAAC,CAAA;KACL;IAEO,4BAA4B;QAChC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,GAAiC;YAC3D,GAAG,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC;SAC5D,CAAC,CAAA;KACL;IAEO,gBAAgB;;QAEpB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,oCAAoC,EAAE,CAAC;KACtE;IAED,MAAM;QACF,QACI,EAAC,IAAI,uDACD,6DAAM,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAI,CACrD,EACT;KACL;IAEO,oCAAoC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC9B,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,OAAO,KAAK,qBAAqB,CAAmC,CAAC;KAC7F;;;;IAKO,wBAAwB,CAAC,WAAwB;QACrD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;KAC/E;;;;;;;;;;;;","names":[],"sources":["src/components/accordion/accordion.scss?tag=wcs-accordion&encapsulation=shadow","src/components/accordion/accordion.tsx"],"sourcesContent":[":host {\n --wcs-accordion-gap: var(--wcs-semantic-spacing-base);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-accordion-gap);\n}\n","import { Component, Element, h, Host, Listen, Prop, Watch } from '@stencil/core';\n\n/**\n * The accordion component is a vertical stack of interactive headings used to toggle the display of further information.\n * \n * @cssprop --wcs-accordion-gap - Gap between accordion panels\n */\n@Component({\n tag: 'wcs-accordion',\n styleUrl: 'accordion.scss',\n shadow: true\n})\nexport class Accordion {\n @Element() private el!: HTMLWcsAccordionElement;\n private accordionPanels: HTMLWcsAccordionPanelElement[] = [];\n\n /**\n * Specifies whether accordion-panel components should display the open/close text.\n * if false, it won't show the open/close text in all accordion-panel.\n */\n @Prop({reflect: true}) hideActionText: boolean = true;\n\n /**\n * Specifies whether accordion-panel components should highlight when open with primary color.\n * if true, the background color of the accordion-panel will be the primary color.\n * if false, the background color of the accordion-panel will be wcs-light.\n */\n @Prop({reflect: true}) highlight: boolean = false;\n\n /**\n * @deprecated **The content is now always grouped with the panel header**\n * \n * ~~Specifies whether accordion-panel components should group the content with header in one card~~\n * ~~if true, there will be only one card with the header and the content~~\n * ~~Nothing change when the panel is close~~\n */\n @Prop({reflect: true}) groupContentWithHeader: boolean = false;\n\n componentWillLoad(): Promise<void> | void {\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n\n this.updateHideActiontextOnPanel();\n this.updateHighlightOnPanel();\n this.updateGroupContentWithHeader();\n }\n\n @Listen('wcsOpenChange')\n wcsOpenChangeHandler(event: CustomEvent<boolean>) {\n event.stopImmediatePropagation();\n if (event.detail) {\n this.closeAllAccordionsExcept(event.target);\n }\n }\n\n @Watch('hideActionText')\n private updateHideActiontextOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.hideActionText = this.hideActionText;\n })\n }\n\n @Watch('highlight')\n private updateHighlightOnPanel() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.highlight = this.highlight;\n })\n }\n @Watch('groupContentWithHeader')\n private updateGroupContentWithHeader() {\n this.accordionPanels.forEach((opt: HTMLWcsAccordionPanelElement) => {\n opt.groupContentWithHeader = this.groupContentWithHeader;\n })\n }\n\n private handleSlotChange() {\n // Refresh the list of accordion panels to include dynamically added ones\n this.accordionPanels = this.getAllAccordionPanelsFromHostElement();\n }\n\n render() {\n return (\n <Host>\n <slot onSlotchange={this.handleSlotChange.bind(this)} />\n </Host>\n );\n }\n\n private getAllAccordionPanelsFromHostElement(): HTMLWcsAccordionPanelElement[] {\n return Array.from(this.el.children)\n .filter(el => el.tagName === 'WCS-ACCORDION-PANEL') as HTMLWcsAccordionPanelElement[];\n }\n\n /**\n * Close all accordion panels except the one that match the eventTarget reference\n */\n private closeAllAccordionsExcept(eventTarget: EventTarget): void {\n this.accordionPanels.filter(a => a !== eventTarget).forEach(a => a.close());\n }\n}\n"],"version":3}
@@ -30,6 +30,7 @@ export declare class Accordion {
30
30
  private updateHideActiontextOnPanel;
31
31
  private updateHighlightOnPanel;
32
32
  private updateGroupContentWithHeader;
33
+ private handleSlotChange;
33
34
  render(): any;
34
35
  private getAllAccordionPanelsFromHostElement;
35
36
  /**
@@ -1,2 +1,2 @@
1
- import{r as o,c as a,h as c,H as r,g as e}from"./p-32e583ea.js";import{S as n}from"./p-84e22272.js";import{i as s,a as i,s as d}from"./p-52d77e1f.js";const t=":host{display:flex;flex-direction:column;cursor:pointer;--wcs-accordion-panel-color-default:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-highlight:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-hover:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-press:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-action-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-accordion-panel-action-color-highlight:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-accordion-panel-action-color-hover:var(--wcs-semantic-color-foreground-action-secondary-hover);--wcs-accordion-panel-action-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-accordion-panel-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-accordion-panel-background-color-highlight:var(--wcs-semantic-color-background-action-secondary-press);--wcs-accordion-panel-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-accordion-panel-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-accordion-panel-header-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-accordion-panel-header-font-size:var(--wcs-semantic-font-size-heading-6);--wcs-accordion-panel-header-gap:calc(3 * var(--wcs-semantic-spacing-base));--wcs-accordion-panel-border-radius:var(--wcs-semantic-border-radius-base);--wcs-accordion-panel-border-radius-open:var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;--wcs-accordion-panel-padding-vertical:var(--wcs-semantic-spacing-large);--wcs-accordion-panel-padding-horizontal:calc(var(--wcs-semantic-spacing-base) * 3);--wcs-accordion-panel-header-border-width:var(--wcs-semantic-border-width-default);--wcs-accordion-panel-border-width:var(--wcs-semantic-border-width-default);--wcs-accordion-panel-border-width-focus:var(--wcs-semantic-border-width-large);--wcs-accordion-panel-border-color:var(--wcs-semantic-color-border-secondary);--wcs-accordion-panel-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-accordion-panel-border-style-focus:var(--wcs-semantic-border-style-focus-base);--wcs-accordion-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);border:var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);border-radius:var(--wcs-accordion-panel-border-radius)}:host .header{display:flex;align-items:center;justify-content:space-between;gap:var(--wcs-accordion-panel-header-gap);padding:var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);border-radius:var(--wcs-accordion-panel-border-radius);font-weight:var(--wcs-accordion-panel-header-font-weight);font-size:var(--wcs-accordion-panel-header-font-size);font-family:var(--wcs-font-sans-serif);color:var(--wcs-accordion-panel-color-default);background-color:var(--wcs-accordion-panel-background-color-default);border:none;transition:background-color var(--wcs-accordion-transition-duration)}@media (forced-colors: active){:host .header{border:var(--wcs-accordion-panel-header-border-width) solid ButtonBorder}}:host .header:focus-visible{outline:var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus)}:host .header:hover{cursor:pointer;color:var(--wcs-accordion-panel-color-hover);background-color:var(--wcs-accordion-panel-background-color-hover)}:host .header:hover .header-action{color:var(--wcs-accordion-panel-action-color-hover)}:host .header:hover .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-hover)}:host .header:active{background-color:var(--wcs-accordion-panel-background-color-press)}:host .header-action{display:flex;align-items:center;user-select:none;color:var(--wcs-accordion-panel-action-color-default)}:host .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-default)}:host .content{display:none}:host([open]){margin-bottom:0;}:host([open]) .header{border-radius:var(--wcs-accordion-panel-border-radius-open)}:host([open]) .content{display:block}:host([open]):host([highlight]){}:host([open]):host([highlight]) .header{background-color:var(--wcs-accordion-panel-background-color-highlight);color:var(--wcs-accordion-panel-color-highlight)}:host([open]):host([highlight]) .header-action{color:var(--wcs-accordion-panel-action-color-highlight)}:host([open]):host([highlight]) .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-highlight)}";const l=t;const h=["tabindex","title"];const p=class{constructor(c){o(this,c);this.wcsOpenChange=a(this,"wcsOpenChange",7);this.inheritedAttributes={};this.open=false;this.hideActionText=false;this.highlight=false;this.groupContentWithHeader=false}openChange(o){this.wcsOpenChange.emit(o)}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},s(this.el)),i(this.el,h))}async setAriaAttribute(o,a){d(this.nativeButton,o,a)}async close(){this.open=false}render(){return c(r,{key:"bcd77b8240481d974555978566472aa28fd374d4"},c("button",Object.assign({key:"5fde3c3d7fe95a9a685ef3b9f03b0344fdf7d1be","aria-expanded":this.open?"true":"false","aria-controls":"content",class:"header",ref:o=>this.nativeButton=o,onClick:()=>this.open=!this.open},this.inheritedAttributes),c("slot",{key:"05bd17435fa8821e26d7df49305f2dd331783fb4",name:"header"}),c("span",{key:"a25b3acc00d4c00675fadfdbabb3c6173d0b9efa",class:"header-action"},!this.hideActionText&&c("span",{key:"5979042236883a5181471bad831dbe90d7518047"},this.open?"Fermez":"Ouvrez"),c(n,{key:"8f918ddaef3b7d01c271ce39e0ffe614af33fe8e",up:this.open}))),c("div",{key:"594f012cfe62aa5eb1d8cd2184af7a87ff9f3adb",class:"content",id:"content"},c("slot",{key:"040d3ba0ec7d879341fc3c7a563f1b3b84659564",name:"content"})))}get el(){return e(this)}static get watchers(){return{open:["openChange"]}}};p.style=l;export{p as wcs_accordion_panel};
2
- //# sourceMappingURL=p-f2eeb249.entry.js.map
1
+ import{r as o,c as a,h as c,H as r,g as e}from"./p-32e583ea.js";import{S as n}from"./p-84e22272.js";import{i as s,a as i,s as t}from"./p-52d77e1f.js";const d=":host{display:flex;flex-direction:column;cursor:pointer;--wcs-accordion-panel-color-default:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-highlight:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-hover:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-color-press:var(--wcs-semantic-color-text-primary);--wcs-accordion-panel-action-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-accordion-panel-action-color-highlight:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-accordion-panel-action-color-hover:var(--wcs-semantic-color-foreground-action-secondary-hover);--wcs-accordion-panel-action-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-accordion-panel-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-accordion-panel-background-color-highlight:var(--wcs-semantic-color-background-action-secondary-press);--wcs-accordion-panel-background-color-hover:var(--wcs-semantic-color-background-action-secondary-hover);--wcs-accordion-panel-background-color-press:var(--wcs-semantic-color-background-action-secondary-press);--wcs-accordion-panel-header-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-accordion-panel-header-font-size:var(--wcs-semantic-font-size-heading-6);--wcs-accordion-panel-header-gap:calc(3 * var(--wcs-semantic-spacing-base));--wcs-accordion-panel-border-radius:var(--wcs-semantic-border-radius-base);--wcs-accordion-panel-border-radius-open:var(--wcs-accordion-panel-border-radius) var(--wcs-accordion-panel-border-radius) 0 0;--wcs-accordion-panel-padding-vertical:var(--wcs-semantic-spacing-large);--wcs-accordion-panel-padding-horizontal:calc(var(--wcs-semantic-spacing-base) * 3);--wcs-accordion-panel-header-border-width:var(--wcs-semantic-border-width-default);--wcs-accordion-panel-border-width:var(--wcs-semantic-border-width-default);--wcs-accordion-panel-border-width-focus:var(--wcs-semantic-border-width-large);--wcs-accordion-panel-border-color:var(--wcs-semantic-color-border-secondary);--wcs-accordion-panel-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-accordion-panel-border-style-focus:var(--wcs-semantic-border-style-focus-base);--wcs-accordion-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);border:var(--wcs-accordion-panel-border-width) solid var(--wcs-accordion-panel-border-color);border-radius:var(--wcs-accordion-panel-border-radius)}:host .header{display:flex;align-items:center;justify-content:space-between;gap:var(--wcs-accordion-panel-header-gap);padding:var(--wcs-accordion-panel-padding-vertical) var(--wcs-accordion-panel-padding-horizontal);border-radius:var(--wcs-accordion-panel-border-radius);font-weight:var(--wcs-accordion-panel-header-font-weight);font-size:var(--wcs-accordion-panel-header-font-size);font-family:var(--wcs-font-sans-serif);color:var(--wcs-accordion-panel-color-default);background-color:var(--wcs-accordion-panel-background-color-default);border:none;transition:background-color var(--wcs-accordion-transition-duration)}@media (forced-colors: active){:host .header{border:var(--wcs-accordion-panel-header-border-width) solid ButtonBorder}}:host .header:focus-visible{outline:var(--wcs-accordion-panel-border-width-focus) var(--wcs-accordion-panel-border-style-focus) var(--wcs-accordion-panel-border-color-focus)}:host .header:hover{cursor:pointer;color:var(--wcs-accordion-panel-color-hover);background-color:var(--wcs-accordion-panel-background-color-hover)}:host .header:hover .header-action{color:var(--wcs-accordion-panel-action-color-hover)}:host .header:hover .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-hover)}:host .header:active{background-color:var(--wcs-accordion-panel-background-color-press)}:host .header-action{display:flex;align-items:center;user-select:none;color:var(--wcs-accordion-panel-action-color-default)}:host .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-default)}:host .content{display:none}:host([open]){margin-bottom:0;}:host([open]) .header{border-radius:var(--wcs-accordion-panel-border-radius-open)}:host([open]) .content{display:block}:host([open]):host([highlight]){}:host([open]):host([highlight]) .header{background-color:var(--wcs-accordion-panel-background-color-highlight);color:var(--wcs-accordion-panel-color-highlight)}:host([open]):host([highlight]) .header-action{color:var(--wcs-accordion-panel-action-color-highlight)}:host([open]):host([highlight]) .header-action .arrow{fill:var(--wcs-accordion-panel-action-color-highlight)}";const l=d;const h=["tabindex","title"];const p=class{constructor(c){o(this,c);this.wcsOpenChange=a(this,"wcsOpenChange",7);this.inheritedAttributes={};this.open=false;this.hideActionText=false;this.highlight=false;this.groupContentWithHeader=false}openChange(o){this.wcsOpenChange.emit(o)}componentWillLoad(){this.inheritedAttributes=Object.assign(Object.assign({},s(this.el)),i(this.el,h));this.openChange(this.open)}async setAriaAttribute(o,a){t(this.nativeButton,o,a)}async close(){this.open=false}render(){return c(r,{key:"e8a0d26ab4355bad7a351a672de03a9be460db41"},c("button",Object.assign({key:"8a8b6657ffe8508fa8051e836289e262c248e20d","aria-expanded":this.open?"true":"false","aria-controls":"content",class:"header",ref:o=>this.nativeButton=o,onClick:()=>this.open=!this.open},this.inheritedAttributes),c("slot",{key:"7addb6db5a516834dc2f27b7b00b655aa228548e",name:"header"}),c("span",{key:"f97d43a2c46ea36fb19aacc35744f60abf3467ce",class:"header-action"},!this.hideActionText&&c("span",{key:"f40a6b43deccc8a4436d8f267b5763cb75a8c074"},this.open?"Fermez":"Ouvrez"),c(n,{key:"28f6eb62c4e99c4d5c82afffc222c07e65ac30a2",up:this.open}))),c("div",{key:"7950a5031c2b6319054bb237be7b5b5a709158cd",class:"content",id:"content"},c("slot",{key:"bddb7506e586b90552ce6211418d7d2852a431f1",name:"content"})))}get el(){return e(this)}static get watchers(){return{open:["openChange"]}}};p.style=l;export{p as wcs_accordion_panel};
2
+ //# sourceMappingURL=p-2329af04.entry.js.map