@radix-ui/themes
Version:
[](https://radix-ui.com/themes)
3 lines (2 loc) • 1.16 kB
JavaScript
import*as e from"react";import f from"classnames";import{Slot as B}from"@radix-ui/react-slot";import{baseButtonPropDefs as n}from"./base-button.props.js";import{extractProps as P,mapButtonSizeToSpinnerSize as y,mapResponsiveProp as b}from"../helpers/index.js";import{marginPropDefs as c}from"../props/index.js";import{Flex as h}from"./flex.js";import{Spinner as x}from"./spinner.js";import{VisuallyHidden as C}from"./visually-hidden.js";const r=e.forwardRef((t,i)=>{const{size:a=n.size.default}=t,{className:p,children:o,asChild:d,color:m,radius:l,disabled:s=t.loading,...u}=P(t,n,c);return e.createElement(d?B:"button",{"data-disabled":s||void 0,"data-accent-color":m,"data-radius":l,...u,ref:i,className:f("rt-reset","rt-BaseButton",p),disabled:s},t.loading?e.createElement(e.Fragment,null,e.createElement("span",{style:{display:"contents",visibility:"hidden"},"aria-hidden":!0},o),e.createElement(C,null,o),e.createElement(h,{asChild:!0,align:"center",justify:"center",position:"absolute",inset:"0"},e.createElement("span",null,e.createElement(x,{size:b(a,y)})))):o)});r.displayName="BaseButton";export{r as BaseButton};
//# sourceMappingURL=base-button.js.map