{{#let (element (or @as 'button')) as |Tag|}}
  <Tag
    role={{if @role @role 'button'}}
    type={{if @type @type 'button'}}
    id='{{@guid}}-button'
    aria-haspopup='listbox'
    aria-controls={{@guid}}
    aria-labelledby='{{@guid}}-label {{@guid}}-button'
    {{on 'click' @handleButtonClick}}
    {{on 'keydown' @handleKeyDown}}
    {{on 'keyup' @handleKeyUp}}
    {{on 'keypress' @handleKeyPress}}
    aria-expanded={{unless @isDisabled (if @isOpen 'true' 'false')}}
    disabled={{@isDisabled}}
    {{this.registerButton}}
    ...attributes
  >
    {{yield}}
  </Tag>
{{/let}}