raqam 0.3.1 → 0.4.0

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.
Files changed (88) hide show
  1. package/README.md +25 -9
  2. package/dist/chunk-4GNLVHAM.js +2 -0
  3. package/dist/chunk-4GNLVHAM.js.map +1 -0
  4. package/dist/chunk-5LYK54TH.js +2 -0
  5. package/dist/chunk-5LYK54TH.js.map +1 -0
  6. package/dist/chunk-C5MK5U3F.js +2 -0
  7. package/dist/chunk-C5MK5U3F.js.map +1 -0
  8. package/dist/chunk-CAHEQQ5J.cjs +2 -0
  9. package/dist/chunk-CAHEQQ5J.cjs.map +1 -0
  10. package/dist/chunk-G7ACJUKH.js +2 -0
  11. package/dist/chunk-G7ACJUKH.js.map +1 -0
  12. package/dist/chunk-GAKIDRGS.cjs +2 -0
  13. package/dist/chunk-GAKIDRGS.cjs.map +1 -0
  14. package/dist/chunk-I3H3UMZD.cjs +2 -0
  15. package/dist/chunk-I3H3UMZD.cjs.map +1 -0
  16. package/dist/chunk-LD6OTXXT.js +2 -0
  17. package/dist/chunk-LD6OTXXT.js.map +1 -0
  18. package/dist/chunk-MNYIBO2M.cjs +2 -0
  19. package/dist/chunk-MNYIBO2M.cjs.map +1 -0
  20. package/dist/chunk-MOES3T6R.js +2 -0
  21. package/dist/chunk-MOES3T6R.js.map +1 -0
  22. package/dist/chunk-MUO4XNLX.cjs +2 -0
  23. package/dist/chunk-MUO4XNLX.cjs.map +1 -0
  24. package/dist/chunk-P6AWGQPY.js +2 -0
  25. package/dist/chunk-P6AWGQPY.js.map +1 -0
  26. package/dist/chunk-TFY7JMI6.js +2 -0
  27. package/dist/chunk-TFY7JMI6.js.map +1 -0
  28. package/dist/chunk-UYZYSVT5.cjs +2 -0
  29. package/dist/chunk-UYZYSVT5.cjs.map +1 -0
  30. package/dist/chunk-XJZHLJ2C.cjs +2 -0
  31. package/dist/chunk-XJZHLJ2C.cjs.map +1 -0
  32. package/dist/chunk-YUKLLK4G.cjs +2 -0
  33. package/dist/chunk-YUKLLK4G.cjs.map +1 -0
  34. package/dist/chunk-ZKLZ7UKZ.cjs +2 -0
  35. package/dist/chunk-ZKLZ7UKZ.cjs.map +1 -0
  36. package/dist/chunk-ZWDI6EPF.js +2 -0
  37. package/dist/chunk-ZWDI6EPF.js.map +1 -0
  38. package/dist/core.cjs +1 -1
  39. package/dist/core.cjs.map +1 -1
  40. package/dist/core.d.cts +68 -295
  41. package/dist/core.d.ts +68 -295
  42. package/dist/core.js +1 -1
  43. package/dist/core.js.map +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +12 -133
  47. package/dist/index.d.ts +12 -133
  48. package/dist/index.js +1 -1
  49. package/dist/index.js.map +1 -1
  50. package/dist/locales/ar.cjs +1 -35
  51. package/dist/locales/ar.cjs.map +1 -1
  52. package/dist/locales/ar.js +1 -3
  53. package/dist/locales/bn.cjs +1 -35
  54. package/dist/locales/bn.cjs.map +1 -1
  55. package/dist/locales/bn.js +1 -3
  56. package/dist/locales/fa.cjs +1 -37
  57. package/dist/locales/fa.cjs.map +1 -1
  58. package/dist/locales/fa.js +1 -3
  59. package/dist/locales/hi.cjs +1 -35
  60. package/dist/locales/hi.cjs.map +1 -1
  61. package/dist/locales/hi.js +1 -3
  62. package/dist/locales/index.cjs +1 -77
  63. package/dist/locales/index.cjs.map +1 -1
  64. package/dist/locales/index.js +1 -7
  65. package/dist/locales/th.cjs +1 -35
  66. package/dist/locales/th.cjs.map +1 -1
  67. package/dist/locales/th.js +1 -3
  68. package/dist/react.cjs +1 -1
  69. package/dist/react.cjs.map +1 -1
  70. package/dist/react.d.cts +117 -3
  71. package/dist/react.d.ts +117 -3
  72. package/dist/react.js +1 -1
  73. package/dist/react.js.map +1 -1
  74. package/dist/{index-BMFJwudG.d.cts → types-B2ZqkJI-.d.cts} +34 -107
  75. package/dist/{index-BMFJwudG.d.ts → types-B2ZqkJI-.d.ts} +34 -107
  76. package/package.json +28 -6
  77. package/dist/chunk-4AMLNJEK.js +0 -14
  78. package/dist/chunk-4AMLNJEK.js.map +0 -1
  79. package/dist/chunk-7IEJOMYT.js +0 -14
  80. package/dist/chunk-7IEJOMYT.js.map +0 -1
  81. package/dist/chunk-HPUEM7JB.js +0 -14
  82. package/dist/chunk-HPUEM7JB.js.map +0 -1
  83. package/dist/chunk-OLLREWX6.js +0 -16
  84. package/dist/chunk-OLLREWX6.js.map +0 -1
  85. package/dist/chunk-RP3DVBGJ.js +0 -14
  86. package/dist/chunk-RP3DVBGJ.js.map +0 -1
  87. package/dist/chunk-TISOJTKH.js +0 -25
  88. package/dist/chunk-TISOJTKH.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
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-BMFJwudG.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-BMFJwudG.js';
1
+ export { NumberField, NumberFieldContext, NumberFieldContextValue, useControllableState, useNumberField, useNumberFieldContext, useNumberFieldFormat, useNumberFieldState } from './react.js';
2
+ import { N as NumberFieldState, S as ScrubAreaOptions } from './types-B2ZqkJI-.js';
3
+ export { C as CaretBoundary, a as ChangeReason, D as DigitBlock, F as FormatResult, L as LocaleInfo, b as NumberFieldAria, c as NumberFieldRootProps, P as ParseResult, R as RenderProp, d as ScrubAreaCursorProps, e as ScrubAreaProps, f as StateRenderFn, U as UseNumberFieldProps, g as UseNumberFieldStateOptions } from './types-B2ZqkJI-.js';
4
+ export { Formatter, FormatterOptions, LocaleConfig, Parser, ParserOptions, computeNewCursorPosition, createFormatter, createParser, getCaretBoundary, normalizeDigits, presets, registerLocale } from './core.js';
3
5
  import 'react/jsx-runtime';
