{"version":3,"file":"index.cjs","names":[],"sources":["../../../src/components/Button/Button.tsx"],"sourcesContent":["import clsx from \"clsx\";\nimport { forwardRef, ReactNode } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"tertiary\";\ntype ButtonSize = \"extra-small\" | \"small\" | \"medium\" | \"large\";\ntype ButtonType = \"normal\" | \"destructive\";\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  variant?: ButtonVariant;\n  size?: ButtonSize;\n  iconLeft?: ReactNode;\n  iconRight?: ReactNode;\n  buttonType?: ButtonType;\n}\n\nconst normalVariantMap: Record<ButtonVariant, string> = {\n  primary: \"openui-button-base-primary\",\n  secondary: \"openui-button-base-secondary\",\n  tertiary: \"openui-button-base-tertiary\",\n};\n\nconst destructiveVariantMap: Record<ButtonVariant, string> = {\n  primary: \"openui-button-base-destructive-primary\",\n  secondary: \"openui-button-base-destructive-secondary\",\n  tertiary: \"openui-button-base-destructive-tertiary\",\n};\n\nconst sizeMap: Record<ButtonSize, string> = {\n  \"extra-small\": \"openui-button-base-extra-small\",\n  small: \"openui-button-base-small\",\n  medium: \"openui-button-base-medium\",\n  large: \"openui-button-base-large\",\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n  (\n    {\n      children,\n      variant = \"primary\",\n      size = \"medium\",\n      iconLeft,\n      iconRight,\n      className,\n      buttonType = \"normal\",\n      ...props\n    },\n    ref,\n  ) => {\n    const variantMap = buttonType === \"destructive\" ? destructiveVariantMap : normalVariantMap;\n    return (\n      <button\n        ref={ref}\n        className={clsx(\"openui-button-base\", variantMap[variant], sizeMap[size], className)}\n        {...props}\n      >\n        {iconLeft}\n        {children}\n        {iconRight}\n      </button>\n    );\n  },\n);\n\nButton.displayName = \"Button\";\n"],"mappings":";;;;;;;AAeA,MAAM,mBAAkD;CACtD,SAAS;CACT,WAAW;CACX,UAAU;CACX;AAED,MAAM,wBAAuD;CAC3D,SAAS;CACT,WAAW;CACX,UAAU;CACX;AAED,MAAM,UAAsC;CAC1C,eAAe;CACf,OAAO;CACP,QAAQ;CACR,OAAO;CACR;AAED,MAAa,UAAA,GAAA,MAAA,aAET,EACE,UACA,UAAU,WACV,OAAO,UACP,UACA,WACA,WACA,aAAa,UACb,GAAG,SAEL,QACG;AAEH,QACE,iBAAA,GAAA,kBAAA,MAAC,UAAD;EACO;EACL,YAAA,GAAA,KAAA,SAAgB,uBAJD,eAAe,gBAAgB,wBAAwB,kBAIrB,UAAU,QAAQ,OAAO,UAAU;EACpF,GAAI;YAHN;GAKG;GACA;GACA;GACM;;EAGd;AAED,OAAO,cAAc"}