(function() {
  var GlassSurface = window.GlassSurface;
  var useSpringPress = window.useSpringPress;

  function GlassButton(props) {
    var variant = props.variant || 'default';
    var size = props.size || 'md';
    var disabled = props.disabled;
    var className = props.className || '';
    var onClick = props.onClick;
    var type = props.type || 'button';
    var children = props.children;
    var style = props.style;

    var btnClass = 'glass-btn glass-btn-' + size + (variant !== 'default' ? ' glass-btn-' + variant : '') + (className ? ' ' + className : '');
    var press = useSpringPress();

    return React.createElement(GlassSurface, {
      as: 'button',
      type: type,
      elevation: variant === 'solid' ? 2 : 1,
      radius: 'pill',
      interactive: !disabled,
      disabled: disabled,
      className: btnClass + (press.pressed ? ' glass-pressed' : ''),
      onClick: disabled ? undefined : onClick,
      onMouseEnter: press.bind.onMouseEnter,
      onMouseLeave: press.bind.onMouseLeave,
      onMouseDown: press.bind.onMouseDown,
      onMouseUp: press.bind.onMouseUp,
      style: style
    }, children);
  }

  window.GlassButton = GlassButton;
})();