4
6
  import 'react';
5
7
 
@@ -15,6 +17,8 @@ interface PressAndHoldProps {
15
17
  onPointerDown: (e: React.PointerEvent) => void;
16
18
  onPointerUp: (e: React.PointerEvent) => void;
17
19
  onPointerLeave: (e: React.PointerEvent) => void;
20
+ onPointerCancel: (e: React.PointerEvent) => void;
21
+ onLostPointerCapture: (e: React.PointerEvent) => void;
18
22
  }
19
23
  /**
20
24
  * Returns pointer event handlers that call `callback` immediately on press,
@@ -36,6 +40,11 @@ interface ScrubAreaReturn {
36
40
  tabIndex: number;
37
41
  style: React.CSSProperties;
38
42
  "aria-label": string;
43
+ "aria-valuenow": number | undefined;
44
+ "aria-valuemin": number | undefined;
45
+ "aria-valuemax": number | undefined;
46
+ "aria-valuetext": string | undefined;
47
+ "aria-disabled": true | undefined;
39
48
  "data-scrubbing": string | undefined;
40
49
  onPointerDown: (e: React.PointerEvent) => void;
41
50
  onKeyDown: (e: React.KeyboardEvent) => void;
@@ -60,134 +69,4 @@ interface ScrubAreaReturn {
60
69
  */
61
70
  declare function useScrubArea(state: NumberFieldState, options?: ScrubAreaOptions): ScrubAreaReturn;
62
71
 
