{{#if @isOpen}}
  {{#let (element this.tagName) as |Tag|}}
    {{#in-element this.$portalRoot insertBefore=null}}
      <Tag
        id={{this.guid}}
        role='dialog'
        aria-modal='true'
        tabindex='-1'
        ...attributes
        {{headlessui-focus-trap
          focusTrapOptions=(hash
            initialFocus=@initialFocus
            allowOutsideClick=this.allowOutsideClick
            setReturnFocus=this.setReturnFocus
            fallbackFocus=this.dialogElementSelector
          )
        }}
        {{this.handleEscapeKey @isOpen this.onClose}}
        {{this.lockWindowScroll}}
        {{this.stack}}
      >
        {{yield
          (hash
            isOpen=@isOpen
            onClose=this.onClose
            Overlay=(component
              'dialog/-overlay'
              guid=this.overlayGuid
              dialogGuid=this.guid
              isOpen=@isOpen
              onClose=this.onClose
            )
            Title=(component
              'dialog/-title'
              guid=this.titleGuid
              dialogGuid=this.guid
              isOpen=@isOpen
            )
            Description=(component
              'dialog/-description'
              guid=this.descriptionGuid
              dialogGuid=this.guid
              isOpen=@isOpen
            )
          )
        }}
      </Tag>
    {{/in-element}}
  {{/let}}
{{/if}}