raqam 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -16
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +1 -1
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +1 -1
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
package/dist/react.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import Dt,{createContext,forwardRef,useRef,useMemo,useCallback,useState,useId,useLayoutEffect,useEffect,useContext}from'react';import {jsx}from'react/jsx-runtime';function qe({value:t,defaultValue:e,onChange:r}){let n=t!==void 0,i=useRef(n);typeof window<"u"&&window.__DEV__!==false&&i.current!==n&&console.warn(`[raqam] Component is changing from ${i.current?"controlled":"uncontrolled"} to ${n?"controlled":"uncontrolled"}. Decide between using a controlled or uncontrolled component and don't switch.`);let[a,l]=useState(e),p=useCallback(c=>{let m=typeof c=="function"?c(n?t:a):c;n||l(m),r?.(m);},[n,t,a,r]);return [n?t:a,p]}var nt=new Map;function We(t,e){let r=`${t??""}::${JSON.stringify(e??{})}`,n=nt.get(r);return n||(n=new Intl.NumberFormat(t,e),nt.set(r,n)),n}function bt(t,e){let r=We(t,e),n=We(t,{minimumFractionDigits:1,maximumFractionDigits:1,numberingSystem:e?.numberingSystem}),i=n.formatToParts(-12345.6),a=".",l=",",p="-",c="0";for(let o of i)o.type==="decimal"&&(a=o.value),o.type==="group"&&(l=o.value),o.type==="minusSign"&&(p=o.value);for(let o of n.formatToParts(0))if(o.type==="integer"){c=o.value;break}let m=/^(ar|he|fa|ur|syc|nqo|ug|yi)/i,b=r.resolvedOptions().locale,u=m.test(b);return {decimalSeparator:a,groupingSeparator:l,minusSign:p,zero:c,isRTL:u}}function X(t){let e={...t.formatOptions};t.minimumFractionDigits!==void 0&&(e.minimumFractionDigits=t.minimumFractionDigits),t.maximumFractionDigits!==void 0&&(e.maximumFractionDigits=t.maximumFractionDigits),t.fixedDecimalScale&&t.maximumFractionDigits!==void 0&&(e.minimumFractionDigits=t.maximumFractionDigits,e.maximumFractionDigits=t.maximumFractionDigits);let r=We(t.locale,e),n=null;function i(){return n||(n=bt(t.locale,e)),n}function a(c){let m=r.formatToParts(c);if(!t.prefix&&!t.suffix)return m;let b=[];return t.prefix&&b.push({type:"literal",value:t.prefix}),b.push(...m),t.suffix&&b.push({type:"literal",value:t.suffix}),b}function l(c){if(!Number.isFinite(c))return "";let m=r.format(c);return (t.prefix??"")+m+(t.suffix??"")}function p(c){let m=a(c);return {formatted:m.map(u=>u.value).join(""),parts:m}}return {format:l,formatToParts:a,getLocaleInfo:i,formatResult:p}}var gt=[[1632,1641],[1776,1785],[2406,2415],[2534,2543],[3664,3673]],vt=[...gt];function $(t){return /[^\u0020-\u007e]/.test(t)?t.replace(/\p{Nd}/gu,e=>{let r=e.codePointAt(0);for(let[i,a]of vt)if(r>=i&&r<=a)return String(r-i);let n=Number.parseInt(e,10);return Number.isNaN(n)?e:String(n)}):t}function Je(t,e){if(!e||e==="0")return t;let r=e.codePointAt(0);return r===void 0?t:t.replace(/[0-9]/g,n=>String.fromCodePoint(r+(n.charCodeAt(0)-48)))}function xt(t,e){return e?!!(/^-0+$/.test(t)||/\.$/.test(t)||/\.\d*0$/.test(t)||/^-?\.\d+$/.test(t)):false}function He(t={}){let e=t.allowNegative??true,r=t.allowDecimal??true,n=t.formatOptions?.style==="percent",i=X({locale:t.locale,formatOptions:t.formatOptions,prefix:t.prefix,suffix:t.suffix}),a="";if(t.formatOptions?.style==="currency")try{a=i.formatToParts(1).filter(b=>b.type==="currency").map(b=>b.value).join("");}catch{a="";}function l(){return i.getLocaleInfo()}function p(b){let u=l(),o=$(b);a&&(o=o.split(a).join(""));let L=o.match(/^\((.+)\)$/);if(L&&(o=`-${L[1]}`),t.prefix&&o.startsWith(t.prefix)&&(o=o.slice(t.prefix.length)),t.suffix&&o.endsWith(t.suffix)&&(o=o.slice(0,-t.suffix.length)),u.groupingSeparator&&(o=o.split(u.groupingSeparator).join("")),u.decimalSeparator!=="."&&(o=o.split(u.decimalSeparator).join(".")),u.minusSign!=="-"&&(o=o.split(u.minusSign).join("-")),o.includes("\u2212")&&(o=o.split("\u2212").join("-")),o=o.replace(/[^\d.\-]/g,"").trim(),o.includes("-")){let R=o.startsWith("-");o=o.replace(/-/g,""),R&&(o=`-${o}`);}return o}function c(b){if(!b||b.trim()==="")return {value:null,isValid:false,isIntermediate:false};let u=p(b);if(u==="")return {value:null,isValid:false,isIntermediate:false};if(u==="-")return {value:null,isValid:false,isIntermediate:e};if(u==="."||u==="-.")return {value:null,isValid:false,isIntermediate:r&&(u==="."||e)};if(!e&&u.startsWith("-"))return {value:null,isValid:false,isIntermediate:false};if(!r&&u.includes("."))return {value:null,isValid:false,isIntermediate:false};if(!/^-?(?:\d+\.?\d*|\.\d+)$/.test(u))return {value:null,isValid:false,isIntermediate:false};let o=Number.parseFloat(u);return Number.isFinite(o)?(Object.is(o,-0)&&(o=0),n&&o!==0&&(o=Number((o/100).toPrecision(15))),{value:o,isValid:true,isIntermediate:xt(u,r)}):{value:null,isValid:false,isIntermediate:false}}function m(b){return c(b).isIntermediate}return {parse:c,isIntermediate:m,getLocaleInfo:l}}function Ge(t,e,r){let n=t;return e!==void 0&&(n=Math.max(n,e)),r!==void 0&&(n=Math.min(n,r)),n}function rt(t,e){let n=10**Math.max(it(t),it(e));return Math.round(t*n+e*n)/n}function it(t){if(!Number.isFinite(t))return 0;let e=String(t),r=e.indexOf("e");if(r!==-1){let i=Number(e.slice(r+1)),a=e.indexOf("."),l=a===-1?0:r-a-1;return Math.max(0,l-i)}let n=e.indexOf(".");return n===-1?0:e.length-n-1}function Xe(t){let{locale:e,formatOptions:r,minValue:n,maxValue:i,step:a=1,largeStep:l,smallStep:p,allowNegative:c=true,allowDecimal:m=true,maximumFractionDigits:b,minimumFractionDigits:u,fixedDecimalScale:o,clampBehavior:L="blur",prefix:R,suffix:M,allowOutOfRange:I=false,validate:W,onRawChange:J,formatValue:Z}=t,me=m?u:0,y=m?b:0,O=m?o:false,ie=useMemo(()=>X({locale:e,formatOptions:r,prefix:R,suffix:M,minimumFractionDigits:me,maximumFractionDigits:y,fixedDecimalScale:O}),[e,JSON.stringify(r),R,M,me,y,O]),G=useMemo(()=>He({locale:e,formatOptions:r,allowNegative:c,allowDecimal:m,prefix:R,suffix:M}),[e,JSON.stringify(r),c,m,R,M]),[v,C]=qe({value:t.value,defaultValue:t.defaultValue??null,onChange:t.onChange}),ee=useRef(t.value??t.defaultValue??null),A=useCallback(d=>Z?Z(Object.is(d,-0)?0:d):ie.format(Object.is(d,-0)?0:d),[ie,Z]),xe=useMemo(()=>t.defaultValue!=null?A(t.defaultValue):t.value!=null?A(t.value):"",[]),[oe,U]=useState(xe),ae=useRef(xe),[de,le]=useState(t.defaultValue!=null?String(t.defaultValue):null),Se=useCallback(d=>{if(!W)return {validationState:"valid",validationError:null};let D=W(d);return D===false?{validationState:"invalid",validationError:null}:typeof D=="string"?{validationState:"invalid",validationError:D}:{validationState:"valid",validationError:null}},[W]),Re=useMemo(()=>{let d=t.defaultValue??t.value??null;return Se(d??null)},[]),[Ne,fe]=useState(Re.validationState),[Ee,T]=useState(Re.validationError),[Be,Te]=useState(false),[z,k]=useState(false),ue=useRef("input"),V=useCallback(d=>{ue.current=d;},[]),Fe=useCallback(()=>ue.current,[]),te=t.value,De=useRef(te);if(!Object.is(De.current,te)&&(De.current=te,!Object.is(te,ee.current))){ee.current=te;let d=Object.is(te,-0)?0:te,D=d!=null&&Number.isFinite(d),N=D?A(d):"";ae.current=N,U(N),le(D?String(d):null);}let ye=`${e??""}|${JSON.stringify(r??{})}|${R??""}|${M??""}|${me??""}|${y??""}|${O??""}`,Me=useRef(ye);if(Me.current!==ye&&(Me.current=ye,v!=null&&Number.isFinite(v)&&!z)){let d=A(v);d!==oe&&(U(d),ae.current=d);}let se=useCallback(d=>{let{validationState:D,validationError:N}=Se(d);fe(D),T(N);},[Se]),je=useCallback((d,D)=>{let N=D!==void 0?D:G.parse(d).value;L==="strict"&&!I&&N!==null&&(n!==void 0&&N<n||i!==void 0&&N>i)||(U(d),ee.current=N,C(N),le(N!==null?d:null),J?.(N!==null?d:null),se(N));},[G,L,I,n,i,C,J,se]),Y=useCallback(d=>{if(ee.current=d,C(d),d!=null){let D=A(d);U(D),ae.current=D;let N=String(d);le(N),J?.(N);}else U(""),ae.current="",le(null),J?.(null);se(d);},[A,C,J,se]),_e=useCallback(()=>{if(v==null){U(""),ae.current="";return}let d=v;L==="blur"&&!I&&(d=Ge(v,n,i)),Object.is(d,-0)&&(d=0);let D=A(d);U(D),ae.current=D;let N=d;if(!Z){let _=G.parse(D).value;_!==null&&Number.isFinite(_)&&A(_)===D&&(N=_);}N!==v&&(ee.current=N,C(N)),se(N);},[v,L,I,n,i,G,A,Z,C,se]),ne=v!=null&&Number.isFinite(v)?v:null,$e=l??a*10,Ke=p??a*.1,Ue=!t.disabled&&!t.readOnly&&(I||i===void 0||(ne??Number.NEGATIVE_INFINITY)<i),Ce=!t.disabled&&!t.readOnly&&(I||n===void 0||(ne??Number.POSITIVE_INFINITY)>n),tt=useCallback(d=>{let _=rt(ne??0,d??a),Ve=I?_:Ge(_,n,i);Y(Ve);},[ne,a,n,i,I,Y]),Le=useCallback(d=>{let _=rt(ne??0,-(d??a)),Ve=I?_:Ge(_,n,i);Y(Ve);},[ne,a,n,i,I,Y]),ze=useCallback(()=>{i!==void 0&&Y(i);},[i,Y]),Ye=useCallback(()=>{n!==void 0&&Y(n);},[n,Y]);return {inputValue:oe,numberValue:ne,rawValue:de,canIncrement:Ue,canDecrement:Ce,isScrubbing:Be,setIsScrubbing:Te,isFocused:z,setIsFocused:k,validationState:Ne,validationError:Ee,_setLastChangeReason:V,_getLastChangeReason:Fe,setInputValue:je,setNumberValue:Y,commit:_e,increment:tt,decrement:Le,incrementToMax:ze,decrementToMin:Ye,options:{...t,step:a,largeStep:$e,smallStep:Ke}}}function ot(t,e){return t>="0"&&t<="9"||t===e.decimalSeparator||t===e.minusSign||t==="-"||t==="."&&e.decimalSeparator!=="."&&e.groupingSeparator!=="."}function St(t,e,r){let n=$(t),i=0;for(let a=0;a<e&&a<n.length;a++)ot(n[a],r)&&i++;return i}function Rt(t,e){let r=t.length,n=new Array(r+1).fill(true);for(let i=0;i<r;i++)t[i]===e.groupingSeparator&&(n[i+1]=false);return n[0]=true,n[r]=true,n}function Pe(t,e,r,n,i){let a=$(t),l=St(a,e,n),p=t.slice(0,e),c=p.includes("-")||p.includes(n.minusSign),m=r.includes("-")||r.includes(n.minusSign);c&&!m&&(l=Math.max(0,l-1)),i==="deleteContentBackward"&&e>0&&t[e-1]===n.groupingSeparator&&(l=Math.max(0,l-1));let b=Rt(r,n),u=$(r),o=0,L=0;for(let R=0;R<u.length;R++){if(o===l){L=R;break}ot(u[R],n)&&o++,L=R+1;}return l>0&&o<l&&(L=r.length),L=Ft(L,b),L}function Ft(t,e){if(e[t])return t;for(let r=t+1;r<e.length;r++)if(e[r])return r;for(let r=t-1;r>=0;r--)if(e[r])return r;return 0}function Qe(t,e={}){let{delay:r=400,interval:n=200,disabled:i=false}=e,a=useRef(t);useEffect(()=>{a.current=t;});let l=useRef(r);useEffect(()=>{l.current=r;});let p=useRef(n);useEffect(()=>{p.current=n;});let c=useRef(null),m=useRef(null),b=useRef(false),u=useCallback(()=>{b.current=false,c.current!==null&&(clearTimeout(c.current),c.current=null),m.current!==null&&(clearTimeout(m.current),m.current=null);},[]),o=useCallback(I=>{if(!b.current)return;a.current();let W=Math.max(50,Math.floor(I/2));m.current=setTimeout(()=>{o(W);},I);},[]),L=useCallback(I=>{i||I.button!==0&&I.pointerType==="mouse"||(a.current(),b.current=true,c.current=setTimeout(()=>{o(p.current);},l.current));},[i,o]),R=useCallback(I=>{I.preventDefault(),u();},[u]),M=useCallback(I=>{u();},[u]);return useEffect(()=>u,[u]),{onPointerDown:L,onPointerUp:R,onPointerLeave:M}}function lt(t){return t.replace(/[.*+?^${}()|[\]\\\-]/g,"\\$&")}function Pt(t){let e=t.replace(/\s+/g,"");if(/^[+-]?(?:\d+\.?\d*|\.\d+)[eE][+-]?\d+$/.test(e)){let n=Number(e);return Number.isFinite(n)?n:null}let r=e.match(/^([+-]?(?:\d+\.?\d*|\.\d+))(k|m|b|t|thousand|million|billion|trillion)$/i);if(r){let n={k:1e3,thousand:1e3,m:1e6,million:1e6,b:1e9,billion:1e9,t:1e12,trillion:1e12},i=Number(r[1])*n[r[2].toLowerCase()];return Number.isFinite(i)?i:null}return null}function Ze(t,e,r){let{locale:n,formatOptions:i,minValue:a,maxValue:l,allowNegative:p=true,allowDecimal:c=true,allowMouseWheel:m=false,liveFormat:b=true,prefix:u,suffix:o,name:L,disabled:R,readOnly:M,required:I,onFocus:W,onBlur:J,maximumFractionDigits:Z,minimumFractionDigits:me,fixedDecimalScale:y,copyBehavior:O="formatted",stepHoldDelay:ie=400,stepHoldInterval:G=200,formatValue:v,parseValue:C}=t,ee=i?.notation,A=b&&ee!=="compact"&&ee!=="scientific"&&ee!=="engineering",{step:xe=1,largeStep:oe=xe*10,smallStep:U=xe*.1}=e.options,ae=useId(),de=t.id??`raqam-${ae}`,le=`${de}-label`,Se=`${de}-description`,Re=`${de}-error`,Ne=c?me:0,fe=c?Z:0,Ee=c?y:false,T=useMemo(()=>X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:Ne,maximumFractionDigits:fe,fixedDecimalScale:Ee}),[n,JSON.stringify(i),u,o,Ne,fe,Ee]),Be=i?.style==="percent",Te=c?Be?20:fe:0,z=useMemo(()=>X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:0,maximumFractionDigits:Te,fixedDecimalScale:false}),[n,JSON.stringify(i),u,o,Te]),k=useMemo(()=>He({locale:n,formatOptions:i,allowNegative:p,allowDecimal:c,prefix:u,suffix:o}),[n,JSON.stringify(i),p,c,u,o]),ue=useCallback((f,S)=>{let P=T.getLocaleInfo(),g=S.lastIndexOf(P.decimalSeparator);if(g===-1&&P.decimalSeparator!=="."&&P.groupingSeparator!=="."&&(g=S.lastIndexOf(".")),g===-1||!/\d/.test($(S.slice(0,g))))return null;let F=$(S.slice(g+1)).match(/^\d+/);if(!F)return null;let s=Math.min(F[0].length,fe??20,20);return s===0?null:X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:s,maximumFractionDigits:s}).format(f)},[T,n,JSON.stringify(i),u,o,fe]),V=useRef(null);useLayoutEffect(()=>{V.current!==null&&r.current&&document.activeElement===r.current&&(r.current.setSelectionRange(V.current,V.current),V.current=null);},[e.inputValue,r]),useEffect(()=>{let f=r.current;if(!f||!m)return;let S=P=>{R||M||document.activeElement===f&&(P.preventDefault(),e._setLastChangeReason("wheel"),P.deltaY<0?e.increment():e.decrement());};return f.addEventListener("wheel",S,{passive:false}),()=>f.removeEventListener("wheel",S)},[m,R,M,e,r]);let Fe=useRef(false),te=useCallback(()=>{Fe.current=true;},[]),De=useCallback(f=>{Fe.current=false;let S=f.currentTarget.value,P=T.getLocaleInfo(),g=$(S),F;if(C){let s=C(g);s.isIntermediate?F=g:s.value!==null&&v?F=v(s.value):s.value!==null?F=T.format(s.value):F=g,V.current=F.length;}else if(A){let s=k.parse(g);s.isIntermediate?F=Je(g,P.zero):s.value!==null?F=v?v(s.value):z.format(s.value):F=g===""?"":g,V.current=Pe(S,S.length,F,P,"insertCompositionText");}else F=g,V.current=g.length;e._setLastChangeReason("input"),e.setInputValue(F);},[T,z,k,A,e,v,C]),ye=useCallback(f=>{let S=f.target.value,P=f.target.selectionStart??S.length,g=f.nativeEvent.inputType,F=T.getLocaleInfo();if(Fe.current){e.setInputValue(S);return}let s=$(S);p||(s=s.split("-").join("").split(F.minusSign).join("")),c?F.decimalSeparator!=="."&&F.groupingSeparator!=="."&&(s=s.replace(/\./g,(H,x,h)=>/\d/.test(h[x-1]??"")||/\d/.test(h[x+1]??"")?F.decimalSeparator:".")):s=s.split(".").join("").split(F.decimalSeparator).join("");let E,pe;if(C){let H=C(s);H.isIntermediate?E=s:H.value!==null?E=v?v(H.value):T.format(H.value):s===""?E="":E=s,V.current=E.length;}else if(A){let H=k.parse(s);if(H.isIntermediate)E=(!v&&H.value!==null?ue(H.value,s):null)??Je(s,F.zero);else if(H.value!==null)if(v)E=v(H.value);else {E=z.format(H.value);let x=k.parse(E).value;pe=x!==null&&Number.isFinite(x)&&z.format(x)===E?x:H.value;}else s===""||!/\d/.test(s)?E="":E=s;v?V.current=E.length:V.current=Pe(S,P,E,F,g);}else E=s,V.current=P;e._setLastChangeReason("input"),e.setInputValue(E,pe);},[T,z,k,A,e,v,C,ue]),Me=useCallback(f=>{f.preventDefault();let S=f.clipboardData.getData("text/plain");if(!S)return;let P=S.replace(/[€$£¥₹₺₽﷼฿₩¢₦₨₪₫₱]/g,"").trim(),g=$(P);if(!p){let h=T.getLocaleInfo();g=g.split("-").join("").split(h.minusSign).join("");}if(!c){let h=T.getLocaleInfo();g=g.split(".").join("").split(h.decimalSeparator).join("");}if(e._setLastChangeReason("paste"),C){let h=C(g);if(h.value!==null){let w=v?v(h.value):T.format(h.value);e.setInputValue(w,h.value),V.current=w.length;}return}let F=Pt(g);if(F!==null){let w=i?.style==="percent"?F/100:F,be=v?v(w):T.format(w);e.setInputValue(be,w),V.current=be.length;return}let s=k.parse(g);if(s.value!==null){let h=T.format(s.value);e.setInputValue(h,s.value),V.current=h.length;return}let E=T.getLocaleInfo(),pe=new RegExp(`[^0-9${lt(E.decimalSeparator)}${lt(E.minusSign)}-]`,"g"),H=g.replace(pe,""),x=k.parse(H);if(x.value!==null){let h=T.format(x.value);e.setInputValue(h,x.value),V.current=h.length;}},[k,T,e,v,C]),se=useCallback(f=>{if(O==="formatted")return;f.preventDefault();let S=String(e.numberValue??"");f.clipboardData.setData("text/plain",S);},[O,e.numberValue]),je=useCallback(f=>{if(O==="formatted")return;f.preventDefault();let S=String(e.numberValue??"");f.clipboardData.setData("text/plain",S),e.setInputValue("");},[O,e]),Y=useCallback(f=>{if(R||M)return;let S=f.key;if(!f.metaKey&&!f.ctrlKey&&!f.altKey&&c){let P=T.getLocaleInfo();if(S===P.decimalSeparator||S==="."&&P.decimalSeparator!=="."&&P.groupingSeparator!=="."){let F=r.current;if(F){let s=F.value.indexOf(P.decimalSeparator);if(s!==-1){f.preventDefault(),F.setSelectionRange(s+1,s+1);return}}}}if(S==="Backspace"&&!f.shiftKey&&!f.altKey&&!f.metaKey&&!f.ctrlKey){let P=r.current;if(P){let g=P.selectionStart??0,F=P.selectionEnd??g,s=P.value,E=T.getLocaleInfo();if(g===F&&g>=2&&s[g-1]===E.groupingSeparator){f.preventDefault();let x=s.slice(0,g-2)+s.slice(g),h=k.parse(x);e._setLastChangeReason("input");let w;h.value!==null?(w=ue(h.value,x)??z.format(h.value),e.setInputValue(w,h.value)):(w=x,e.setInputValue(x)),V.current=Pe(x,g-2,w,E,"deleteContentBackward");return}let pe=x=>x!==void 0&&/\p{Nd}/u.test(x),H=x=>x!==void 0&&!pe(x)&&x!==E.decimalSeparator&&x!==E.minusSign&&x!=="-";if(g===F&&g===s.length&&g>=1&&H(s[g-1])){let x=g;for(;x>0&&H(s[x-1]);)x--;if(x>0&&pe(s[x-1])){f.preventDefault();let h=s.slice(0,x-1)+s.slice(x),w=k.parse(h);e._setLastChangeReason("input");let be;w.value!==null&&/\p{Nd}/u.test(h)?(be=ue(w.value,h)??z.format(w.value),e.setInputValue(be,w.value)):(be="",e.setInputValue("")),V.current=Pe(h,x-1,be,E,"deleteContentBackward");return}}}}if(S==="ArrowUp"||S==="ArrowDown"){f.preventDefault();let P=S==="ArrowUp"?1:-1;e._setLastChangeReason("keyboard"),f.shiftKey?P>0?e.increment(oe):e.decrement(oe):f.metaKey||f.ctrlKey?P>0?e.increment(U):e.decrement(U):P>0?e.increment():e.decrement();return}if(S==="PageUp"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.increment(oe);return}if(S==="PageDown"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrement(oe);return}if(S==="Home"){a!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrementToMin());return}if(S==="End"){l!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.incrementToMax());return}if(S==="Enter"){e._setLastChangeReason("blur"),e.commit();return}},[R,M,e,oe,U,a,l,T,z,k,r,c,ue]),_e=useCallback(f=>{e.setIsFocused(false),e._setLastChangeReason("blur"),e.commit(),J?.(f);},[e,J]),ne=useCallback(f=>{e.setIsFocused(true),W?.(f);},[e,W]),$e=Qe(()=>{e._setLastChangeReason("increment"),e.increment();},{delay:ie,interval:G,disabled:R||!e.canIncrement}),Ke=Qe(()=>{e._setLastChangeReason("decrement"),e.decrement();},{delay:ie,interval:G,disabled:R||!e.canDecrement}),Ue=useMemo(()=>{if(e.numberValue!=null)return v?v(e.numberValue):T.format(e.numberValue)},[e.numberValue,T,v]),Ce=T.getLocaleInfo(),Le=e.numberValue!==null&&(a!==void 0&&e.numberValue<a||l!==void 0&&e.numberValue>l)||e.validationState==="invalid",ze={id:le,htmlFor:de},Ye={role:"group","aria-labelledby":t["aria-labelledby"]??le},d={id:de,type:"text",inputMode:"decimal",role:"spinbutton",autoComplete:"off",autoCorrect:"off",spellCheck:false,"aria-label":t["aria-label"],"aria-labelledby":t["aria-labelledby"]??le,"aria-describedby":t["aria-describedby"],"aria-valuenow":e.numberValue??void 0,"aria-valuemin":a,"aria-valuemax":l,"aria-valuetext":Ue,"aria-disabled":R||void 0,"aria-readonly":M||void 0,"aria-required":I||void 0,"aria-invalid":Le?true:void 0,"aria-errormessage":Le&&e.validationError?Re:void 0,disabled:R,readOnly:M,required:I,value:e.inputValue,onChange:ye,onKeyDown:Y,onBlur:_e,onFocus:ne,onPaste:Me,onCopy:O!=="formatted"?se:void 0,onCut:O!=="formatted"?je:void 0,onCompositionStart:te,onCompositionEnd:De,style:Ce.isRTL?{direction:"ltr",textAlign:"right",unicodeBidi:"embed"}:void 0,"data-disabled":R?"":void 0,"data-readonly":M?"":void 0,"data-required":I?"":void 0,"data-invalid":Le?"":void 0,"data-rtl":Ce.isRTL?"":void 0},D=L?{type:"hidden",name:L,value:e.numberValue??"","aria-hidden":true}:null,N={type:"button",tabIndex:-1,"aria-label":"Increase",disabled:R||!e.canIncrement,...$e,"data-disabled":R||!e.canIncrement?"":void 0},_={type:"button",tabIndex:-1,"aria-label":"Decrease",disabled:R||!e.canDecrement,...Ke,"data-disabled":R||!e.canDecrement?"":void 0};return {labelProps:ze,groupProps:Ye,inputProps:d,hiddenInputProps:D,incrementButtonProps:N,decrementButtonProps:_,descriptionProps:{id:Se},errorMessageProps:{id:Re,role:"alert","aria-live":"polite"}}}function ht(t,e={}){let{locale:r,formatOptions:n,prefix:i,suffix:a,minimumFractionDigits:l,maximumFractionDigits:p,fixedDecimalScale:c}=e,m=useMemo(()=>X({locale:r,formatOptions:n,prefix:i,suffix:a,minimumFractionDigits:l,maximumFractionDigits:p,fixedDecimalScale:c}),[r,JSON.stringify(n),i,a,l,p,c]);return useMemo(()=>t==null?"":m.format(t),[t,m])}var ke=createContext(null);function B(){let t=useContext(ke);if(!t)throw new Error("[raqam] NumberField sub-components must be used inside <NumberField.Root>.");return t}function mt(t,e={}){let{direction:r="horizontal",pixelSensitivity:n=4}=e,[i,a]=useState(false),l=useRef(t);l.current=t;let p=useRef(r);p.current=r;let c=useRef(n);c.current=n;let m=useRef(false),b=useRef(0),u=useRef(null),o=useRef({x:0,y:0}),[L,R]=useState({x:0,y:0}),M=useRef(y=>{if(!m.current)return;let O=o.current.x+y.movementX,ie=o.current.y+y.movementY;o.current={x:O,y:ie},R({x:O,y:ie});let G=p.current,v=0;G==="horizontal"?v=y.movementX:G==="vertical"?v=-y.movementY:v=Math.abs(y.movementX)>=Math.abs(y.movementY)?y.movementX:-y.movementY,b.current+=v;let C=c.current;for(;b.current>=C;)l.current.increment(),b.current-=C;for(;b.current<=-C;)l.current.decrement(),b.current+=C;}),I=useRef(()=>{document.pointerLockElement===u.current?(m.current=true,b.current=0,a(true),l.current.setIsScrubbing(true),document.addEventListener("mousemove",M.current)):(m.current=false,b.current=0,document.removeEventListener("mousemove",M.current),a(false),l.current.setIsScrubbing(false));});useEffect(()=>{let y=I.current;return document.addEventListener("pointerlockchange",y),()=>{document.removeEventListener("pointerlockchange",y),document.removeEventListener("mousemove",M.current);}},[]);let W=useCallback(y=>{if(l.current.options.disabled||l.current.options.readOnly||y.button!==0)return;let O=y.currentTarget;u.current=O,o.current={x:y.clientX,y:y.clientY},R({x:y.clientX,y:y.clientY}),O.requestPointerLock();},[]),J=useCallback(y=>{l.current.options.disabled||l.current.options.readOnly||(y.key==="ArrowRight"||y.key==="ArrowUp"?(y.preventDefault(),l.current.increment()):(y.key==="ArrowLeft"||y.key==="ArrowDown")&&(y.preventDefault(),l.current.decrement()));},[]),Z=r==="horizontal"?"ew-resize":r==="vertical"?"ns-resize":"move",me={role:"slider",tabIndex:t.options.disabled?-1:0,style:{cursor:t.options.disabled?void 0:Z,userSelect:"none",WebkitUserSelect:"none"},"aria-label":"Scrub to change value","data-scrubbing":i?"":void 0,onPointerDown:W,onKeyDown:J};return {isScrubbing:i,scrubAreaProps:me,virtualCursor:L}}function ce(t,e,r){return e?typeof e=="function"?e(t.props,r):Dt.cloneElement(e,Object.assign({},t.props,e.props)):t}function Mt(t,e){let{options:r}=t;return {"data-disabled":r.disabled?"":void 0,"data-readonly":r.readOnly?"":void 0,"data-required":r.required?"":void 0,"data-scrubbing":t.isScrubbing?"":void 0,"data-focused":t.isFocused?"":void 0,"data-invalid":e?"":void 0}}var Ct=new Set(["className","style","id","tabIndex","title","role","aria-label","data-testid","onClick","onMouseEnter","onMouseLeave"]);function Vt(t){let e={},r={};for(let[n,i]of Object.entries(t))Ct.has(n)||n.startsWith("data-")||n.startsWith("aria-")?r[n]=i:e[n]=i;return {fieldProps:e,divProps:r}}var Ht=forwardRef(function({children:e,onValueChange:r,onValueCommitted:n,...i},a){let l=useRef(null),{fieldProps:p,divProps:c}=Vt(i),m=p,b=useRef(r);b.current=r;let u=useRef(null),o={...m,onChange:I=>{m.onChange?.(I),b.current&&u.current&&b.current(I,{reason:u.current._getLastChangeReason(),formattedValue:u.current.inputValue});}},L=Xe(o);u.current=L;let R=Ze(o,L,l),M=L.validationState==="invalid"||L.numberValue!==null&&(m.minValue!==void 0&&L.numberValue<m.minValue||m.maxValue!==void 0&&L.numberValue>m.maxValue);return jsx(ke.Provider,{value:{state:L,aria:R,inputRef:l,props:o},children:jsx("div",{ref:a,...c,...Mt(L,M),children:e})})}),Ot=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("label",{ref:i,...a.labelProps,...n,children:r});return ce(p,e,l)}),wt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("div",{ref:i,...a.groupProps,...n,children:r});return ce(p,e,l)}),At=forwardRef(function({render:e,...r},n){let{aria:i,state:a,inputRef:l}=B(),p=jsx("input",{ref:l,...i.inputProps,...r});return ce(p,e,a)}),kt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("button",{ref:i,...a.incrementButtonProps,...n,children:r??"+"});return ce(p,e,l)}),Bt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("button",{ref:i,...a.decrementButtonProps,...n,children:r??"\u2212"});return ce(p,e,l)}),jt=function(){let{aria:e}=B();return e.hiddenInputProps?jsx("input",{...e.hiddenInputProps}):null},_t=forwardRef(function({render:e,children:r,direction:n="horizontal",pixelSensitivity:i=4,...a},l){let{state:p}=B(),{scrubAreaProps:c}=mt(p,{direction:n,pixelSensitivity:i}),m=jsx("span",{ref:l,...c,...a,children:r});return ce(m,e,p)}),$t=forwardRef(function({render:e,children:r,style:n,...i},a){let{state:l}=B();if(!l.isScrubbing)return null;let p=jsx("span",{ref:a,style:{position:"fixed",pointerEvents:"none",zIndex:9999,...n},...i,children:r});return ce(p,e,l)}),Kt=forwardRef(function({children:e,...r},n){let{aria:i}=B();return jsx("p",{ref:n,...i.descriptionProps,...r,children:e})}),Ut=forwardRef(function({children:e,...r},n){let{aria:i,state:a}=B(),l=e??a.validationError??null;return l?jsx("p",{ref:n,...i.errorMessageProps,...r,children:l}):null}),zt=forwardRef(function({render:e,...r},n){let{state:i}=B(),a=jsx("span",{ref:n,"aria-hidden":"true",...r,children:i.inputValue});return ce(a,e,i)}),Yt={Root:Ht,Label:Ot,Group:wt,Input:At,Increment:kt,Decrement:Bt,HiddenInput:jt,ScrubArea:_t,ScrubAreaCursor:$t,Description:Kt,ErrorMessage:Ut,Formatted:zt};export{Yt as NumberField,ke as NumberFieldContext,qe as useControllableState,Ze as useNumberField,B as useNumberFieldContext,ht as useNumberFieldFormat,Xe as useNumberFieldState};//# sourceMappingURL=react.js.map
|
|
2
|
+
import Dt,{createContext,forwardRef,useRef,useMemo,useCallback,useState,useId,useLayoutEffect,useEffect,useContext}from'react';import {jsx}from'react/jsx-runtime';function qe({value:t,defaultValue:e,onChange:r}){let n=t!==void 0,i=useRef(n);typeof window<"u"&&window.__DEV__!==false&&i.current!==n&&console.warn(`[raqam] Component is changing from ${i.current?"controlled":"uncontrolled"} to ${n?"controlled":"uncontrolled"}. Decide between using a controlled or uncontrolled component and don't switch.`);let[a,l]=useState(e),p=useCallback(c=>{let m=typeof c=="function"?c(n?t:a):c;n||l(m),r?.(m);},[n,t,a,r]);return [n?t:a,p]}var nt=new Map;function We(t,e){let r=`${t??""}::${JSON.stringify(e??{})}`,n=nt.get(r);return n||(n=new Intl.NumberFormat(t,e),nt.set(r,n)),n}function bt(t,e){let r=We(t,e),n=We(t,{minimumFractionDigits:1,maximumFractionDigits:1,numberingSystem:e?.numberingSystem}),i=n.formatToParts(-12345.6),a=".",l=",",p="-",c="0";for(let o of i)o.type==="decimal"&&(a=o.value),o.type==="group"&&(l=o.value),o.type==="minusSign"&&(p=o.value);for(let o of n.formatToParts(0))if(o.type==="integer"){c=o.value;break}let m=/^(ar|he|fa|ur|syc|nqo|ug|yi)/i,b=r.resolvedOptions().locale,u=m.test(b);return {decimalSeparator:a,groupingSeparator:l,minusSign:p,zero:c,isRTL:u}}function X(t){let e={...t.formatOptions};t.minimumFractionDigits!==void 0&&(e.minimumFractionDigits=t.minimumFractionDigits),t.maximumFractionDigits!==void 0&&(e.maximumFractionDigits=t.maximumFractionDigits),t.fixedDecimalScale&&t.maximumFractionDigits!==void 0&&(e.minimumFractionDigits=t.maximumFractionDigits,e.maximumFractionDigits=t.maximumFractionDigits);let r=We(t.locale,e),n=null;function i(){return n||(n=bt(t.locale,e)),n}function a(c){let m=r.formatToParts(c);if(!t.prefix&&!t.suffix)return m;let b=[];return t.prefix&&b.push({type:"literal",value:t.prefix}),b.push(...m),t.suffix&&b.push({type:"literal",value:t.suffix}),b}function l(c){if(!Number.isFinite(c))return "";let m=r.format(c);return (t.prefix??"")+m+(t.suffix??"")}function p(c){let m=a(c);return {formatted:m.map(u=>u.value).join(""),parts:m}}return {format:l,formatToParts:a,getLocaleInfo:i,formatResult:p}}var gt=[[1632,1641],[1776,1785],[2406,2415],[2534,2543],[3664,3673]],vt=[...gt];function $(t){return /[^\u0020-\u007e]/.test(t)?t.replace(/\p{Nd}/gu,e=>{let r=e.codePointAt(0);for(let[i,a]of vt)if(r>=i&&r<=a)return String(r-i);let n=Number.parseInt(e,10);return Number.isNaN(n)?e:String(n)}):t}function Je(t,e){if(!e||e==="0")return t;let r=e.codePointAt(0);return r===void 0?t:t.replace(/[0-9]/g,n=>String.fromCodePoint(r+(n.charCodeAt(0)-48)))}function xt(t,e){return e?!!(/^-0+$/.test(t)||/\.$/.test(t)||/\.\d*0$/.test(t)||/^-?\.\d+$/.test(t)):false}function Oe(t={}){let e=t.allowNegative??true,r=t.allowDecimal??true,n=t.formatOptions?.style==="percent",i=X({locale:t.locale,formatOptions:t.formatOptions,prefix:t.prefix,suffix:t.suffix}),a="";if(t.formatOptions?.style==="currency")try{a=i.formatToParts(1).filter(b=>b.type==="currency").map(b=>b.value).join("");}catch{a="";}function l(){return i.getLocaleInfo()}function p(b){let u=l(),o=$(b);a&&(o=o.split(a).join(""));let L=o.match(/^\((.+)\)$/);if(L&&(o=`-${L[1]}`),t.prefix&&o.startsWith(t.prefix)&&(o=o.slice(t.prefix.length)),t.suffix&&o.endsWith(t.suffix)&&(o=o.slice(0,-t.suffix.length)),u.groupingSeparator&&(o=o.split(u.groupingSeparator).join("")),u.decimalSeparator!=="."&&(o=o.split(u.decimalSeparator).join(".")),u.minusSign!=="-"&&(o=o.split(u.minusSign).join("-")),o.includes("\u2212")&&(o=o.split("\u2212").join("-")),o=o.replace(/[^\d.\-]/g,"").trim(),o.includes("-")){let R=o.startsWith("-");o=o.replace(/-/g,""),R&&(o=`-${o}`);}return o}function c(b){if(!b||b.trim()==="")return {value:null,isValid:false,isIntermediate:false};let u=p(b);if(u==="")return {value:null,isValid:false,isIntermediate:false};if(u==="-")return {value:null,isValid:false,isIntermediate:e};if(u==="."||u==="-.")return {value:null,isValid:false,isIntermediate:r&&(u==="."||e)};if(!e&&u.startsWith("-"))return {value:null,isValid:false,isIntermediate:false};if(!r&&u.includes("."))return {value:null,isValid:false,isIntermediate:false};if(!/^-?(?:\d+\.?\d*|\.\d+)$/.test(u))return {value:null,isValid:false,isIntermediate:false};let o=Number.parseFloat(u);return Number.isFinite(o)?(Object.is(o,-0)&&(o=0),n&&o!==0&&(o=Number((o/100).toPrecision(15))),{value:o,isValid:true,isIntermediate:xt(u,r)}):{value:null,isValid:false,isIntermediate:false}}function m(b){return c(b).isIntermediate}return {parse:c,isIntermediate:m,getLocaleInfo:l}}function Ge(t,e,r){let n=t;return e!==void 0&&(n=Math.max(n,e)),r!==void 0&&(n=Math.min(n,r)),n}function rt(t,e){let n=10**Math.max(it(t),it(e));return Math.round(t*n+e*n)/n}function it(t){if(!Number.isFinite(t))return 0;let e=String(t),r=e.indexOf("e");if(r!==-1){let i=Number(e.slice(r+1)),a=e.indexOf("."),l=a===-1?0:r-a-1;return Math.max(0,l-i)}let n=e.indexOf(".");return n===-1?0:e.length-n-1}function Xe(t){let{locale:e,formatOptions:r,minValue:n,maxValue:i,step:a=1,largeStep:l,smallStep:p,allowNegative:c=true,allowDecimal:m=true,maximumFractionDigits:b,minimumFractionDigits:u,fixedDecimalScale:o,clampBehavior:L="blur",prefix:R,suffix:M,allowOutOfRange:I=false,validate:W,onRawChange:J,formatValue:Z}=t,ce=m?u:0,y=m?b:0,O=m?o:false,ie=useMemo(()=>X({locale:e,formatOptions:r,prefix:R,suffix:M,minimumFractionDigits:ce,maximumFractionDigits:y,fixedDecimalScale:O}),[e,JSON.stringify(r),R,M,ce,y,O]),G=useMemo(()=>Oe({locale:e,formatOptions:r,allowNegative:c,allowDecimal:m,prefix:R,suffix:M}),[e,JSON.stringify(r),c,m,R,M]),[v,C]=qe({value:t.value,defaultValue:t.defaultValue??null,onChange:t.onChange}),ee=useRef(t.value??t.defaultValue??null),A=useCallback(d=>Z?Z(Object.is(d,-0)?0:d):ie.format(Object.is(d,-0)?0:d),[ie,Z]),xe=useMemo(()=>t.defaultValue!=null?A(t.defaultValue):t.value!=null?A(t.value):"",[]),[oe,U]=useState(xe),ae=useRef(xe),[me,de]=useState(t.defaultValue!=null?String(t.defaultValue):null),Se=useCallback(d=>{if(!W)return {validationState:"valid",validationError:null};let D=W(d);return D===false?{validationState:"invalid",validationError:null}:typeof D=="string"?{validationState:"invalid",validationError:D}:{validationState:"valid",validationError:null}},[W]),Re=useMemo(()=>{let d=t.defaultValue??t.value??null;return Se(d??null)},[]),[Ee,fe]=useState(Re.validationState),[Te,T]=useState(Re.validationError),[je,De]=useState(false),[z,k]=useState(false),le=useRef("input"),V=useCallback(d=>{le.current=d;},[]),Fe=useCallback(()=>le.current,[]),te=t.value,Me=useRef(te);if(!Object.is(Me.current,te)&&(Me.current=te,!Object.is(te,ee.current))){ee.current=te;let d=Object.is(te,-0)?0:te,D=d!=null&&Number.isFinite(d),N=D?A(d):"";ae.current=N,U(N),de(D?String(d):null);}let ye=`${e??""}|${JSON.stringify(r??{})}|${R??""}|${M??""}|${ce??""}|${y??""}|${O??""}`,Ce=useRef(ye);if(Ce.current!==ye&&(Ce.current=ye,v!=null&&Number.isFinite(v)&&!z)){let d=A(v);d!==oe&&(U(d),ae.current=d);}let ue=useCallback(d=>{let{validationState:D,validationError:N}=Se(d);fe(D),T(N);},[Se]),_e=useCallback((d,D)=>{let N=D!==void 0?D:G.parse(d).value;L==="strict"&&!I&&N!==null&&(n!==void 0&&N<n||i!==void 0&&N>i)||(U(d),ee.current=N,C(N),de(N!==null?d:null),J?.(N!==null?d:null),ue(N));},[G,L,I,n,i,C,J,ue]),Y=useCallback(d=>{if(ee.current=d,C(d),d!=null){let D=A(d);U(D),ae.current=D;let N=String(d);de(N),J?.(N);}else U(""),ae.current="",de(null),J?.(null);ue(d);},[A,C,J,ue]),$e=useCallback(()=>{if(v==null){U(""),ae.current="";return}let d=v;L==="blur"&&!I&&(d=Ge(v,n,i)),Object.is(d,-0)&&(d=0);let D=A(d);U(D),ae.current=D;let N=d;if(!Z){let _=G.parse(D).value;_!==null&&Number.isFinite(_)&&A(_)===D&&(N=_);}N!==v&&(ee.current=N,C(N)),ue(N);},[v,L,I,n,i,G,A,Z,C,ue]),ne=v!=null&&Number.isFinite(v)?v:null,Ke=l??a*10,Ue=p??a*.1,ze=!t.disabled&&!t.readOnly&&(I||i===void 0||(ne??Number.NEGATIVE_INFINITY)<i),Ve=!t.disabled&&!t.readOnly&&(I||n===void 0||(ne??Number.POSITIVE_INFINITY)>n),tt=useCallback(d=>{let _=rt(ne??0,d??a),Ie=I?_:Ge(_,n,i);Y(Ie);},[ne,a,n,i,I,Y]),Le=useCallback(d=>{let _=rt(ne??0,-(d??a)),Ie=I?_:Ge(_,n,i);Y(Ie);},[ne,a,n,i,I,Y]),He=useCallback(()=>{i!==void 0&&Y(i);},[i,Y]),Ye=useCallback(()=>{n!==void 0&&Y(n);},[n,Y]);return {inputValue:oe,numberValue:ne,rawValue:me,canIncrement:ze,canDecrement:Ve,isScrubbing:je,setIsScrubbing:De,isFocused:z,setIsFocused:k,validationState:Ee,validationError:Te,_setLastChangeReason:V,_getLastChangeReason:Fe,setInputValue:_e,setNumberValue:Y,commit:$e,increment:tt,decrement:Le,incrementToMax:He,decrementToMin:Ye,options:{...t,step:a,largeStep:Ke,smallStep:Ue}}}function ot(t,e){return t>="0"&&t<="9"||t===e.decimalSeparator||t===e.minusSign||t==="-"||t==="."&&e.decimalSeparator!=="."&&e.groupingSeparator!=="."}function St(t,e,r){let n=$(t),i=0;for(let a=0;a<e&&a<n.length;a++)ot(n[a],r)&&i++;return i}function Rt(t,e){let r=t.length,n=new Array(r+1).fill(true);for(let i=0;i<r;i++)t[i]===e.groupingSeparator&&(n[i+1]=false);return n[0]=true,n[r]=true,n}function he(t,e,r,n,i){let a=$(t),l=St(a,e,n),p=t.slice(0,e),c=p.includes("-")||p.includes(n.minusSign),m=r.includes("-")||r.includes(n.minusSign);c&&!m&&(l=Math.max(0,l-1)),i==="deleteContentBackward"&&e>0&&t[e-1]===n.groupingSeparator&&(l=Math.max(0,l-1));let b=Rt(r,n),u=$(r),o=0,L=0;for(let R=0;R<u.length;R++){if(o===l){L=R;break}ot(u[R],n)&&o++,L=R+1;}return l>0&&o<l&&(L=r.length),L=Ft(L,b),L}function Ft(t,e){if(e[t])return t;for(let r=t+1;r<e.length;r++)if(e[r])return r;for(let r=t-1;r>=0;r--)if(e[r])return r;return 0}function Qe(t,e={}){let{delay:r=400,interval:n=200,disabled:i=false}=e,a=useRef(t);useEffect(()=>{a.current=t;});let l=useRef(r);useEffect(()=>{l.current=r;});let p=useRef(n);useEffect(()=>{p.current=n;});let c=useRef(null),m=useRef(null),b=useRef(false),u=useCallback(()=>{b.current=false,c.current!==null&&(clearTimeout(c.current),c.current=null),m.current!==null&&(clearTimeout(m.current),m.current=null);},[]),o=useCallback(I=>{if(!b.current)return;a.current();let W=Math.max(50,Math.floor(I/2));m.current=setTimeout(()=>{o(W);},I);},[]),L=useCallback(I=>{i||I.button!==0&&I.pointerType==="mouse"||(a.current(),b.current=true,c.current=setTimeout(()=>{o(p.current);},l.current));},[i,o]),R=useCallback(I=>{I.preventDefault(),u();},[u]),M=useCallback(I=>{u();},[u]);return useEffect(()=>u,[u]),{onPointerDown:L,onPointerUp:R,onPointerLeave:M}}function lt(t){return t.replace(/[.*+?^${}()|[\]\\\-]/g,"\\$&")}function Pt(t){let e=t.replace(/\s+/g,"");if(/^[+-]?(?:\d+\.?\d*|\.\d+)[eE][+-]?\d+$/.test(e)){let n=Number(e);return Number.isFinite(n)?n:null}let r=e.match(/^([+-]?(?:\d+\.?\d*|\.\d+))(k|m|b|t|thousand|million|billion|trillion)$/i);if(r){let n={k:1e3,thousand:1e3,m:1e6,million:1e6,b:1e9,billion:1e9,t:1e12,trillion:1e12},i=Number(r[1])*n[r[2].toLowerCase()];return Number.isFinite(i)?i:null}return null}function Ze(t,e,r){let{locale:n,formatOptions:i,minValue:a,maxValue:l,allowNegative:p=true,allowDecimal:c=true,allowMouseWheel:m=false,liveFormat:b=true,prefix:u,suffix:o,name:L,disabled:R,readOnly:M,required:I,onFocus:W,onBlur:J,maximumFractionDigits:Z,minimumFractionDigits:ce,fixedDecimalScale:y,copyBehavior:O="formatted",stepHoldDelay:ie=400,stepHoldInterval:G=200,formatValue:v,parseValue:C}=t,ee=i?.notation,A=b&&ee!=="compact"&&ee!=="scientific"&&ee!=="engineering",{step:xe=1,largeStep:oe=xe*10,smallStep:U=xe*.1}=e.options,ae=useId(),me=t.id??`raqam-${ae}`,de=`${me}-label`,Se=`${me}-description`,Re=`${me}-error`,Ee=c?ce:0,fe=c?Z:0,Te=c?y:false,T=useMemo(()=>X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:Ee,maximumFractionDigits:fe,fixedDecimalScale:Te}),[n,JSON.stringify(i),u,o,Ee,fe,Te]),je=i?.style==="percent",De=c?je?20:fe:0,z=useMemo(()=>X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:0,maximumFractionDigits:De,fixedDecimalScale:false}),[n,JSON.stringify(i),u,o,De]),k=useMemo(()=>Oe({locale:n,formatOptions:i,allowNegative:p,allowDecimal:c,prefix:u,suffix:o}),[n,JSON.stringify(i),p,c,u,o]),le=useCallback((f,S)=>{let P=T.getLocaleInfo(),g=S.lastIndexOf(P.decimalSeparator);if(g===-1&&P.decimalSeparator!=="."&&P.groupingSeparator!=="."&&(g=S.lastIndexOf(".")),g===-1||!/\d/.test($(S.slice(0,g))))return null;let F=$(S.slice(g+1)).match(/^\d+/);if(!F)return null;let s=Math.min(F[0].length,fe??20,20);return s===0?null:X({locale:n,formatOptions:i,prefix:u,suffix:o,minimumFractionDigits:s,maximumFractionDigits:s}).format(f)},[T,n,JSON.stringify(i),u,o,fe]),V=useRef(null);useLayoutEffect(()=>{V.current!==null&&r.current&&document.activeElement===r.current&&(r.current.setSelectionRange(V.current,V.current),V.current=null);},[e.inputValue,r]),useEffect(()=>{let f=r.current;if(!f||!m)return;let S=P=>{R||M||document.activeElement===f&&(P.preventDefault(),e._setLastChangeReason("wheel"),P.deltaY<0?e.increment():e.decrement());};return f.addEventListener("wheel",S,{passive:false}),()=>f.removeEventListener("wheel",S)},[m,R,M,e,r]);let Fe=useRef(false),te=useCallback(()=>{Fe.current=true;},[]),Me=useCallback(f=>{Fe.current=false;let S=f.currentTarget.value,P=T.getLocaleInfo(),g=$(S),F;if(C){let s=C(g);s.isIntermediate?F=g:s.value!==null&&v?F=v(s.value):s.value!==null?F=T.format(s.value):F=g,V.current=F.length;}else if(A){let s=k.parse(g);s.isIntermediate?F=Je(g,P.zero):s.value!==null?F=v?v(s.value):z.format(s.value):F=g===""?"":g,V.current=he(S,S.length,F,P,"insertCompositionText");}else F=g,V.current=g.length;e._setLastChangeReason("input"),e.setInputValue(F);},[T,z,k,A,e,v,C]),ye=useCallback(f=>{let S=f.target.value,P=f.target.selectionStart??S.length,g=f.nativeEvent.inputType,F=T.getLocaleInfo();if(Fe.current){e.setInputValue(S);return}let s=$(S);p||(s=s.split("-").join("").split(F.minusSign).join("")),c?F.decimalSeparator!=="."&&F.groupingSeparator!=="."&&(s=s.replace(/\./g,(H,x,h)=>/\d/.test(h[x-1]??"")||/\d/.test(h[x+1]??"")?F.decimalSeparator:".")):s=s.split(".").join("").split(F.decimalSeparator).join("");let E,pe;if(C){let H=C(s);H.isIntermediate?E=s:H.value!==null?E=v?v(H.value):T.format(H.value):s===""?E="":E=s,V.current=E.length;}else if(A){let H=k.parse(s);if(H.isIntermediate)E=(!v&&H.value!==null?le(H.value,s):null)??Je(s,F.zero);else if(H.value!==null)if(v)E=v(H.value);else {E=z.format(H.value);let x=k.parse(E).value;pe=x!==null&&Number.isFinite(x)&&z.format(x)===E?x:H.value;}else s===""||!/\d/.test(s)?E="":E=s;v?V.current=E.length:V.current=he(S,P,E,F,g);}else E=s,V.current=P;e._setLastChangeReason("input"),e.setInputValue(E,pe);},[T,z,k,A,e,v,C,le]),Ce=useCallback(f=>{f.preventDefault();let S=f.clipboardData.getData("text/plain");if(!S)return;let P=S.replace(/[€$£¥₹₺₽﷼฿₩¢₦₨₪₫₱]/g,"").trim(),g=$(P);if(!p){let h=T.getLocaleInfo();g=g.split("-").join("").split(h.minusSign).join("");}if(!c){let h=T.getLocaleInfo();g=g.split(".").join("").split(h.decimalSeparator).join("");}if(e._setLastChangeReason("paste"),C){let h=C(g);if(h.value!==null){let w=v?v(h.value):T.format(h.value);e.setInputValue(w,h.value),V.current=w.length;}return}let F=Pt(g);if(F!==null){let w=i?.style==="percent"?F/100:F,be=v?v(w):T.format(w);e.setInputValue(be,w),V.current=be.length;return}let s=k.parse(g);if(s.value!==null){let h=T.format(s.value);e.setInputValue(h,s.value),V.current=h.length;return}let E=T.getLocaleInfo(),pe=new RegExp(`[^0-9${lt(E.decimalSeparator)}${lt(E.minusSign)}-]`,"g"),H=g.replace(pe,""),x=k.parse(H);if(x.value!==null){let h=T.format(x.value);e.setInputValue(h,x.value),V.current=h.length;}},[k,T,e,v,C]),ue=useCallback(f=>{if(O==="formatted")return;f.preventDefault();let S=String(e.numberValue??"");f.clipboardData.setData("text/plain",S);},[O,e.numberValue]),_e=useCallback(f=>{if(O==="formatted")return;f.preventDefault();let S=String(e.numberValue??"");f.clipboardData.setData("text/plain",S),e.setInputValue("");},[O,e]),Y=useCallback(f=>{if(R||M)return;let S=f.key;if(!f.metaKey&&!f.ctrlKey&&!f.altKey&&c){let P=T.getLocaleInfo();if(S===P.decimalSeparator||S==="."&&P.decimalSeparator!=="."&&P.groupingSeparator!=="."){let F=r.current;if(F){let s=F.value.indexOf(P.decimalSeparator);if(s!==-1){f.preventDefault(),F.setSelectionRange(s+1,s+1);return}}}}if(S==="Backspace"&&!f.shiftKey&&!f.altKey&&!f.metaKey&&!f.ctrlKey){let P=r.current;if(P){let g=P.selectionStart??0,F=P.selectionEnd??g,s=P.value,E=T.getLocaleInfo();if(g===F&&g>=2&&s[g-1]===E.groupingSeparator){f.preventDefault();let x=s.slice(0,g-2)+s.slice(g),h=k.parse(x);e._setLastChangeReason("input");let w;h.value!==null?(w=le(h.value,x)??z.format(h.value),e.setInputValue(w,h.value)):(w=x,e.setInputValue(x)),V.current=he(x,g-2,w,E,"deleteContentBackward");return}let pe=x=>x!==void 0&&/\p{Nd}/u.test(x),H=x=>x!==void 0&&!pe(x)&&x!==E.decimalSeparator&&x!==E.minusSign&&x!=="-";if(g===F&&g===s.length&&g>=1&&H(s[g-1])){let x=g;for(;x>0&&H(s[x-1]);)x--;if(x>0&&pe(s[x-1])){f.preventDefault();let h=s.slice(0,x-1)+s.slice(x),w=k.parse(h);e._setLastChangeReason("input");let be;w.value!==null&&/\p{Nd}/u.test(h)?(be=le(w.value,h)??z.format(w.value),e.setInputValue(be,w.value)):(be="",e.setInputValue("")),V.current=he(h,x-1,be,E,"deleteContentBackward");return}}}}if(S==="ArrowUp"||S==="ArrowDown"){f.preventDefault();let P=S==="ArrowUp"?1:-1;e._setLastChangeReason("keyboard"),f.shiftKey?P>0?e.increment(oe):e.decrement(oe):f.metaKey||f.ctrlKey?P>0?e.increment(U):e.decrement(U):P>0?e.increment():e.decrement();return}if(S==="PageUp"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.increment(oe);return}if(S==="PageDown"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrement(oe);return}if(S==="Home"){a!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrementToMin());return}if(S==="End"){l!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.incrementToMax());return}if(S==="Enter"){e._setLastChangeReason("blur"),e.commit();return}},[R,M,e,oe,U,a,l,T,z,k,r,c,le]),$e=useCallback(f=>{e.setIsFocused(false),e._setLastChangeReason("blur"),e.commit(),J?.(f);},[e,J]),ne=useCallback(f=>{e.setIsFocused(true),W?.(f);},[e,W]),Ke=Qe(()=>{e._setLastChangeReason("increment"),e.increment();},{delay:ie,interval:G,disabled:R||!e.canIncrement}),Ue=Qe(()=>{e._setLastChangeReason("decrement"),e.decrement();},{delay:ie,interval:G,disabled:R||!e.canDecrement}),ze=useMemo(()=>{if(e.numberValue!=null)return v?v(e.numberValue):T.format(e.numberValue)},[e.numberValue,T,v]),Ve=T.getLocaleInfo(),Le=e.numberValue!==null&&(a!==void 0&&e.numberValue<a||l!==void 0&&e.numberValue>l)||e.validationState==="invalid",He=t["aria-labelledby"]??(t["aria-label"]?void 0:de),Ye={id:de,htmlFor:me},d={role:"group","aria-labelledby":He},D={id:me,type:"text",inputMode:"decimal",role:"spinbutton",autoComplete:"off",autoCorrect:"off",spellCheck:false,"aria-label":t["aria-label"],"aria-labelledby":He,"aria-describedby":t["aria-describedby"],"aria-valuenow":e.numberValue??void 0,"aria-valuemin":a,"aria-valuemax":l,"aria-valuetext":ze,"aria-disabled":R||void 0,"aria-readonly":M||void 0,"aria-required":I||void 0,"aria-invalid":Le?true:void 0,"aria-errormessage":Le&&e.validationError?Re:void 0,disabled:R,readOnly:M,required:I,value:e.inputValue,onChange:ye,onKeyDown:Y,onBlur:$e,onFocus:ne,onPaste:Ce,onCopy:O!=="formatted"?ue:void 0,onCut:O!=="formatted"?_e:void 0,onCompositionStart:te,onCompositionEnd:Me,style:Ve.isRTL?{direction:"ltr",textAlign:"right",unicodeBidi:"embed"}:void 0,"data-disabled":R?"":void 0,"data-readonly":M?"":void 0,"data-required":I?"":void 0,"data-invalid":Le?"":void 0,"data-rtl":Ve.isRTL?"":void 0},N=L?{type:"hidden",name:L,value:e.numberValue??"","aria-hidden":true}:null,_={type:"button",tabIndex:-1,"aria-label":"Increase",disabled:R||!e.canIncrement,...Ke,"data-disabled":R||!e.canIncrement?"":void 0},Ie={type:"button",tabIndex:-1,"aria-label":"Decrease",disabled:R||!e.canDecrement,...Ue,"data-disabled":R||!e.canDecrement?"":void 0};return {labelProps:Ye,groupProps:d,inputProps:D,hiddenInputProps:N,incrementButtonProps:_,decrementButtonProps:Ie,descriptionProps:{id:Se},errorMessageProps:{id:Re,role:"alert","aria-live":"polite"}}}function ht(t,e={}){let{locale:r,formatOptions:n,prefix:i,suffix:a,minimumFractionDigits:l,maximumFractionDigits:p,fixedDecimalScale:c}=e,m=useMemo(()=>X({locale:r,formatOptions:n,prefix:i,suffix:a,minimumFractionDigits:l,maximumFractionDigits:p,fixedDecimalScale:c}),[r,JSON.stringify(n),i,a,l,p,c]);return useMemo(()=>t==null?"":m.format(t),[t,m])}var Be=createContext(null);function B(){let t=useContext(Be);if(!t)throw new Error("[raqam] NumberField sub-components must be used inside <NumberField.Root>.");return t}function mt(t,e={}){let{direction:r="horizontal",pixelSensitivity:n=4}=e,[i,a]=useState(false),l=useRef(t);l.current=t;let p=useRef(r);p.current=r;let c=useRef(n);c.current=n;let m=useRef(false),b=useRef(0),u=useRef(null),o=useRef({x:0,y:0}),[L,R]=useState({x:0,y:0}),M=useRef(y=>{if(!m.current)return;let O=o.current.x+y.movementX,ie=o.current.y+y.movementY;o.current={x:O,y:ie},R({x:O,y:ie});let G=p.current,v=0;G==="horizontal"?v=y.movementX:G==="vertical"?v=-y.movementY:v=Math.abs(y.movementX)>=Math.abs(y.movementY)?y.movementX:-y.movementY,b.current+=v;let C=c.current;for(;b.current>=C;)l.current.increment(),b.current-=C;for(;b.current<=-C;)l.current.decrement(),b.current+=C;}),I=useRef(()=>{document.pointerLockElement===u.current?(m.current=true,b.current=0,a(true),l.current.setIsScrubbing(true),document.addEventListener("mousemove",M.current)):(m.current=false,b.current=0,document.removeEventListener("mousemove",M.current),a(false),l.current.setIsScrubbing(false));});useEffect(()=>{let y=I.current;return document.addEventListener("pointerlockchange",y),()=>{document.removeEventListener("pointerlockchange",y),document.removeEventListener("mousemove",M.current);}},[]);let W=useCallback(y=>{if(l.current.options.disabled||l.current.options.readOnly||y.button!==0)return;let O=y.currentTarget;u.current=O,o.current={x:y.clientX,y:y.clientY},R({x:y.clientX,y:y.clientY}),O.requestPointerLock();},[]),J=useCallback(y=>{l.current.options.disabled||l.current.options.readOnly||(y.key==="ArrowRight"||y.key==="ArrowUp"?(y.preventDefault(),l.current.increment()):(y.key==="ArrowLeft"||y.key==="ArrowDown")&&(y.preventDefault(),l.current.decrement()));},[]),Z=r==="horizontal"?"ew-resize":r==="vertical"?"ns-resize":"move",ce={role:"slider",tabIndex:t.options.disabled?-1:0,style:{cursor:t.options.disabled?void 0:Z,userSelect:"none",WebkitUserSelect:"none"},"aria-label":"Scrub to change value","data-scrubbing":i?"":void 0,onPointerDown:W,onKeyDown:J};return {isScrubbing:i,scrubAreaProps:ce,virtualCursor:L}}function se(t,e,r){return e?typeof e=="function"?e(t.props,r):Dt.cloneElement(e,Object.assign({},t.props,e.props)):t}function Mt(t,e){let{options:r}=t;return {"data-disabled":r.disabled?"":void 0,"data-readonly":r.readOnly?"":void 0,"data-required":r.required?"":void 0,"data-scrubbing":t.isScrubbing?"":void 0,"data-focused":t.isFocused?"":void 0,"data-invalid":e?"":void 0}}var Ct=new Set(["className","style","id","tabIndex","title","role","aria-label","data-testid","onClick","onMouseEnter","onMouseLeave"]);function Vt(t){let e={},r={};for(let[n,i]of Object.entries(t))Ct.has(n)||n.startsWith("data-")||n.startsWith("aria-")?r[n]=i:e[n]=i;return {fieldProps:e,divProps:r}}var Ht=forwardRef(function({children:e,onValueChange:r,onValueCommitted:n,...i},a){let l=useRef(null),{fieldProps:p,divProps:c}=Vt(i),m=p,b=useRef(r);b.current=r;let u=useRef(null),o={...m,onChange:I=>{m.onChange?.(I),b.current&&u.current&&b.current(I,{reason:u.current._getLastChangeReason(),formattedValue:u.current.inputValue});}},L=Xe(o);u.current=L;let R=Ze(o,L,l),M=L.validationState==="invalid"||L.numberValue!==null&&(m.minValue!==void 0&&L.numberValue<m.minValue||m.maxValue!==void 0&&L.numberValue>m.maxValue);return jsx(Be.Provider,{value:{state:L,aria:R,inputRef:l,props:o},children:jsx("div",{ref:a,...c,...Mt(L,M),children:e})})}),Ot=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("label",{ref:i,...a.labelProps,...n,children:r});return se(p,e,l)}),wt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("div",{ref:i,...a.groupProps,...n,children:r});return se(p,e,l)}),At=forwardRef(function({render:e,...r},n){let{aria:i,state:a,inputRef:l}=B(),p=jsx("input",{ref:l,...i.inputProps,...r});return se(p,e,a)}),kt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("button",{ref:i,...a.incrementButtonProps,...n,children:r??"+"});return se(p,e,l)}),Bt=forwardRef(function({render:e,children:r,...n},i){let{aria:a,state:l}=B(),p=jsx("button",{ref:i,...a.decrementButtonProps,...n,children:r??"\u2212"});return se(p,e,l)}),jt=function(){let{aria:e}=B();return e.hiddenInputProps?jsx("input",{...e.hiddenInputProps}):null},_t=forwardRef(function({render:e,children:r,direction:n="horizontal",pixelSensitivity:i=4,...a},l){let{state:p}=B(),{scrubAreaProps:c}=mt(p,{direction:n,pixelSensitivity:i}),m=jsx("span",{ref:l,...c,...a,children:r});return se(m,e,p)}),$t=forwardRef(function({render:e,children:r,style:n,...i},a){let{state:l}=B();if(!l.isScrubbing)return null;let p=jsx("span",{ref:a,style:{position:"fixed",pointerEvents:"none",zIndex:9999,...n},...i,children:r});return se(p,e,l)}),Kt=forwardRef(function({children:e,...r},n){let{aria:i}=B();return jsx("p",{ref:n,...i.descriptionProps,...r,children:e})}),Ut=forwardRef(function({children:e,...r},n){let{aria:i,state:a}=B(),l=e??a.validationError??null;return l?jsx("p",{ref:n,...i.errorMessageProps,...r,children:l}):null}),zt=forwardRef(function({render:e,...r},n){let{state:i}=B(),a=jsx("span",{ref:n,"aria-hidden":"true",...r,children:i.inputValue});return se(a,e,i)}),Yt={Root:Ht,Label:Ot,Group:wt,Input:At,Increment:kt,Decrement:Bt,HiddenInput:jt,ScrubArea:_t,ScrubAreaCursor:$t,Description:Kt,ErrorMessage:Ut,Formatted:zt};export{Yt as NumberField,Be as NumberFieldContext,qe as useControllableState,Ze as useNumberField,B as useNumberFieldContext,ht as useNumberFieldFormat,Xe as useNumberFieldState};//# sourceMappingURL=react.js.map
|
|
3
3
|
//# sourceMappingURL=react.js.map
|