Build 574548stable
Module 657718
4,623 characters · in no known chunkDependencies
Source Raw
function(e,t,n){"use strict";n.d(t,{S:()=>T,a:()=>C});var i=n(627968),r=n(64700),s=n(503698),a=n.n(s),o=n(366010),l=n(765178),u=n(844222),c=n(977067),d=n(187322),_=n(27989),h=n(460890),f=n(145188),E=n(289873),p=n(834730),m=n(518229);let g={xs:"text-xs/medium",sm:"text-sm/medium",md:"text-md/medium"},A={xs:"xxs",sm:"xs",md:"refresh_sm"},I={xs:"sm",sm:"sm",md:"md"};function T(e){let{role:t="button",variant:n="primary",size:s="md",text:_,icon:f,iconPosition:E="start",iconOpticalOffsetMargin:A=0,fullWidth:I=!1,focusProps:T,loading:y,loadingStartedLabel:O,loadingFinishedLabel:R,rounded:v=!1,type:b="button",rel:L,onClick:D,onDoubleClick:w,onMouseEnter:P,onMouseLeave:M,onMouseUp:x,onMouseDown:U,onKeyDown:k,disabled:G,minWidth:V,className:F,style:B,buttonRef:H,...j}=e,W=(0,c.C)(),Y=W?.size??s,K=W?.fullWidth??I,$=null!=_,z=r.useRef(null),q=H??z,Z=(0,i.jsx)(C,{icon:f,iconOpticalOffsetMargin:A,iconPosition:E,size:Y,ref:q,disabled:G}),X="expressive"===n,Q=r.useContext(u.C),{theme:J,i18n:ee}=(0,h.G9)(),et=(0,o.q)(J),en=r.useRef(!1);r.useEffect(()=>{!0===y&&(en.current=!0,l.O.announce(O??ee.BUTTON_LOADING_STARTED_LABEL)),!1===y&&!0===en.current&&(l.O.announce(R??ee.BUTTON_LOADING_FINISHED_LABEL),en.current=!1)},[y,O,R,ee.BUTTON_LOADING_STARTED_LABEL,ee.BUTTON_LOADING_FINISHED_LABEL]);let ei=(0,i.jsxs)("div",{className:a()(m.buttonChildren,{[m.loading]:y}),children:[null!=Z&&"start"===E&&Z,$&&(0,i.jsx)(p.E,{tag:"span",variant:g[Y],color:"none",lineClamp:1,children:_}),null!=Z&&"end"===E&&Z]}),er=G||y,es=V;null!=es&&"number"==typeof es&&(es=`${es}px`);let ea=(0,i.jsx)(d.vN,{...T,children:(0,i.jsxs)("button",{"data-mana-component":"button",role:t,"aria-busy":y,className:a()(m.button,m[Y],m[n],{[m.hasText]:$,[m.fullWidth]:K,[m.rounded]:v}),ref:q,rel:L,type:b,onClick:er?e=>e.preventDefault():D,onDoubleClick:er?e=>e.preventDefault():w,onMouseUp:er?void 0:x,onMouseDown:er?void 0:U,onKeyDown:er?void 0:k,onMouseEnter:er?void 0:P,onMouseLeave:er?void 0:M,disabled:G,style:{"--__button-min-width":es},...j,children:[X&&(0,i.jsx)(N,{hasReducedMotion:Q.reducedMotion.enabled,buttonRef:q,isLightMode:et,disabled:G}),null==y?(0,i.jsx)("div",{className:m.buttonChildrenWrapper,children:ei}):(0,i.jsx)(S,{loading:y,size:Y,children:ei})]})});return X?(0,i.jsx)("div",{className:a()(m.expressiveWrapper,{[m.fullWidth]:K,[m.hasText]:$}),children:ea}):ea}function S(e){let{children:t,loading:n,size:s}=e,o=r.useRef(null),[l,u]=r.useState(n);return r.useEffect(()=>(null!=o.current&&clearTimeout(o.current),n?u(!0):o.current=setTimeout(()=>{u(!1)},500),()=>{null!=o.current&&clearTimeout(o.current)}),[n]),(0,i.jsxs)("div",{className:m.buttonChildrenWrapper,children:[t,l&&(0,i.jsx)("div",{className:a()(m.spinnerWrapper,{[m.fadeIn]:n,[m.fadeOut]:!n}),children:(0,i.jsx)(E.y,{type:E.t.PULSING_ELLIPSIS,className:a()(m.spinner,m[`spinner-${s}`]),itemClassName:m.spinnerItem})})]})}function N(e){let{hasReducedMotion:t,buttonRef:n,isLightMode:s,disabled:o}=e,l=r.useRef(null);return r.useEffect(()=>{if(!o&&t){let e=n.current,t=()=>{l.current?.play()},i=()=>{l.current?.pause()};return e?.addEventListener("mouseenter",t,!0),e?.addEventListener("mouseleave",i,!0),()=>{e?.removeEventListener("mouseenter",t,!0),e?.removeEventListener("mouseleave",i,!0)}}},[t,n,o]),(0,i.jsxs)(i.Fragment,{children:[!o&&(0,i.jsx)(f.s,{className:a()(m.expressiveRive,m.expressiveBackground),eventTargetRef:n,fit:"layout",artboard:"BaseGlowRemapped",ref:l,withReducedMotion:"short-loop"}),!t&&!o&&(0,i.jsx)(f.s,{className:a()(m.expressiveRive,m.expressiveHoverContainer),fit:"layout",artboard:s?"HoverLightmode":"HoverDarkmode"}),(0,i.jsx)("div",{className:a()(m.expressiveRive,m.expressiveFill)})]})}function C(e){let{icon:t,iconOpticalOffsetMargin:n,iconPosition:s,size:a,ref:o,disabled:l}=e,u=null,[c,d]=r.useState(!1);if(r.useEffect(()=>{if("object"==typeof t&&"sticker"===t.type&&null!=o.current){let e=o.current,t=()=>{l||d(!0)},n=()=>{l||d(!1)};return e.addEventListener("mouseenter",t),e.addEventListener("mouseleave",n),()=>{e.removeEventListener("mouseenter",t),e.removeEventListener("mouseleave",n)}}},[t,o,l]),"function"==typeof t||t?.type==="icon"){let e="function"==typeof t?t:t.asset;u=(0,i.jsx)(e,{color:"currentColor",style:function(){if(0===n)return{};switch(s){case"start":return{marginLeft:n};case"end":return{marginRight:n}}return{}}(),size:A[a],className:m.icon})}else if(null!=t)switch(t.type){case"rive":{let e=t.asset;u=(0,i.jsx)(e,{...t.riveProps,eventTargetRef:o,style:{width:_.E[A[a]],height:_.E[A[a]]}});break}case"sticker":{let e=t.component;u=(0,i.jsx)(e,{size:_.E[I[a]],sticker:t.asset,isInteracting:c})}}return u}}