All files / components/Accordion Accordion.svelte

100% Statements 22/22
100% Branches 2/2
100% Functions 0/0
100% Lines 22/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x  
<script lang="ts">
  import { writable } from "svelte/store";
  import { setAccordionContext } from "./context";
 
  export let multiselectable = false;
  export let bordered = false;
 
  const expandedItems = writable<Record<string, boolean>>({});
 
  setAccordionContext({
    expandedItems,
    toggle: (itemID: string) =>
      expandedItems.update((items) => ({
        ...(multiselectable ? items : {}),
        [itemID]: !items[itemID],
      })),
  });
</script>
 
<div {...$$restProps} class="usa-accordion" class:usa-accordion--bordered={bordered}>
  <slot />
</div>