{{#let
  (component (ensure-safe-component (bs-default @titleComponent (component "bs-accordion/item/title"))) collapsed=this.collapsed disabled=@disabled onClick=(fn (bs-default @onClick (bs-noop)) this.value))
  (component (ensure-safe-component (bs-default @bodyComponent (component "bs-accordion/item/body"))) collapsed=this.collapsed)
  (unique-id)
  (unique-id)
as |Title Body titleId collapsableId|
}}
  <div
    class="{{if @disabled "disabled"}} {{this.typeClass}} {{if (macroCondition (macroGetOwnConfig "isBS4")) "card"}} {{if (macroCondition (macroGetOwnConfig "isBS5")) "accordion-item"}}"
    ...attributes
  >
    {{#if (has-block-params)}}
      {{yield
        (hash
          title=Title
          body=Body
        )
      }}
    {{else}}
      <Title id={{titleId}} @controls={{collapsableId}}>
        {{@title}}
      </Title>
      <Body @collapsableId={{collapsableId}} @describedby={{titleId}}>
        {{yield
          (hash
            title=Title
            body=Body
          )
        }}
      </Body>
    {{/if}}
  </div>
{{/let}}