Expandable group
This component groups multiple Expandables together, allowing for collective control of their open and close states. It provides mechanisms to register, unregister, and close all expandable items within the group. The first item in an uncontrolled group opens by default.
Props
is-controlled?: boolean
Allows the group to be controlled through the is-opened prop of each expandable.
Slots
default
Expandables that should be part of the group.
Examples
Default
An expandable group makes sure that only one expandable is open at ant moment. It closes other expandables when one is opened.
<template>
<FluxExpandableGroup>
<FluxExpandable label="Item 1">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad cum dolore dolores ex modi obcaecati quis, reiciendis repudiandae saepe tempora? Aliquam doloribus, incidunt ipsa iusto maxime possimus provident voluptas. Veritatis.</p>
</FluxExpandable>
<FluxExpandable label="Item 2">
<p>Architecto aut consequatur cupiditate eaque expedita id illum labore mollitia numquam omnis perferendis porro provident, quam rem temporibus veritatis voluptatum. Ad corporis dolor dolorum eligendi expedita quibusdam rem, sapiente sit?</p>
</FluxExpandable>
<FluxExpandable label="Item 3">
<p>Ab asperiores autem commodi culpa deserunt dolorem. Alias cum cupiditate dignissimos eaque enim error fuga hic, itaque minima natus nihil, nobis perspiciatis quae quibusdam recusandae, repellat sint? Perspiciatis, rerum, vitae.</p>
</FluxExpandable>
</FluxExpandableGroup>
</template>
<script
lang="ts"
setup>
import { FluxExpandable, FluxExpandableGroup } from '@flux-ui/flux';
</script>
Pane
Grouped expandables are especially nice within a Pane.
<template>
<FluxPane>
<FluxExpandableGroup>
<FluxExpandable label="Item 1">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad cum dolore dolores ex modi obcaecati quis, reiciendis repudiandae saepe tempora? Aliquam doloribus, incidunt ipsa iusto maxime possimus provident voluptas. Veritatis.</p>
</FluxExpandable>
<FluxExpandable label="Item 2">
<p>Architecto aut consequatur cupiditate eaque expedita id illum labore mollitia numquam omnis perferendis porro provident, quam rem temporibus veritatis voluptatum. Ad corporis dolor dolorum eligendi expedita quibusdam rem, sapiente sit?</p>
</FluxExpandable>
<FluxExpandable label="Item 3">
<p>Ab asperiores autem commodi culpa deserunt dolorem. Alias cum cupiditate dignissimos eaque enim error fuga hic, itaque minima natus nihil, nobis perspiciatis quae quibusdam recusandae, repellat sint? Perspiciatis, rerum, vitae.</p>
</FluxExpandable>
</FluxExpandableGroup>
</FluxPane>
</template>
<script
lang="ts"
setup>
import { FluxExpandable, FluxExpandableGroup, FluxPane } from '@flux-ui/flux';
</script>