63
- interface FormatterOptions {
64
- locale?: string;
65
- formatOptions?: Intl.NumberFormatOptions;
66
- prefix?: string;
67
- suffix?: string;
68
- minimumFractionDigits?: number;
69
- maximumFractionDigits?: number;
70
- fixedDecimalScale?: boolean;
71
- }
72
- interface Formatter {
73
- format(value: number): string;
74
- formatToParts(value: number): Intl.NumberFormatPart[];
75
- getLocaleInfo(): LocaleInfo;
76
- formatResult(value: number): FormatResult;
77
- }
78
- /**
79
- * Create a formatter instance. Intl.NumberFormat is cached — safe to call
80
- * on every render.
81
- */
82
- declare function createFormatter(opts: FormatterOptions): Formatter;
83
-
84
- interface ParserOptions {
85
- locale?: string;
86
- formatOptions?: Intl.NumberFormatOptions;
87
- allowNegative?: boolean;
88
- allowDecimal?: boolean;
89
- prefix?: string;
90
- suffix?: string;
91
- }
92
- interface Parser {
93
- parse(input: string): ParseResult;
94
- isIntermediate(input: string): boolean;
95
- getLocaleInfo(): LocaleInfo;
96
- }
97
- /**
98
- * Create a locale-aware parser. Separator characters are extracted from
99
- * Intl.NumberFormat — never hardcoded.
100
- */
101
- declare function createParser(opts?: ParserOptions): Parser;
102
-
103
- interface LocaleConfig {
104
- /** Extra digit block ranges to register */
105
- digitBlocks?: DigitBlock[];
106
- }
107
- /**
108
- * Register additional digit blocks (called by locale plugins as a side effect).
109
- * Duplicate ranges are silently ignored.
110
- */
111
- declare function registerLocale(config: LocaleConfig): void;
112
- /**
113
- * Normalise any Unicode decimal digit in `input` to its ASCII equivalent (0–9).
114
- * Non-digit characters pass through unchanged.
115
- */
116
- declare function normalizeDigits(input: string): string;
117
-
118
- /**
119
- * Build a boolean array of length `formattedValue.length + 1`.
120
- * `true` → cursor may rest at this position.
121
- * `false` → cursor must snap away (sits inside a formatting-only character
122
- * such as a grouping separator or a currency prefix).
123
- *
124
- * Rules:
125
- * - Start and end positions are always valid.
126
- * - A position immediately AFTER a grouping separator is invalid (the
127
- * cursor would look like it's between two digits but moving left would
128
- * skip the comma).
129
- * - A position immediately BEFORE a grouping separator is valid.
130
- */
131
- declare function getCaretBoundary(formattedValue: string, info: LocaleInfo): CaretBoundary;
132
- /**
133
- * Compute the new cursor position in `newFormatted` that corresponds
134
- * semantically to `oldCursor` in `oldInput`.
135
- *
136
- * Algorithm (3 stages from the spec):
137
- *
138
- * 1. Count accepted characters before `oldCursor` in `oldInput`.
139
- * 2. Adjust for backspace-over-separator edge case.
140
- * 3. Walk `newFormatted` to find the position where the same count of
141
- * accepted chars precede it; snap to the nearest valid boundary.
142
- *
143
- * @param oldInput The raw string the user just typed into (pre-format)
144
- * @param oldCursor selectionStart captured from the native event
145
- * @param newFormatted The formatted string we're about to display
146
- * @param info Locale separators
147
- * @param inputType e.nativeEvent.inputType (optional — for backspace detection)
148
- */
149
- declare function computeNewCursorPosition(oldInput: string, oldCursor: number, newFormatted: string, info: LocaleInfo, inputType?: string): number;
150
-
151
- /**
152
- * Format presets — named Intl.NumberFormatOptions configurations for common
153
- * number input patterns. Use these as the `formatOptions` prop value.
154
- *
155
- * @example
156
- * import { presets } from 'raqam'
157
- * <NumberField.Root formatOptions={presets.currency('USD')} />
158
- * <NumberField.Root formatOptions={presets.percent} />
159
- * <NumberField.Root formatOptions={presets.compact} />
160
- */
161
- declare const presets: {
162
- /** Currency with standard sign display. Shorthand for `{ style:'currency', currency:code }`. */
163
- readonly currency: (code: string) => Intl.NumberFormatOptions;
164
- /**
165
- * Accounting currency — negatives shown as `(1,234.56)` instead of `-$1,234.56`.
166
- * Requires the accounting format parser fix (built-in to raqam).
167
- */
168
- readonly accounting: (code: string) => Intl.NumberFormatOptions;
169
- /** Percentage — formats 0.42 as "42%" */
170
- readonly percent: Intl.NumberFormatOptions;
171
- /** Compact short — "1.2K", "3.4M" */
172
- readonly compact: Intl.NumberFormatOptions;
173
- /** Compact long — "1.2 thousand", "3.4 million" */
174
- readonly compactLong: Intl.NumberFormatOptions;
175
- /** Scientific notation — "1.234E3" */
176
- readonly scientific: Intl.NumberFormatOptions;
177
- /** Engineering notation — exponents always multiples of 3 */
178
- readonly engineering: Intl.NumberFormatOptions;
179
- /** Integer — no decimal places */
180
- readonly integer: Intl.NumberFormatOptions;
181
- /**
182
- * Financial — always exactly 2 decimal places (fixed scale).
183
- * Combine with `fixedDecimalScale` prop for strict display.
184
- */
185
- readonly financial: Intl.NumberFormatOptions;
186
- /**
187
- * Unit — shorthand for `{ style:'unit', unit:unitCode }`.
188
- * @example presets.unit('kilometer-per-hour') → { style:'unit', unit:'kilometer-per-hour' }
189
- */
190
- readonly unit: (unit: string) => Intl.NumberFormatOptions;
191
- };
192
-
193
- export { CaretBoundary, DigitBlock, FormatResult, type Formatter, type FormatterOptions, type LocaleConfig, LocaleInfo, NumberFieldState, ParseResult, type Parser, type ParserOptions, type PressAndHoldProps, ScrubAreaOptions, type ScrubAreaReturn, type UsePressAndHoldOptions, computeNewCursorPosition, createFormatter, createParser, getCaretBoundary, normalizeDigits, presets, registerLocale, usePressAndHold, useScrubArea };
72
+ export { NumberFieldState, type PressAndHoldProps, ScrubAreaOptions, type ScrubAreaReturn, type UsePressAndHoldOptions, usePressAndHold, useScrubArea };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import it,{createContext,forwardRef,useRef,useMemo,useCallback,useState,useId,useLayoutEffect,useEffect,useContext}from'react';import {jsx}from'react/jsx-runtime';var at=new Map;function We(t,e){let r=`${t??""}::${JSON.stringify(e??{})}`,n=at.get(r);return n||(n=new Intl.NumberFormat(t,e),at.set(r,n)),n}function Ft(t,e){let r=We(t,e),n=We(t,{minimumFractionDigits:1,maximumFractionDigits:1,numberingSystem:e?.numberingSystem}),i=n.formatToParts(-12345.6),o=".",u=",",p="-",c="0";for(let a of i)a.type==="decimal"&&(o=a.value),a.type==="group"&&(u=a.value),a.type==="minusSign"&&(p=a.value);for(let a of n.formatToParts(0))if(a.type==="integer"){c=a.value;break}let m=/^(ar|he|fa|ur|syc|nqo|ug|yi)/i,b=r.resolvedOptions().locale,l=m.test(b);return {decimalSeparator:o,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=Ft(t.locale,e)),n}function o(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=o(c);return {formatted:m.map(l=>l.value).join(""),parts:m}}return {format:u,formatToParts:o,getLocaleInfo:i,formatResult:p}}var yt=[[1632,1641],[1776,1785],[2406,2415],[2534,2543],[3664,3673]],Je=[...yt];function St(t){if(t.digitBlocks)for(let e of t.digitBlocks)Je.some(([n])=>n===e[0])||Je.push(e);}function _(t){return /[^\u0020-\u007e]/.test(t)?t.replace(/\p{Nd}/gu,e=>{let r=e.codePointAt(0);for(let[i,o]of Je)if(r>=i&&r<=o)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 It(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}),o="";if(t.formatOptions?.style==="currency")try{o=i.formatToParts(1).filter(b=>b.type==="currency").map(b=>b.value).join("");}catch{o="";}function u(){return i.getLocaleInfo()}function p(b){let l=u(),a=_(b);o&&(a=a.split(o).join(""));let I=a.match(/^\((.+)\)$/);if(I&&(a=`-${I[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.includes("\u2212")&&(a=a.split("\u2212").join("-")),a=a.replace(/[^\d.\-]/g,"").trim(),a.includes("-")){let F=a.startsWith("-");a=a.replace(/-/g,""),F&&(a=`-${a}`);}return a}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 a=Number.parseFloat(l);return Number.isFinite(a)?(Object.is(a,-0)&&(a=0),n&&a!==0&&(a=Number((a/100).toPrecision(15))),{value:a,isValid:true,isIntermediate:It(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[o,u]=useState(e),p=useCallback(c=>{let m=typeof c=="function"?c(n?t:o):c;n||u(m),r?.(m);},[n,t,o,r]);return [n?t:o,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 ut(t,e){let n=10**Math.max(lt(t),lt(e));return Math.round(t*n+e*n)/n}function lt(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)),o=e.indexOf("."),u=o===-1?0:r-o-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:o=1,largeStep:u,smallStep:p,allowNegative:c=true,allowDecimal:m=true,maximumFractionDigits:b,minimumFractionDigits:l,fixedDecimalScale:a,clampBehavior:I="blur",prefix:F,suffix:C,allowOutOfRange:P=false,validate:G,onRawChange:X,formatValue:re}=t,se=m?l:0,S=m?b:0,H=m?a:false,ae=useMemo(()=>q({locale:e,formatOptions:r,prefix:F,suffix:C,minimumFractionDigits:se,maximumFractionDigits:S,fixedDecimalScale:H}),[e,JSON.stringify(r),F,C,se,S,H]),Q=useMemo(()=>Pe({locale:e,formatOptions:r,allowNegative:c,allowDecimal:m,prefix:F,suffix:C}),[e,JSON.stringify(r),c,m,F,C]),[v,M]=Xe({value:t.value,defaultValue:t.defaultValue??null,onChange:t.onChange}),Z=useRef(t.value??t.defaultValue??null),k=useCallback(d=>re?re(Object.is(d,-0)?0:d):ae.format(Object.is(d,-0)?0:d),[ae,re]),ce=useMemo(()=>t.defaultValue!=null?k(t.defaultValue):t.value!=null?k(t.value):"",[]),[Fe,B]=useState(ce),ee=useRef(ce),[je,te]=useState(t.defaultValue!=null?String(t.defaultValue):null),be=useCallback(d=>{if(!G)return {validationState:"valid",validationError:null};let D=G(d);return D===false?{validationState:"invalid",validationError:null}:typeof D=="string"?{validationState:"invalid",validationError:D}:{validationState:"valid",validationError:null}},[G]),Ee=useMemo(()=>{let d=t.defaultValue??t.value??null;return be(d??null)},[]),[Te,De]=useState(Ee.validationState),[me,Ce]=useState(Ee.validationError),[T,_e]=useState(false),[ye,ne]=useState(false),w=useRef("input"),fe=useCallback(d=>{w.current=d;},[]),V=useCallback(()=>w.current,[]),z=t.value,Me=useRef(z);if(!Object.is(Me.current,z)&&(Me.current=z,!Object.is(z,Z.current))){Z.current=z;let d=Object.is(z,-0)?0:z,D=d!=null&&Number.isFinite(d),h=D?k(d):"";ee.current=h,B(h),te(D?String(d):null);}let Se=`${e??""}|${JSON.stringify(r??{})}|${F??""}|${C??""}|${se??""}|${S??""}|${H??""}`,Ve=useRef(Se);if(Ve.current!==Se&&(Ve.current=Se,v!=null&&Number.isFinite(v)&&!ye)){let d=k(v);d!==Fe&&(B(d),ee.current=d);}let ue=useCallback(d=>{let{validationState:D,validationError:h}=be(d);De(D),Ce(h);},[be]),$e=useCallback((d,D)=>{let h=D!==void 0?D:Q.parse(d).value;I==="strict"&&!P&&h!==null&&(n!==void 0&&h<n||i!==void 0&&h>i)||(B(d),Z.current=h,M(h),te(h!==null?d:null),X?.(h!==null?d:null),ue(h));},[Q,I,P,n,i,M,X,ue]),Y=useCallback(d=>{if(Z.current=d,M(d),d!=null){let D=k(d);B(D),ee.current=D;let h=String(d);te(h),X?.(h);}else B(""),ee.current="",te(null),X?.(null);ue(d);},[k,M,X,ue]),Ue=useCallback(()=>{if(v==null)return B(""),ee.current="",null;let d=v;I==="blur"&&!P&&(d=Qe(v,n,i)),Object.is(d,-0)&&(d=0);let D=k(d);B(D),ee.current=D;let h=d;if(!re){let j=Q.parse(D).value;j!==null&&Number.isFinite(j)&&k(j)===D&&(h=j);}return h!==v&&(Z.current=h,M(h)),ue(h),h},[v,I,P,n,i,Q,k,re,M,ue]),ie=v!=null&&Number.isFinite(v)?v:null,Ke=u??o*10,ze=p??o*.1,Ye=!t.disabled&&!t.readOnly&&(P||i===void 0||(ie??Number.NEGATIVE_INFINITY)<i),qe=!t.disabled&&!t.readOnly&&(P||n===void 0||(ie??Number.POSITIVE_INFINITY)>n),Oe=useCallback(d=>{let j=ut(ie??0,d??o),Le=P?j:Qe(j,n,i);Y(Le);},[ie,o,n,i,P,Y]),ot=useCallback(d=>{let j=ut(ie??0,-(d??o)),Le=P?j:Qe(j,n,i);Y(Le);},[ie,o,n,i,P,Y]),Ie=useCallback(()=>{i!==void 0&&Y(i);},[i,Y]),ge=useCallback(()=>{n!==void 0&&Y(n);},[n,Y]);return {inputValue:Fe,numberValue:ie,rawValue:je,canIncrement:Ye,canDecrement:qe,isScrubbing:T,setIsScrubbing:_e,isFocused:ye,setIsFocused:ne,validationState:Te,validationError:me,_setLastChangeReason:fe,_getLastChangeReason:V,setInputValue:$e,setNumberValue:Y,commit:Ue,increment:Oe,decrement:ot,incrementToMax:Ie,decrementToMin:ge,options:{...t,step:o,largeStep:Ke,smallStep:ze}}}function st(t,e){return t>="0"&&t<="9"||t===e.decimalSeparator||t===e.minusSign||t==="-"||t==="."&&e.decimalSeparator!=="."&&e.groupingSeparator!=="."}function ht(t,e,r){let n=_(t),i=0;for(let o=0;o<e&&o<n.length;o++)st(n[o],r)&&i++;return i}function ct(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 xe(t,e,r,n,i){let o=_(t),u=ht(o,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=ct(r,n),l=_(r),a=0,I=0;for(let F=0;F<l.length;F++){if(a===u){I=F;break}st(l[F],n)&&a++,I=F+1;}return u>0&&a<u&&(I=r.length),I=Et(I,b),I}function Et(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,o=useRef(t);useEffect(()=>{o.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);},[]),a=useCallback(P=>{if(!b.current)return;o.current();let G=Math.max(50,Math.floor(P/2));m.current=setTimeout(()=>{a(G);},P);},[]),I=useCallback(P=>{i||P.button!==0&&P.pointerType==="mouse"||(o.current(),b.current=true,c.current=setTimeout(()=>{a(p.current);},u.current));},[i,a]),F=useCallback(P=>{P.preventDefault(),l();},[l]),C=useCallback(P=>{l();},[l]);return useEffect(()=>l,[l]),{onPointerDown:I,onPointerUp:F,onPointerLeave:C}}function mt(t){return t.replace(/[.*+?^${}()|[\]\\\-]/g,"\\$&")}function Vt(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 tt(t,e,r){let{locale:n,formatOptions:i,minValue:o,maxValue:u,allowNegative:p=true,allowDecimal:c=true,allowMouseWheel:m=false,liveFormat:b=true,prefix:l,suffix:a,name:I,disabled:F,readOnly:C,required:P,onFocus:G,onBlur:X,maximumFractionDigits:re,minimumFractionDigits:se,fixedDecimalScale:S,copyBehavior:H="formatted",stepHoldDelay:ae=400,stepHoldInterval:Q=200,formatValue:v,parseValue:M,onValueCommitted:Z}=t,k=i?.notation,ce=b&&k!=="compact"&&k!=="scientific"&&k!=="engineering",{step:Fe=1,largeStep:B=Fe*10,smallStep:ee=Fe*.1}=e.options,je=useId(),te=t.id??`raqam-${je}`,be=`${te}-label`,Ee=`${te}-description`,Te=`${te}-error`,De=c?se:0,me=c?re:0,Ce=c?S:false,T=useMemo(()=>q({locale:n,formatOptions:i,prefix:l,suffix:a,minimumFractionDigits:De,maximumFractionDigits:me,fixedDecimalScale:Ce}),[n,JSON.stringify(i),l,a,De,me,Ce]),_e=i?.style==="percent",ye=c?_e?20:me:0,ne=useMemo(()=>q({locale:n,formatOptions:i,prefix:l,suffix:a,minimumFractionDigits:0,maximumFractionDigits:ye,fixedDecimalScale:false}),[n,JSON.stringify(i),l,a,ye]),w=useMemo(()=>Pe({locale:n,formatOptions:i,allowNegative:p,allowDecimal:c,prefix:l,suffix:a}),[n,JSON.stringify(i),p,c,l,a]),fe=useCallback((f,x)=>{let L=T.getLocaleInfo(),g=x.lastIndexOf(L.decimalSeparator);if(g===-1&&L.decimalSeparator!=="."&&L.groupingSeparator!=="."&&(g=x.lastIndexOf(".")),g===-1||!/\d/.test(_(x.slice(0,g))))return null;let y=_(x.slice(g+1)).match(/^\d+/);if(!y)return null;let s=Math.min(y[0].length,me??20,20);return s===0?null:q({locale:n,formatOptions:i,prefix:l,suffix:a,minimumFractionDigits:s,maximumFractionDigits:s}).format(f)},[T,n,JSON.stringify(i),l,a,me]),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 x=L=>{F||C||document.activeElement===f&&(L.preventDefault(),e._setLastChangeReason("wheel"),L.deltaY<0?e.increment():e.decrement());};return f.addEventListener("wheel",x,{passive:false}),()=>f.removeEventListener("wheel",x)},[m,F,C,e,r]);let z=useRef(false),Me=useCallback(()=>{z.current=true;},[]),Se=useCallback(f=>{z.current=false;let x=f.currentTarget.value,L=T.getLocaleInfo(),g=_(x),y;if(M){let s=M(g);s.isIntermediate?y=g:s.value!==null&&v?y=v(s.value):s.value!==null?y=T.format(s.value):y=g,V.current=y.length;}else if(ce){let s=w.parse(g);s.isIntermediate?y=Ge(g,L.zero):s.value!==null?y=v?v(s.value):ne.format(s.value):y=g===""?"":g,V.current=xe(x,x.length,y,L,"insertCompositionText");}else y=g,V.current=g.length;e._setLastChangeReason("input"),e.setInputValue(y);},[T,ne,w,ce,e,v,M]),Ve=useCallback(f=>{let x=f.target.value,L=f.target.selectionStart??x.length,g=f.nativeEvent.inputType,y=T.getLocaleInfo();if(z.current){e.setInputValue(x);return}let s=_(x);p||(s=s.split("-").join("").split(y.minusSign).join("")),c?y.decimalSeparator!=="."&&y.groupingSeparator!=="."&&(s=s.replace(/\./g,(O,R,N)=>/\d/.test(N[R-1]??"")||/\d/.test(N[R+1]??"")?y.decimalSeparator:".")):s=s.split(".").join("").split(y.decimalSeparator).join("");let E,de;if(M){let O=M(s);O.isIntermediate?E=s:O.value!==null?E=v?v(O.value):T.format(O.value):s===""?E="":E=s,V.current=E.length;}else if(ce){let O=w.parse(s);if(O.isIntermediate)E=(!v&&O.value!==null?fe(O.value,s):null)??Ge(s,y.zero);else if(O.value!==null)if(v)E=v(O.value);else {E=ne.format(O.value);let R=w.parse(E).value;de=R!==null&&Number.isFinite(R)&&ne.format(R)===E?R:O.value;}else s===""||!/\d/.test(s)?E="":E=s;v?V.current=E.length:V.current=xe(x,L,E,y,g);}else E=s,V.current=L;e._setLastChangeReason(E===""?"clear":"input"),e.setInputValue(E,de);},[T,ne,w,ce,e,v,M,fe]),ue=useCallback(f=>{f.preventDefault();let x=f.clipboardData.getData("text/plain");if(!x)return;let L=x.replace(/[€$£¥₹₺₽﷼฿₩¢₦₨₪₫₱]/g,"").trim(),g=_(L);if(!p){let N=T.getLocaleInfo();g=g.split("-").join("").split(N.minusSign).join("");}if(!c){let N=T.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):T.format(N.value);e.setInputValue(A,N.value),V.current=A.length;}return}let y=Vt(g);if(y!==null){let A=i?.style==="percent"?y/100:y,pe=v?v(A):T.format(A);e.setInputValue(pe,A),V.current=pe.length;return}let s=w.parse(g);if(s.value!==null){let N=T.format(s.value);e.setInputValue(N,s.value),V.current=N.length;return}let E=T.getLocaleInfo(),de=new RegExp(`[^0-9${mt(E.decimalSeparator)}${mt(E.minusSign)}-]`,"g"),O=g.replace(de,""),R=w.parse(O);if(R.value!==null){let N=T.format(R.value);e.setInputValue(N,R.value),V.current=N.length;}},[w,T,e,v,M]),$e=useCallback(f=>{if(H==="formatted")return;f.preventDefault();let x=String(e.numberValue??"");f.clipboardData.setData("text/plain",x);},[H,e.numberValue]),Y=useCallback(f=>{if(H==="formatted")return;f.preventDefault();let x=String(e.numberValue??"");f.clipboardData.setData("text/plain",x),e._setLastChangeReason("clear"),e.setInputValue("");},[H,e]),Ue=useCallback(f=>{if(F||C)return;let x=f.key;if(!f.metaKey&&!f.ctrlKey&&!f.altKey&&c){let L=T.getLocaleInfo();if(x===L.decimalSeparator||x==="."&&L.decimalSeparator!=="."&&L.groupingSeparator!=="."){let y=r.current;if(y){let s=y.value.indexOf(L.decimalSeparator);if(s!==-1){f.preventDefault(),y.setSelectionRange(s+1,s+1);return}}}}if(x==="Backspace"&&!f.shiftKey&&!f.altKey&&!f.metaKey&&!f.ctrlKey){let L=r.current;if(L){let g=L.selectionStart??0,y=L.selectionEnd??g,s=L.value,E=T.getLocaleInfo();if(g===y&&g>=2&&s[g-1]===E.groupingSeparator){f.preventDefault();let R=s.slice(0,g-2)+s.slice(g),N=w.parse(R);e._setLastChangeReason("input");let A;N.value!==null?(A=fe(N.value,R)??ne.format(N.value),e.setInputValue(A,N.value)):(A=R,R===""&&e._setLastChangeReason("clear"),e.setInputValue(R)),V.current=xe(R,g-2,A,E,"deleteContentBackward");return}let de=R=>R!==void 0&&/\p{Nd}/u.test(R),O=R=>R!==void 0&&!de(R)&&R!==E.decimalSeparator&&R!==E.minusSign&&R!=="-";if(g===y&&g===s.length&&g>=1&&O(s[g-1])){let R=g;for(;R>0&&O(s[R-1]);)R--;if(R>0&&de(s[R-1])){f.preventDefault();let N=s.slice(0,R-1)+s.slice(R),A=w.parse(N);e._setLastChangeReason("input");let pe;A.value!==null&&/\p{Nd}/u.test(N)?(pe=fe(A.value,N)??ne.format(A.value),e.setInputValue(pe,A.value)):(pe="",e._setLastChangeReason("clear"),e.setInputValue("")),V.current=xe(N,R-1,pe,E,"deleteContentBackward");return}}}}if(x==="ArrowUp"||x==="ArrowDown"){f.preventDefault();let L=x==="ArrowUp"?1:-1;e._setLastChangeReason("keyboard"),f.shiftKey?L>0?e.increment(B):e.decrement(B):f.metaKey||f.ctrlKey?L>0?e.increment(ee):e.decrement(ee):L>0?e.increment():e.decrement();return}if(x==="PageUp"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.increment(B);return}if(x==="PageDown"){f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrement(B);return}if(x==="Home"){o!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.decrementToMin());return}if(x==="End"){u!==void 0&&(f.preventDefault(),e._setLastChangeReason("keyboard"),e.incrementToMax());return}if(x==="Enter"){e._setLastChangeReason("blur");let L=e.commit();Z?.(L,{reason:"keyboard"});return}},[F,C,e,B,ee,o,u,T,ne,w,r,c,fe,Z]),ie=useCallback(f=>{e.setIsFocused(false),e._setLastChangeReason("blur");let x=e.commit();Z?.(x,{reason:"blur"}),X?.(f);},[e,X,Z]),Ke=useCallback(f=>{e.setIsFocused(true),G?.(f);},[e,G]),ze=we(()=>{e._setLastChangeReason("increment"),e.increment();},{delay:ae,interval:Q,disabled:F||!e.canIncrement}),Ye=we(()=>{e._setLastChangeReason("decrement"),e.decrement();},{delay:ae,interval:Q,disabled:F||!e.canDecrement}),qe=useMemo(()=>{if(e.numberValue!=null)return v?v(e.numberValue):T.format(e.numberValue)},[e.numberValue,T,v]),Oe=T.getLocaleInfo(),Ie=e.numberValue!==null&&(o!==void 0&&e.numberValue<o||u!==void 0&&e.numberValue>u)||e.validationState==="invalid",ge=useRef(0),[d,D]=useState(false),h=useCallback(f=>{f?(ge.current+=1,D(true)):ge.current>0&&(ge.current-=1,ge.current===0&&D(false));},[]),j=t["aria-labelledby"]??(t["aria-label"]?void 0:d?be:void 0),Le={id:be,htmlFor:te,ref:h},bt={role:"group","aria-labelledby":j},gt={id:te,type:"text",inputMode:"decimal",role:"spinbutton",autoComplete:"off",autoCorrect:"off",spellCheck:false,"aria-label":t["aria-label"],"aria-labelledby":j,"aria-describedby":t["aria-describedby"],"aria-valuenow":e.numberValue??void 0,"aria-valuemin":o,"aria-valuemax":u,"aria-valuetext":qe,"aria-disabled":F||void 0,"aria-readonly":C||void 0,"aria-required":P||void 0,"aria-invalid":Ie?true:void 0,"aria-errormessage":Ie&&e.validationError?Te:void 0,disabled:F,readOnly:C,required:P,value:e.inputValue,onChange:Ve,onKeyDown:Ue,onBlur:ie,onFocus:Ke,onPaste:ue,onCopy:H!=="formatted"?$e:void 0,onCut:H!=="formatted"?Y:void 0,onCompositionStart:Me,onCompositionEnd:Se,style:Oe.isRTL?{direction:"ltr",textAlign:"right",unicodeBidi:"embed"}:void 0,"data-disabled":F?"":void 0,"data-readonly":C?"":void 0,"data-required":P?"":void 0,"data-invalid":Ie?"":void 0,"data-rtl":Oe.isRTL?"":void 0},vt=I?{type:"hidden",name:I,value:e.numberValue??"","aria-hidden":true}:null,xt={type:"button",tabIndex:-1,"aria-label":"Increase",disabled:F||!e.canIncrement,...ze,"data-disabled":F||!e.canIncrement?"":void 0},Rt={type:"button",tabIndex:-1,"aria-label":"Decrease",disabled:F||!e.canDecrement,...Ye,"data-disabled":F||!e.canDecrement?"":void 0};return {labelProps:Le,groupProps:bt,inputProps:gt,hiddenInputProps:vt,incrementButtonProps:xt,decrementButtonProps:Rt,descriptionProps:{id:Ee},errorMessageProps:{id:Te,role:"alert","aria-live":"polite"}}}function Ot(t,e={}){let{locale:r,formatOptions:n,prefix:i,suffix:o,minimumFractionDigits:u,maximumFractionDigits:p,fixedDecimalScale:c}=e,m=useMemo(()=>q({locale:r,formatOptions:n,prefix:i,suffix:o,minimumFractionDigits:u,maximumFractionDigits:p,fixedDecimalScale:c}),[r,JSON.stringify(n),i,o,u,p,c]);return useMemo(()=>t==null?"":m.format(t),[t,m])}function nt(t,e={}){let{direction:r="horizontal",pixelSensitivity:n=4}=e,[i,o]=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),a=useRef({x:0,y:0}),[I,F]=useState({x:0,y:0}),C=useRef(S=>{if(!m.current)return;let H=a.current.x+S.movementX,ae=a.current.y+S.movementY;a.current={x:H,y:ae},F({x:H,y:ae});let Q=p.current,v=0;Q==="horizontal"?v=S.movementX:Q==="vertical"?v=-S.movementY:v=Math.abs(S.movementX)>=Math.abs(S.movementY)?S.movementX:-S.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;}),P=useRef(()=>{document.pointerLockElement===l.current?(m.current=true,b.current=0,o(true),u.current.setIsScrubbing(true),document.addEventListener("mousemove",C.current)):(m.current=false,b.current=0,document.removeEventListener("mousemove",C.current),o(false),u.current.setIsScrubbing(false));});useEffect(()=>{let S=P.current;return document.addEventListener("pointerlockchange",S),()=>{document.removeEventListener("pointerlockchange",S),document.removeEventListener("mousemove",C.current);}},[]);let G=useCallback(S=>{if(u.current.options.disabled||u.current.options.readOnly||S.button!==0)return;let H=S.currentTarget;l.current=H,a.current={x:S.clientX,y:S.clientY},F({x:S.clientX,y:S.clientY}),H.requestPointerLock();},[]),X=useCallback(S=>{u.current.options.disabled||u.current.options.readOnly||(S.key==="ArrowRight"||S.key==="ArrowUp"?(S.preventDefault(),u.current.increment()):(S.key==="ArrowLeft"||S.key==="ArrowDown")&&(S.preventDefault(),u.current.decrement()));},[]),re=r==="horizontal"?"ew-resize":r==="vertical"?"ns-resize":"move",se={role:"slider",tabIndex:t.options.disabled?-1:0,style:{cursor:t.options.disabled?void 0:re,userSelect:"none",WebkitUserSelect:"none"},"aria-label":"Scrub to change value","data-scrubbing":i?"":void 0,onPointerDown:G,onKeyDown:X};return {isScrubbing:i,scrubAreaProps:se,virtualCursor:I}}var Be=createContext(null);function $(){let t=useContext(Be);if(!t)throw new Error("[raqam] NumberField sub-components must be used inside <NumberField.Root>.");return t}function le(t,e,r,n){if(!e)return t;let i={...t.props};if(n!=null&&(i.ref=n),typeof e=="function")return e(i,r);let o=Object.assign({},i,e.props);return n!=null&&(o.ref=n),it.cloneElement(e,o)}var Bt=Number.parseInt(it.version,10)>=19;function jt(t){return Bt?t.props.ref:t.ref}function _t(...t){return e=>{let r=[];for(let n of t)if(n!=null)if(typeof n=="function"){let i=n(e);r.push(typeof i=="function"?i:()=>n(null));}else n.current=e,r.push(()=>{n.current=null;});return ()=>{for(let n of r)n();}}}function $t(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 Ut=new Set(["className","style","id","tabIndex","title","role","aria-label","data-testid","onClick","onMouseEnter","onMouseLeave"]);function Kt(t){let e={},r={};for(let[n,i]of Object.entries(t))Ut.has(n)||n.startsWith("data-")||n.startsWith("aria-")?r[n]=i:e[n]=i;return {fieldProps:e,divProps:r}}var zt=forwardRef(function({children:e,onValueChange:r,onValueCommitted:n,...i},o){let u=useRef(null),{fieldProps:p,divProps:c}=Kt(i),m=p,b=useRef(r);b.current=r;let l=useRef(null),a={...m,onValueCommitted:n,onChange:P=>{m.onChange?.(P),b.current&&l.current&&b.current(P,{reason:l.current._getLastChangeReason(),formattedValue:l.current.inputValue});}},I=Ze(a);l.current=I;let F=tt(a,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:F,inputRef:u,props:a},children:jsx("div",{ref:o,...c,...$t(I,C),children:e})})}),Yt=forwardRef(function({render:e,children:r,...n},i){let{aria:o,state:u}=$(),{ref:p,...c}=o.labelProps,m=it.isValidElement(e)?jt(e):void 0,b=useMemo(()=>_t(i,p,m),[i,p,m]),l=jsx("label",{ref:b,...c,...n,children:r});return le(l,e,u,b)}),qt=forwardRef(function({render:e,children:r,...n},i){let{aria:o,state:u}=$(),p=jsx("div",{ref:i,...o.groupProps,...n,children:r});return le(p,e,u)}),Wt=forwardRef(function({render:e,...r},n){let{aria:i,state:o,inputRef:u}=$(),p=jsx("input",{ref:u,...i.inputProps,...r});return le(p,e,o)}),Jt=forwardRef(function({render:e,children:r,...n},i){let{aria:o,state:u}=$(),p=jsx("button",{ref:i,...o.incrementButtonProps,...n,children:r??"+"});return le(p,e,u)}),Gt=forwardRef(function({render:e,children:r,...n},i){let{aria:o,state:u}=$(),p=jsx("button",{ref:i,...o.decrementButtonProps,...n,children:r??"\u2212"});return le(p,e,u)}),Xt=function(){let{aria:e}=$();return e.hiddenInputProps?jsx("input",{...e.hiddenInputProps}):null},Qt=forwardRef(function({render:e,children:r,direction:n="horizontal",pixelSensitivity:i=4,...o},u){let{state:p}=$(),{scrubAreaProps:c}=nt(p,{direction:n,pixelSensitivity:i}),m=jsx("span",{ref:u,...c,...o,children:r});return le(m,e,p)}),Zt=forwardRef(function({render:e,children:r,style:n,...i},o){let{state:u}=$();if(!u.isScrubbing)return null;let p=jsx("span",{ref:o,style:{position:"fixed",pointerEvents:"none",zIndex:9999,...n},...i,children:r});return le(p,e,u)}),en=forwardRef(function({children:e,...r},n){let{aria:i}=$();return jsx("p",{ref:n,...i.descriptionProps,...r,children:e})}),tn=forwardRef(function({children:e,...r},n){let{aria:i,state:o}=$(),u=e??o.validationError??null;return u?jsx("p",{ref:n,...i.errorMessageProps,...r,children:u}):null}),nn=forwardRef(function({render:e,...r},n){let{state:i}=$(),o=jsx("span",{ref:n,"aria-hidden":"true",...r,children:i.inputValue});return le(o,e,i)}),rn={Root:zt,Label:Yt,Group:qt,Input:Wt,Increment:Jt,Decrement:Gt,HiddenInput:Xt,ScrubArea:Qt,ScrubAreaCursor:Zt,Description:en,ErrorMessage:tn,Formatted:nn};var on={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{rn as NumberField,Be as NumberFieldContext,xe as computeNewCursorPosition,q as createFormatter,Pe as createParser,ct as getCaretBoundary,_ as normalizeDigits,on as presets,St as registerLocale,Xe as useControllableState,tt as useNumberField,$ as useNumberFieldContext,Ot as useNumberFieldFormat,Ze as useNumberFieldState,we as usePressAndHold,nt as useScrubArea};//# sourceMappingURL=index.js.map
2
+ export{i as NumberField,g as NumberFieldContext,a as useControllableState,d as useNumberField,h as useNumberFieldContext,e as useNumberFieldFormat,b as useNumberFieldState,c as usePressAndHold,f as useScrubArea}from'./chunk-G7ACJUKH.js';export{a as presets}from'./chunk-ZWDI6EPF.js';export{e as computeNewCursorPosition,b as createFormatter,c as createParser,d as getCaretBoundary}from'./chunk-P6AWGQPY.js';export{b as normalizeDigits,a as registerLocale}from'./chunk-4GNLVHAM.js';//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map