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