pkg-components
Version:
39 lines (35 loc) • 4.35 kB
JavaScript
import{j as a,F as P,a as j}from"./jsx-runtime-DI8_P1Ft.js";import{P as t}from"./index-B3IC6ylx.js";import{r as F}from"./index-DPzuYzxM.js";import{s as y,n as r}from"./styled-components.browser.esm-CLTG7J5x.js";import{P as M,B as S}from"./index-BINBIgVg.js";import{a as N}from"./index-RGaBZlDs.js";import{g as T}from"./index-CIjh_EDQ.js";const z="_rippleButton_1midt_1",G="_ripple_1midt_1",I="_rippleEffect_1midt_1",m={rippleButton:z,ripple:G,rippleEffect:I},p=e=>{const{label:g="",onClick:u=()=>{},loading:c=!1,style:b={},family:h="PFont-Light",disabled:$=!1,standard:q=!1,active:V,type:_="button",widthButton:v="100%",bgColor:B,color:C,margin:w,padding:E,radius:x}=e||{},o=F.useRef(null),k=s=>{const l=o.current;if(!l)return;const n=document.createElement("span"),i=l.getBoundingClientRect(),d=Math.max(i.width,i.height),R=s.pageX-i.left-d/2-window.pageXOffset,L=s.pageY-i.top-d/2-window.pageYOffset;n.style.width=n.style.height=`${d}px`,n.style.left=`${R}px`,n.style.top=`${L}px`,n.classList.add(m.ripple);const f=l.querySelector(`.${m.ripple}`);f&&f.remove(),l.appendChild(n),n.addEventListener("animationend",function(){n.remove()}),u&&u(s)};return o?j(X,{active:V,bgColor:B,className:"ripple-button",color:C,disabled:$,family:h,margin:w,onClick:k,padding:E,radius:x,ref:o,standard:q,style:b,type:_,widthButton:v,...e,children:[a("span",{id:"ripple-button-label",children:g}),c&&a(O,{children:a(N,{color:T("--color-base-white"),size:20})}),a("span",{style:c?{opacity:0}:{},children:e.children})]}):a(P,{})};p.propTypes={active:t.any,bgColor:t.any,children:t.any,color:t.any,family:t.any,label:t.any,loading:t.bool,margin:t.any,onClick:t.func,padding:t.any,radius:t.any,standard:t.any,style:t.any,type:t.any,widthButton:t.any};const O=y.div`
display: flex;
justify-content: center;
align-items: center;
left: 0;
top: -5px;
padding: 1em;
bottom: 0;
position: absolute;
svg {
animation: rotator 1.4s linear infinite;
fill: #fff;
}
@keyframes rotator {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
`,X=y.button`
&:disabled {
background-color: ${`${M}69`} !important;
}
padding: ${({padding:e})=>e||"1em"};
background-color: ${({bgColor:e})=>e||"red"};
color: ${({color:e})=>e||S};
font-family: ${({family:e})=>e||"PFont-Light"};
width: ${({widthButton:e})=>e||"100%"};
${({margin:e})=>e&&r`margin: ${e};`}
${({border:e})=>e&&r`border: ${e};`}
${({radius:e})=>e&&r`border-radius: ${e};`}
${({height:e})=>e&&r`height: ${e};`}
`;try{p.displayName="RippleButton",p.__docgenInfo={description:"",displayName:"RippleButton",props:{label:{defaultValue:null,description:"",name:"label",required:!1,type:{name:"any"}},onClick:{defaultValue:null,description:"",name:"onClick",required:!1,type:{name:"((e: MouseEvent<HTMLButtonElement, MouseEvent>) => void)"}},loading:{defaultValue:null,description:"",name:"loading",required:!1,type:{name:"boolean"}},style:{defaultValue:null,description:"",name:"style",required:!1,type:{name:"CSSProperties"}},family:{defaultValue:null,description:"",name:"family",required:!1,type:{name:"string"}},border:{defaultValue:null,description:"",name:"border",required:!1,type:{name:"string"}},height:{defaultValue:null,description:"",name:"height",required:!1,type:{name:"string"}},disabled:{defaultValue:null,description:"",name:"disabled",required:!1,type:{name:"boolean"}},standard:{defaultValue:null,description:"",name:"standard",required:!1,type:{name:"boolean"}},active:{defaultValue:null,description:"",name:"active",required:!1,type:{name:"any"}},type:{defaultValue:null,description:"",name:"type",required:!1,type:{name:"enum",value:[{value:'"button"'},{value:'"reset"'},{value:'"submit"'}]}},widthButton:{defaultValue:null,description:"",name:"widthButton",required:!1,type:{name:"string"}},bgColor:{defaultValue:null,description:"",name:"bgColor",required:!1,type:{name:"string"}},color:{defaultValue:null,description:"",name:"color",required:!1,type:{name:"string"}},margin:{defaultValue:null,description:"",name:"margin",required:!1,type:{name:"string"}},padding:{defaultValue:null,description:"",name:"padding",required:!1,type:{name:"string"}},radius:{defaultValue:null,description:"",name:"radius",required:!1,type:{name:"string"}}}}}catch{}export{p as R};