UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 983 B
import{jsx as e}from"react/jsx-runtime";import{NumberField as n}from"@base-ui-components/react";import{memo as t,useState as r,useEffect as o,useCallback as a}from"react";import l from"./InternalInputComponent.js";const u=t(({disabled:t=!1,placeholder:u,max:i=1/0,min:s=-1/0,internalChange:m,startAdornment:d,endAdornment:p,slotProps:c,onChange:h,inputRef:f,hideActionButtons:b,step:N=1,value:g})=>{const A=()=>{if(null==g)return null;const e=Number(g);return isNaN(e)?null:e},[C,v]=r(A());o(()=>{const e=A();v(e)},[g]);const x=a(e=>{v(e),h&&h(e),m&&m()},[m,h]),I=a(e=>{const n=e.target.value.trim();if(""===n)return void x(null);let t=Number(n.replace(/,/g,""));isNaN(t)?x(null):(t<0&&(t=Math.abs(t)),t<s&&(t=s),t>i&&(t=i),x(t))},[x,i,s]);return e(n.Root,{step:N,min:s,max:i,onValueChange:x,onChangeCapture:I,value:C,disabled:t,children:e(n.Input,{render:n=>e(l,{ref:f,...n,...c?.input,hideActionButtons:b,startAdornment:d,endAdornment:p,placeholder:u})})})});export{u as default};