render (h, context) {
    const { isFullWidth, leftIcon, rightIcon, loadingText, ...props } = context.props
    const { ariaLabel, isRound, icon } = props

    const nonNativeEvents = {
      click: (e) => {
        const emitClick = context.listeners.click
        if (emitClick) {
          emitClick(e)
        }
      }
    }

    const { native, nonNative } = extractListeners(context, nonNativeEvents)

    return h(CButton, {
      props,
      attrs: {
        'aria-label': ariaLabel,
        rounded: isRound ? 'full' : 'md',
        ...context.data.attrs,
        'data-chakra-component': 'CIconButton',
        p: 0
      },
      on: nonNative,
      nativeOn: native
    },
    [typeof icon === 'string'
      ? h(CIcon, {
        props: {
          name: icon
        },
        attrs: {
          ...baseStyles,
          color: 'currentColor',
          mb: '2px',
          size: '1em',
          focusable: false,
          'aria-hidden': true
        }
      })
      : h(CBox, {
        props: {
          as: icon
        },
        attrs: {
          focusable: true,
          color: 'currentColor'
        }
      })]
    )
  }
CIconButton component

CIconButton is used to render icons that support
click interactions

@extends CButton
@see Docs https://vue.chakra-ui.com/iconbutton