UNPKG

@guruhotel/aura-ui

Version:

⚛️ React UI library by GuruHotel

1 lines 2.34 kB
exports.__esModule=!0,exports.Step=void 0;var e=require("../../../icons"),r=function(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=a(r);if(t&&t.has(e))return t.get(e);var i={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in e)if("default"!==n&&Object.prototype.hasOwnProperty.call(e,n)){var l=o?Object.getOwnPropertyDescriptor(e,n):null;l&&(l.get||l.set)?Object.defineProperty(i,n,l):i[n]=e[n]}i.default=e,t&&t.set(e,i);return i}(require("react")),t=require("../../../spinner"),i=require("../../context"),o=require("../connector"),n=require("../step-label"),l=require("./step.styles"),s=require("react/jsx-runtime");function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(a=function(e){return e?t:r})(e)}const c=r.forwardRef(((a,c)=>{const{children:u,description:p,icon:d,index:f,isCompletedStep:b,isCurrentStep:S,isLastStep:h,label:x,optional:C,optionalLabel:j}=a,{isVertical:y,isError:v,isLoading:m,successIcon:k,errorIcon:L,isLabelVertical:M,onClickStep:g,clickable:q,colorScheme:O,size:w,css:$,rounded:P,variant:V}=(0,i.useStepsContext)(),_=S||b,z=_?1:.8,W=r.useMemo((()=>d||null),[d]),B=r.useMemo((()=>k||(0,s.jsx)(e.CheckSolid,{label:"Check",color:"currentColor"})),[k]),D=r.useMemo((()=>L||(0,s.jsx)(e.CrossRegular,{label:"Error",color:"red"})),[L]),E=r.useMemo((()=>{if(b)return B;if(S){if(v)return D;if(m)return(0,s.jsx)(t.Spinner,{size:w,colorScheme:O,css:{borderLeftColor:"solid"===V?`$${O}1`:"outline"===V?`$${O}11`:"inherit"}})}return W||(f||0)+1}),[b,B,S,W,f,v,D,m,w,O,V]);return(0,s.jsxs)(l.StepContainer,{ref:c,lastStep:h,isVertical:y,isClickable:q&&!!g,opacity:!_,onClick:()=>(e=>{q&&g&&g(e)})(f),"aria-disabled":!_,children:[(0,s.jsxs)(l.StepButtonContainer,{isLabelVertical:M,children:[(0,s.jsx)(l.StepButton,{"aria-current":S?"step":void 0,"data-invalid":S&&v,"data-highlighted":b,"data-clickable":q,css:{...null==$?void 0:$.button,rounded:P?"$full":"$none"},colorScheme:S&&v?"red":b?"nature":O,variant:V,size:w,disabled:!(_||q),children:E}),(0,s.jsx)(n.StepLabel,{label:x,description:p,optional:C,optionalLabel:j,isCurrentStep:S,opacity:z})]}),(0,s.jsx)(o.Connector,{index:f,isLastStep:h,hasLabel:!!x||!!p,isCompletedStep:b||!1,children:(S||b)&&u})]})}));exports.Step=c,c.displayName="Step";