@guruhotel/aura-ui
Version:
⚛️ React UI library by GuruHotel
1 lines • 1.29 kB
JavaScript
import n,{forwardRef as e}from"react";import{Spinner as i}from"../spinner";import{Text as r}from"../text";import{StyledButton as l,LoaderContainer as t}from"./button.styles";import{jsx as o}from"react/jsx-runtime";import{jsxs as s}from"react/jsx-runtime";const c=({icon:e})=>n.cloneElement(e,{color:"currentColor"}),a=({placement:n,spinner:e})=>o(t,{placement:n,children:e||o(i,{speed:"fast"})}),m=e((({css:n={},isLoading:e,isDisabled:i=!1,disabled:t,loadingText:m,spinner:d,spinnerPlacement:p="right",variant:u="solid",colorScheme:g="guru",size:f="md",rounded:h="lg",rightIcon:I,leftIcon:x,icon:v,children:b,...j},E)=>{if(!(void 0!==b||v||e||x||I))throw new Error("Missing children");const S=x&&!e,w=I&&!e,y=v&&!e,z=e&&"left"===p,D=e&&"right"===p;return n={...n,...y?{paddingInlineStart:"0em",paddingInlineEnd:"0em"}:null,svg:{marginInlineEnd:S?"0.5em":void 0,marginInlineStart:w?"0.5em":void 0,...y?{marginInline:"0em"}:null}},s(l,{...j,ref:E,css:n,isIcon:!!v,isDisabled:!!i||t||e,disabled:!!i||t||e,variant:u,colorScheme:g,size:f,rounded:h,children:[y?o(c,{icon:v}):null,z?o(a,{spinner:d,placement:m?"left":"center"}):null,S?o(c,{icon:x}):null,e?m||o(r,{as:"span",css:{opacity:0},children:b}):b,w?o(c,{icon:I}):null,D?o(a,{spinner:d,placement:m?"right":"center"}):null]})}));export default m;