open ReasonReact;
[@bs.module "@highpoint/ui-elements/icons"]
external reactClass: ReasonReact.reactClass = "Warning";

[@bs.deriving jsConverter]
type fontSize = [
  | [@bs.as "default"] `Default
  | [@bs.as "inherit"] `Inherit
  | [@bs.as "small"] `Small
  | [@bs.as "large"] `Large
];
[@bs.deriving abstract]
type jsProps = {
  [@bs.optional]
  className: string,
  [@bs.optional] [@bs.as "htmlColor"]
  color: string,
  [@bs.optional]
  exclamationSignColor: string,
  [@bs.optional]
  component: string,
  [@bs.optional]
  classes: Js.Dict.t(string),
  [@bs.optional]
  fontSize: string,
  [@bs.optional]
  titleAccess: string,
  [@bs.optional]
  viewBox: string,
};
let make =
    (
      ~className=?,
      ~color=?,
      ~component=?,
      ~classes=?,
      ~fontSize=?,
      ~titleAccess=?,
      ~viewBox=?,
      ~exclamationSignColor=?,
      children,
    ) => {
  let jsFontSize = fontSize->Belt.Option.map(fontSizeToJs);
  wrapJsForReason(
    ~reactClass,
    ~props=
      jsProps(
        ~className?,
        ~color?,
        ~component?,
        ~classes?,
        ~fontSize=?jsFontSize,
        ~titleAccess?,
        ~viewBox?,
        ~exclamationSignColor?,
        (),
      ),
    children,
  );
};
