nouveau-theatre-de-besancon/site/snippets/collapsable-section.php

25 lines
877 B
PHP
Raw Normal View History

<?php
$open = $open ?? false;
?>
2024-09-03 12:02:57 +02:00
<section class="collapsable" x-data="{
open: <?= var_export($open) ?>,
2024-09-20 10:14:43 +02:00
openSection(event) {
const section = event.target.closest('.collapsable')
section.querySelectorAll('[tabindex]').forEach(item => {
if (item.getAttribute('tabindex') == -1) {
item.setAttribute('tabindex', 0)
} else {
item.setAttribute('tabindex', -1)
}
})
this.open = !this.open
}
2024-08-18 16:56:58 +02:00
}">
2024-09-20 10:14:43 +02:00
<button class="toggle" :class="open ? 'open' : ''" @click="openSection($event)" :title="open ? 'fermer': 'ouvrir'" :aria-expanded="open ? true : false">
2024-08-27 17:10:48 +02:00
<h4><?= $title ?></h4>
2024-09-03 12:02:57 +02:00
<span class="arrow-right" :class="open ? 'open' : ''"></span>
2024-08-18 16:56:58 +02:00
</button>
2024-09-03 12:02:57 +02:00
<div class="collapsable__content<?php e(isset($padding) && !$padding, ' no-padding') ?>" :class="open ? 'open' : ''">
2024-08-27 17:10:48 +02:00
<?= $slots->content() ?>
2024-08-18 16:56:58 +02:00
</div>
</section>