<StateChart
  @src={{this.chart}}
  as |State Guard Action dispatch state|
>
  <div
    class="copy-button"
    ...attributes
  >
{{#let (fn dispatch 'SUCCESS') (fn dispatch 'ERROR') (fn dispatch 'RESET') as |success error reset|}}
    <button
      {{with-copyable @value success=success error=error}}
      aria-label={{t 'components.copy-button.title' name=@name}}
      type="button"
      class="copy-btn"
      ...attributes
      {{tooltip
        (if (state-matches state 'success') (t 'components.copy-button.success' name=@name) (t 'components.copy-button.error'))
        options=(hash
          trigger='manual'
          showOnCreate=(not (state-matches state 'idle'))
          delay=(array 0 3000)
          onHidden=reset
        )
      }}
    >
      {{~yield~}}
    </button>
{{/let}}
  </div>
</StateChart>
