@codefast/ui 0.3.10 → 0.3.11-canary.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 (208) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +277 -167
  3. package/dist/components/accordion.cjs +5 -5
  4. package/dist/components/accordion.d.ts +4 -4
  5. package/dist/components/accordion.js +5 -5
  6. package/dist/components/alert-dialog.cjs +9 -9
  7. package/dist/components/alert-dialog.d.ts +11 -11
  8. package/dist/components/alert-dialog.js +9 -9
  9. package/dist/components/alert.cjs +5 -5
  10. package/dist/components/alert.d.ts +5 -5
  11. package/dist/components/alert.js +5 -5
  12. package/dist/components/aspect-ratio.d.ts +2 -2
  13. package/dist/components/avatar.cjs +3 -3
  14. package/dist/components/avatar.d.ts +2 -2
  15. package/dist/components/avatar.js +3 -3
  16. package/dist/components/badge.cjs +7 -7
  17. package/dist/components/badge.d.ts +3 -3
  18. package/dist/components/badge.js +7 -7
  19. package/dist/components/breadcrumb.cjs +6 -8
  20. package/dist/components/breadcrumb.d.ts +8 -8
  21. package/dist/components/breadcrumb.js +6 -8
  22. package/dist/components/button-group.cjs +8 -8
  23. package/dist/components/button-group.d.ts +5 -5
  24. package/dist/components/button-group.js +8 -8
  25. package/dist/components/button.cjs +17 -17
  26. package/dist/components/button.d.ts +6 -6
  27. package/dist/components/button.js +17 -17
  28. package/dist/components/calendar.cjs +35 -35
  29. package/dist/components/calendar.d.ts +5 -5
  30. package/dist/components/calendar.js +35 -35
  31. package/dist/components/card.cjs +7 -7
  32. package/dist/components/card.d.ts +8 -8
  33. package/dist/components/card.js +7 -7
  34. package/dist/components/carousel.cjs +20 -20
  35. package/dist/components/carousel.d.ts +10 -10
  36. package/dist/components/carousel.js +20 -20
  37. package/dist/components/chart.cjs +42 -42
  38. package/dist/components/chart.d.ts +12 -11
  39. package/dist/components/chart.js +42 -42
  40. package/dist/components/checkbox-cards.cjs +2 -2
  41. package/dist/components/checkbox-cards.d.ts +2 -2
  42. package/dist/components/checkbox-cards.js +2 -2
  43. package/dist/components/checkbox-group.cjs +2 -2
  44. package/dist/components/checkbox-group.d.ts +2 -2
  45. package/dist/components/checkbox-group.js +2 -2
  46. package/dist/components/checkbox.cjs +1 -1
  47. package/dist/components/checkbox.d.ts +2 -2
  48. package/dist/components/checkbox.js +1 -1
  49. package/dist/components/collapsible.d.ts +2 -2
  50. package/dist/components/command.cjs +10 -10
  51. package/dist/components/command.d.ts +4 -4
  52. package/dist/components/command.js +10 -10
  53. package/dist/components/context-menu.cjs +10 -10
  54. package/dist/components/context-menu.d.ts +4 -4
  55. package/dist/components/context-menu.js +10 -10
  56. package/dist/components/dialog.cjs +12 -12
  57. package/dist/components/dialog.d.ts +10 -10
  58. package/dist/components/dialog.js +12 -12
  59. package/dist/components/drawer.cjs +9 -9
  60. package/dist/components/drawer.d.ts +9 -9
  61. package/dist/components/drawer.js +9 -9
  62. package/dist/components/dropdown-menu.cjs +10 -10
  63. package/dist/components/dropdown-menu.d.ts +4 -4
  64. package/dist/components/dropdown-menu.js +10 -10
  65. package/dist/components/empty.cjs +10 -10
  66. package/dist/components/empty.d.ts +9 -9
  67. package/dist/components/empty.js +10 -10
  68. package/dist/components/field.cjs +17 -17
  69. package/dist/components/field.d.ts +14 -14
  70. package/dist/components/field.js +17 -17
  71. package/dist/components/form.cjs +8 -8
  72. package/dist/components/form.d.ts +10 -10
  73. package/dist/components/form.js +8 -8
  74. package/dist/components/hover-card.cjs +3 -3
  75. package/dist/components/hover-card.d.ts +2 -2
  76. package/dist/components/hover-card.js +3 -3
  77. package/dist/components/input-group.cjs +20 -20
  78. package/dist/components/input-group.d.ts +15 -15
  79. package/dist/components/input-group.js +20 -20
  80. package/dist/components/input-number.cjs +7 -7
  81. package/dist/components/input-number.d.ts +2 -2
  82. package/dist/components/input-number.js +7 -7
  83. package/dist/components/input-otp.cjs +4 -4
  84. package/dist/components/input-otp.d.ts +6 -6
  85. package/dist/components/input-otp.js +4 -4
  86. package/dist/components/input-password.cjs +6 -6
  87. package/dist/components/input-password.d.ts +3 -3
  88. package/dist/components/input-password.js +6 -6
  89. package/dist/components/input-search.cjs +4 -4
  90. package/dist/components/input-search.d.ts +3 -3
  91. package/dist/components/input-search.js +4 -4
  92. package/dist/components/input.cjs +1 -1
  93. package/dist/components/input.d.ts +2 -2
  94. package/dist/components/input.js +1 -1
  95. package/dist/components/item.cjs +23 -23
  96. package/dist/components/item.d.ts +12 -12
  97. package/dist/components/item.js +23 -23
  98. package/dist/components/kbd.cjs +2 -2
  99. package/dist/components/kbd.d.ts +3 -3
  100. package/dist/components/kbd.js +2 -2
  101. package/dist/components/label.cjs +1 -1
  102. package/dist/components/label.d.ts +2 -2
  103. package/dist/components/label.js +1 -1
  104. package/dist/components/menubar.cjs +13 -13
  105. package/dist/components/menubar.d.ts +4 -4
  106. package/dist/components/menubar.js +13 -13
  107. package/dist/components/native-select.cjs +2 -2
  108. package/dist/components/native-select.d.ts +4 -4
  109. package/dist/components/native-select.js +2 -2
  110. package/dist/components/navigation-menu.cjs +10 -10
  111. package/dist/components/navigation-menu.d.ts +2 -2
  112. package/dist/components/navigation-menu.js +10 -10
  113. package/dist/components/pagination.cjs +6 -6
  114. package/dist/components/pagination.d.ts +10 -10
  115. package/dist/components/pagination.js +6 -6
  116. package/dist/components/popover.cjs +3 -3
  117. package/dist/components/popover.d.ts +3 -3
  118. package/dist/components/popover.js +3 -3
  119. package/dist/components/progress-circle.cjs +22 -22
  120. package/dist/components/progress-circle.d.ts +5 -5
  121. package/dist/components/progress-circle.js +22 -22
  122. package/dist/components/progress.cjs +2 -2
  123. package/dist/components/progress.d.ts +2 -2
  124. package/dist/components/progress.js +2 -2
  125. package/dist/components/radio-cards.cjs +3 -3
  126. package/dist/components/radio-cards.d.ts +2 -2
  127. package/dist/components/radio-cards.js +3 -3
  128. package/dist/components/radio-group.cjs +3 -3
  129. package/dist/components/radio-group.d.ts +2 -2
  130. package/dist/components/radio-group.js +3 -3
  131. package/dist/components/radio.cjs +1 -1
  132. package/dist/components/radio.d.ts +2 -2
  133. package/dist/components/radio.js +1 -1
  134. package/dist/components/resizable.cjs +3 -3
  135. package/dist/components/resizable.d.ts +2 -2
  136. package/dist/components/resizable.js +3 -3
  137. package/dist/components/scroll-area.cjs +31 -31
  138. package/dist/components/scroll-area.d.ts +5 -5
  139. package/dist/components/scroll-area.js +31 -31
  140. package/dist/components/select.cjs +9 -9
  141. package/dist/components/select.d.ts +5 -5
  142. package/dist/components/select.js +9 -9
  143. package/dist/components/separator.cjs +9 -9
  144. package/dist/components/separator.d.ts +5 -5
  145. package/dist/components/separator.js +9 -9
  146. package/dist/components/sheet.cjs +17 -17
  147. package/dist/components/sheet.d.ts +9 -9
  148. package/dist/components/sheet.js +17 -17
  149. package/dist/components/sidebar.cjs +65 -65
  150. package/dist/components/sidebar.d.ts +31 -31
  151. package/dist/components/sidebar.js +65 -65
  152. package/dist/components/skeleton.cjs +1 -1
  153. package/dist/components/skeleton.d.ts +2 -2
  154. package/dist/components/skeleton.js +1 -1
  155. package/dist/components/slider.cjs +4 -4
  156. package/dist/components/slider.d.ts +2 -2
  157. package/dist/components/slider.js +4 -4
  158. package/dist/components/sonner.cjs +4 -4
  159. package/dist/components/sonner.d.ts +3 -3
  160. package/dist/components/sonner.js +4 -4
  161. package/dist/components/spinner.cjs +5 -5
  162. package/dist/components/spinner.d.ts +2 -2
  163. package/dist/components/spinner.js +5 -5
  164. package/dist/components/switch.cjs +2 -2
  165. package/dist/components/switch.d.ts +2 -2
  166. package/dist/components/switch.js +2 -2
  167. package/dist/components/table.cjs +8 -8
  168. package/dist/components/table.d.ts +9 -9
  169. package/dist/components/table.js +8 -8
  170. package/dist/components/tabs.cjs +4 -4
  171. package/dist/components/tabs.d.ts +2 -2
  172. package/dist/components/tabs.js +4 -4
  173. package/dist/components/textarea.cjs +1 -1
  174. package/dist/components/textarea.d.ts +2 -2
  175. package/dist/components/textarea.js +1 -1
  176. package/dist/components/toggle-group.cjs +5 -5
  177. package/dist/components/toggle-group.d.ts +4 -4
  178. package/dist/components/toggle-group.js +5 -5
  179. package/dist/components/toggle.cjs +8 -8
  180. package/dist/components/toggle.d.ts +3 -3
  181. package/dist/components/toggle.js +8 -8
  182. package/dist/components/tooltip.cjs +2 -2
  183. package/dist/components/tooltip.d.ts +3 -3
  184. package/dist/components/tooltip.js +2 -2
  185. package/dist/css/preset.css +4 -4
  186. package/dist/css/style.css +3 -3
  187. package/dist/hooks/use-copy-to-clipboard.cjs +1 -1
  188. package/dist/hooks/use-copy-to-clipboard.d.ts +1 -1
  189. package/dist/hooks/use-copy-to-clipboard.js +1 -1
  190. package/dist/hooks/use-media-query.cjs +3 -3
  191. package/dist/hooks/use-media-query.js +3 -3
  192. package/dist/hooks/use-mutation-observer.d.ts +1 -1
  193. package/dist/hooks/use-pagination.cjs +1 -1
  194. package/dist/hooks/use-pagination.js +1 -1
  195. package/dist/index.d.ts +130 -130
  196. package/dist/primitives/checkbox-group.cjs +3 -3
  197. package/dist/primitives/checkbox-group.d.ts +11 -11
  198. package/dist/primitives/checkbox-group.js +3 -3
  199. package/dist/primitives/input-number.cjs +46 -46
  200. package/dist/primitives/input-number.d.ts +8 -8
  201. package/dist/primitives/input-number.js +46 -46
  202. package/dist/primitives/input.cjs +7 -7
  203. package/dist/primitives/input.d.ts +4 -4
  204. package/dist/primitives/input.js +7 -7
  205. package/dist/primitives/progress-circle.cjs +8 -8
  206. package/dist/primitives/progress-circle.d.ts +7 -7
  207. package/dist/primitives/progress-circle.js +8 -8
  208. package/package.json +38 -42
@@ -40,7 +40,7 @@ const react_context_namespaceObject = require("@radix-ui/react-context");
40
40
  const react_use_controllable_state_namespaceObject = require("@radix-ui/react-use-controllable-state");
41
41
  const external_react_namespaceObject = require("react");
42
42
  const external_input_cjs_namespaceObject = require("./input.cjs");
43
- const NUMBER_INPUT_NAME = 'InputNumber';
43
+ const NUMBER_INPUT_NAME = "InputNumber";
44
44
  const [createInputNumberContext, createInputNumberScope] = (0, react_context_namespaceObject.createContextScope)(NUMBER_INPUT_NAME, [
45
45
  external_input_cjs_namespaceObject.createInputScope
46
46
  ]);
@@ -49,7 +49,7 @@ const [InputNumberContextProvider, useInputNumberContext] = createInputNumberCon
49
49
  function InputNumber(numberInputProps) {
50
50
  const { __scopeInputNumber, ariaDecrementLabel, ariaIncrementLabel, defaultValue, formatOptions = {
51
51
  minimumFractionDigits: 0,
52
- style: 'decimal'
52
+ style: "decimal"
53
53
  }, id, locale, max, min, onChange, step = 1, value: valueProperty, ...props } = numberInputProps;
54
54
  const inputScope = useInputScope(__scopeInputNumber);
55
55
  const inputRef = (0, external_react_namespaceObject.useRef)(null);
@@ -62,20 +62,20 @@ function InputNumber(numberInputProps) {
62
62
  locale
63
63
  ]);
64
64
  const formatValue = (0, external_react_namespaceObject.useCallback)((inputValue)=>{
65
- if (void 0 === inputValue || Number.isNaN(inputValue)) return '';
65
+ if (void 0 === inputValue || Number.isNaN(inputValue)) return "";
66
66
  return new Intl.NumberFormat(locale, formatOptions).format(inputValue);
67
67
  }, [
68
68
  formatOptions,
69
69
  locale
70
70
  ]);
71
71
  const parseValue = (0, external_react_namespaceObject.useCallback)((inputValue)=>{
72
- if ('number' == typeof inputValue) return clamp(inputValue, min, max);
73
- if ('string' != typeof inputValue) return NaN;
74
- const cleanedValue = inputValue.trim().replaceAll(/[^\d.,\-()]/g, '');
75
- if ('' === cleanedValue) return NaN;
72
+ if ("number" == typeof inputValue) return clamp(inputValue, min, max);
73
+ if ("string" != typeof inputValue) return NaN;
74
+ const cleanedValue = inputValue.trim().replaceAll(/[^\d.,\-()]/g, "");
75
+ if ("" === cleanedValue) return NaN;
76
76
  const normalizedValue = normalizeInputValue(cleanedValue, thousandSeparator, decimalSeparator);
77
77
  let parsedValue = Number.parseFloat(normalizedValue);
78
- if ('percent' === formatOptions.style) parsedValue /= 100;
78
+ if ("percent" === formatOptions.style) parsedValue /= 100;
79
79
  return Number.isNaN(parsedValue) ? 0 : clamp(parsedValue, min, max);
80
80
  }, [
81
81
  decimalSeparator,
@@ -152,7 +152,7 @@ function InputNumber(numberInputProps) {
152
152
  })
153
153
  });
154
154
  }
155
- const NUMBER_INPUT_FIELD_NAME = 'InputNumberField';
155
+ const NUMBER_INPUT_FIELD_NAME = "InputNumberField";
156
156
  function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
157
157
  const inputScope = useInputScope(__scopeInputNumber);
158
158
  const { defaultValue, disabled, formatValue, id, inputRef, max, min, onChange, onDecrement, onDecrementToMin, onIncrement, onIncrementToMax, parseValue, readOnly, step, value } = useInputNumberContext(NUMBER_INPUT_FIELD_NAME, __scopeInputNumber);
@@ -168,19 +168,19 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
168
168
  ]);
169
169
  const handleKeyDown = (0, external_react_namespaceObject.useCallback)((event)=>{
170
170
  switch(event.key){
171
- case 'ArrowUp':
171
+ case "ArrowUp":
172
172
  onIncrement();
173
173
  event.preventDefault();
174
174
  break;
175
- case 'PageUp':
175
+ case "PageUp":
176
176
  onIncrementToMax();
177
177
  event.preventDefault();
178
178
  break;
179
- case 'ArrowDown':
179
+ case "ArrowDown":
180
180
  onDecrement();
181
181
  event.preventDefault();
182
182
  break;
183
- case 'PageDown':
183
+ case "PageDown":
184
184
  onDecrementToMin();
185
185
  event.preventDefault();
186
186
  break;
@@ -195,23 +195,23 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
195
195
  ]);
196
196
  const handleKeyDownPrevent = (0, external_react_namespaceObject.useCallback)((event)=>{
197
197
  switch(event.key){
198
- case 'ArrowUp':
199
- case 'ArrowDown':
200
- case 'ArrowLeft':
201
- case 'ArrowRight':
202
- case 'PageUp':
203
- case 'PageDown':
204
- case 'Tab':
205
- case 'Escape':
206
- case 'Enter':
207
- case 'Backspace':
208
- case 'Delete':
209
- case 'Home':
210
- case 'End':
211
- case '.':
212
- case ',':
213
- case '-':
214
- case '%':
198
+ case "ArrowUp":
199
+ case "ArrowDown":
200
+ case "ArrowLeft":
201
+ case "ArrowRight":
202
+ case "PageUp":
203
+ case "PageDown":
204
+ case "Tab":
205
+ case "Escape":
206
+ case "Enter":
207
+ case "Backspace":
208
+ case "Delete":
209
+ case "Home":
210
+ case "End":
211
+ case ".":
212
+ case ",":
213
+ case "-":
214
+ case "%":
215
215
  return;
216
216
  default:
217
217
  if (isNumberKey(event.key) || isModifierKey(event) || isFunctionKey(event.key)) return;
@@ -220,7 +220,7 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
220
220
  }, []);
221
221
  const handleKeyDownEnter = (0, external_react_namespaceObject.useCallback)((event)=>{
222
222
  const inputElement = inputRef.current;
223
- if ('Enter' !== event.key || !inputElement) return;
223
+ if ("Enter" !== event.key || !inputElement) return;
224
224
  const numericValue = parseValue(inputElement.value);
225
225
  const formattedValue = formatValue(numericValue);
226
226
  if (formattedValue !== inputElement.value) inputElement.value = formattedValue;
@@ -248,9 +248,9 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
248
248
  else onDecrement();
249
249
  };
250
250
  const inputElement = inputRef.current;
251
- inputElement?.addEventListener('wheel', handleWheel);
251
+ inputElement?.addEventListener("wheel", handleWheel);
252
252
  return ()=>{
253
- inputElement?.removeEventListener('wheel', handleWheel);
253
+ inputElement?.removeEventListener("wheel", handleWheel);
254
254
  };
255
255
  }, [
256
256
  onIncrement,
@@ -274,9 +274,9 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
274
274
  onChange(parseValue(defaultValue));
275
275
  };
276
276
  const form = inputElement.form;
277
- form?.addEventListener('reset', handleReset);
277
+ form?.addEventListener("reset", handleReset);
278
278
  return ()=>{
279
- form?.removeEventListener('reset', handleReset);
279
+ form?.removeEventListener("reset", handleReset);
280
280
  };
281
281
  }, [
282
282
  defaultValue,
@@ -300,7 +300,7 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
300
300
  ...props
301
301
  });
302
302
  }
303
- const NUMBER_STEPPER_BUTTON_NAME = 'NumberStepperButton';
303
+ const NUMBER_STEPPER_BUTTON_NAME = "NumberStepperButton";
304
304
  function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
305
305
  const { ariaDecrementLabel, ariaIncrementLabel, disabled, id, max, min, onDecrement, onIncrement, value } = useInputNumberContext(NUMBER_STEPPER_BUTTON_NAME, __scopeInputNumber);
306
306
  const isDisabled = (0, external_react_namespaceObject.useMemo)(()=>{
@@ -330,7 +330,7 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
330
330
  }
331
331
  }, []);
332
332
  const handlePointerDown = (0, external_react_namespaceObject.useCallback)(()=>{
333
- const action = 'increment' === operation ? onIncrement : onDecrement;
333
+ const action = "increment" === operation ? onIncrement : onDecrement;
334
334
  startActionInterval(action);
335
335
  }, [
336
336
  onDecrement,
@@ -342,9 +342,9 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
342
342
  event.preventDefault();
343
343
  }, []);
344
344
  const handleKeyDown = (0, external_react_namespaceObject.useCallback)((event)=>{
345
- if ('Enter' === event.key || ' ' === event.key) {
345
+ if ("Enter" === event.key || " " === event.key) {
346
346
  event.preventDefault();
347
- const action = 'increment' === operation ? onIncrement : onDecrement;
347
+ const action = "increment" === operation ? onIncrement : onDecrement;
348
348
  action();
349
349
  }
350
350
  }, [
@@ -354,7 +354,7 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
354
354
  ]);
355
355
  return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("button", {
356
356
  "aria-controls": id,
357
- "aria-label": 'increment' === operation ? ariaIncrementLabel : ariaDecrementLabel,
357
+ "aria-label": "increment" === operation ? ariaIncrementLabel : ariaDecrementLabel,
358
358
  "aria-live": "polite",
359
359
  disabled: isDisabled,
360
360
  type: "button",
@@ -387,11 +387,11 @@ function chain(...callbacks) {
387
387
  function getNumberFormatSeparators(locale) {
388
388
  const numberFormat = new Intl.NumberFormat(locale);
389
389
  const parts = numberFormat.formatToParts(12345.6);
390
- let thousandSeparator = '';
391
- let decimalSeparator = '';
390
+ let thousandSeparator = "";
391
+ let decimalSeparator = "";
392
392
  for (const part of parts){
393
- if ('group' === part.type) thousandSeparator = part.value;
394
- if ('decimal' === part.type) decimalSeparator = part.value;
393
+ if ("group" === part.type) thousandSeparator = part.value;
394
+ if ("decimal" === part.type) decimalSeparator = part.value;
395
395
  if (thousandSeparator && decimalSeparator) break;
396
396
  }
397
397
  return {
@@ -400,13 +400,13 @@ function getNumberFormatSeparators(locale) {
400
400
  };
401
401
  }
402
402
  function normalizeInputValue(value, thousandSeparator, decimalSeparator) {
403
- return value.replaceAll(new RegExp(`\\${thousandSeparator}`, 'g'), '').replace(new RegExp(`\\${decimalSeparator}`), '.').replaceAll(/[()]/g, '-');
403
+ return value.replaceAll(new RegExp(`\\${thousandSeparator}`, "g"), "").replace(new RegExp(`\\${decimalSeparator}`), ".").replaceAll(/[()]/g, "-");
404
404
  }
405
405
  function isModifierKey(event) {
406
406
  return event.ctrlKey || event.altKey || event.metaKey || event.shiftKey;
407
407
  }
408
408
  function isFunctionKey(key) {
409
- return key.startsWith('F') && key.length > 1;
409
+ return key.startsWith("F") && key.length > 1;
410
410
  }
411
411
  function isNumberKey(key) {
412
412
  return !Number.isNaN(Number(key));
@@ -1,6 +1,6 @@
1
- import type { Scope } from '@radix-ui/react-context';
2
- import type { ComponentProps, JSX } from 'react';
3
- import * as InputPrimitive from './input';
1
+ import type { Scope } from "@radix-ui/react-context";
2
+ import type { ComponentProps, JSX } from "react";
3
+ import * as InputPrimitive from "./input";
4
4
  /**
5
5
  * Props that include an optional scope for the InputNumber component.
6
6
  */
@@ -40,23 +40,23 @@ declare function InputNumber(numberInputProps: ScopedProps<InputNumberProps>): J
40
40
  /**
41
41
  * Defines the props for the `InputNumberField` component.
42
42
  */
43
- type InputNumberFieldProps = Omit<ComponentProps<typeof InputPrimitive.Field>, 'defaultValue' | 'disabled' | 'id' | 'max' | 'min' | 'onChange' | 'prefix' | 'readOnly' | 'step' | 'value'>;
43
+ type InputNumberFieldProps = Omit<ComponentProps<typeof InputPrimitive.Field>, "defaultValue" | "disabled" | "id" | "max" | "min" | "onChange" | "prefix" | "readOnly" | "step" | "value">;
44
44
  declare function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }: ScopedProps<InputNumberFieldProps>): JSX.Element;
45
45
  /**
46
46
  * Props for the NumberStepperButton component.
47
47
  */
48
- interface NumberStepperButtonProps extends ComponentProps<'button'> {
48
+ interface NumberStepperButtonProps extends ComponentProps<"button"> {
49
49
  /**
50
50
  * The operation to perform when the button is pressed.
51
51
  * - `'increment'`: Increases the value.
52
52
  * - `'decrement'`: Decreases the value.
53
53
  */
54
- operation: 'decrement' | 'increment';
54
+ operation: "decrement" | "increment";
55
55
  }
56
56
  declare function NumberStepperButton({ __scopeInputNumber, operation, ...props }: ScopedProps<NumberStepperButtonProps>): JSX.Element;
57
- type InputNumberIncrementButtonProps = Omit<ComponentProps<typeof NumberStepperButton>, 'operation'>;
57
+ type InputNumberIncrementButtonProps = Omit<ComponentProps<typeof NumberStepperButton>, "operation">;
58
58
  declare function InputNumberIncrementButton(props: InputNumberIncrementButtonProps): JSX.Element;
59
- type InputNumberDecrementButtonProps = Omit<ComponentProps<typeof NumberStepperButton>, 'operation'>;
59
+ type InputNumberDecrementButtonProps = Omit<ComponentProps<typeof NumberStepperButton>, "operation">;
60
60
  declare function InputNumberDecrementButton(props: InputNumberDecrementButtonProps): JSX.Element;
61
61
  export { createInputNumberScope, InputNumberDecrementButton as DecrementButton, InputNumberField as Field, InputNumberIncrementButton as IncrementButton, InputNumber, InputNumberDecrementButton, InputNumberField, InputNumberIncrementButton, InputNumber as Root, };
62
62
  export type { InputNumberDecrementButtonProps, InputNumberFieldProps, InputNumberIncrementButtonProps, InputNumberProps, };
@@ -4,7 +4,7 @@ import { createContextScope } from "@radix-ui/react-context";
4
4
  import { useControllableState } from "@radix-ui/react-use-controllable-state";
5
5
  import { useCallback, useEffect, useMemo, useRef } from "react";
6
6
  import { Field, Root, createInputScope } from "./input.js";
7
- const NUMBER_INPUT_NAME = 'InputNumber';
7
+ const NUMBER_INPUT_NAME = "InputNumber";
8
8
  const [createInputNumberContext, createInputNumberScope] = createContextScope(NUMBER_INPUT_NAME, [
9
9
  createInputScope
10
10
  ]);
@@ -13,7 +13,7 @@ const [InputNumberContextProvider, useInputNumberContext] = createInputNumberCon
13
13
  function InputNumber(numberInputProps) {
14
14
  const { __scopeInputNumber, ariaDecrementLabel, ariaIncrementLabel, defaultValue, formatOptions = {
15
15
  minimumFractionDigits: 0,
16
- style: 'decimal'
16
+ style: "decimal"
17
17
  }, id, locale, max, min, onChange, step = 1, value: valueProperty, ...props } = numberInputProps;
18
18
  const inputScope = useInputScope(__scopeInputNumber);
19
19
  const inputRef = useRef(null);
@@ -26,20 +26,20 @@ function InputNumber(numberInputProps) {
26
26
  locale
27
27
  ]);
28
28
  const formatValue = useCallback((inputValue)=>{
29
- if (void 0 === inputValue || Number.isNaN(inputValue)) return '';
29
+ if (void 0 === inputValue || Number.isNaN(inputValue)) return "";
30
30
  return new Intl.NumberFormat(locale, formatOptions).format(inputValue);
31
31
  }, [
32
32
  formatOptions,
33
33
  locale
34
34
  ]);
35
35
  const parseValue = useCallback((inputValue)=>{
36
- if ('number' == typeof inputValue) return clamp(inputValue, min, max);
37
- if ('string' != typeof inputValue) return NaN;
38
- const cleanedValue = inputValue.trim().replaceAll(/[^\d.,\-()]/g, '');
39
- if ('' === cleanedValue) return NaN;
36
+ if ("number" == typeof inputValue) return clamp(inputValue, min, max);
37
+ if ("string" != typeof inputValue) return NaN;
38
+ const cleanedValue = inputValue.trim().replaceAll(/[^\d.,\-()]/g, "");
39
+ if ("" === cleanedValue) return NaN;
40
40
  const normalizedValue = normalizeInputValue(cleanedValue, thousandSeparator, decimalSeparator);
41
41
  let parsedValue = Number.parseFloat(normalizedValue);
42
- if ('percent' === formatOptions.style) parsedValue /= 100;
42
+ if ("percent" === formatOptions.style) parsedValue /= 100;
43
43
  return Number.isNaN(parsedValue) ? 0 : clamp(parsedValue, min, max);
44
44
  }, [
45
45
  decimalSeparator,
@@ -116,7 +116,7 @@ function InputNumber(numberInputProps) {
116
116
  })
117
117
  });
118
118
  }
119
- const NUMBER_INPUT_FIELD_NAME = 'InputNumberField';
119
+ const NUMBER_INPUT_FIELD_NAME = "InputNumberField";
120
120
  function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
121
121
  const inputScope = useInputScope(__scopeInputNumber);
122
122
  const { defaultValue, disabled, formatValue, id, inputRef, max, min, onChange, onDecrement, onDecrementToMin, onIncrement, onIncrementToMax, parseValue, readOnly, step, value } = useInputNumberContext(NUMBER_INPUT_FIELD_NAME, __scopeInputNumber);
@@ -132,19 +132,19 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
132
132
  ]);
133
133
  const handleKeyDown = useCallback((event)=>{
134
134
  switch(event.key){
135
- case 'ArrowUp':
135
+ case "ArrowUp":
136
136
  onIncrement();
137
137
  event.preventDefault();
138
138
  break;
139
- case 'PageUp':
139
+ case "PageUp":
140
140
  onIncrementToMax();
141
141
  event.preventDefault();
142
142
  break;
143
- case 'ArrowDown':
143
+ case "ArrowDown":
144
144
  onDecrement();
145
145
  event.preventDefault();
146
146
  break;
147
- case 'PageDown':
147
+ case "PageDown":
148
148
  onDecrementToMin();
149
149
  event.preventDefault();
150
150
  break;
@@ -159,23 +159,23 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
159
159
  ]);
160
160
  const handleKeyDownPrevent = useCallback((event)=>{
161
161
  switch(event.key){
162
- case 'ArrowUp':
163
- case 'ArrowDown':
164
- case 'ArrowLeft':
165
- case 'ArrowRight':
166
- case 'PageUp':
167
- case 'PageDown':
168
- case 'Tab':
169
- case 'Escape':
170
- case 'Enter':
171
- case 'Backspace':
172
- case 'Delete':
173
- case 'Home':
174
- case 'End':
175
- case '.':
176
- case ',':
177
- case '-':
178
- case '%':
162
+ case "ArrowUp":
163
+ case "ArrowDown":
164
+ case "ArrowLeft":
165
+ case "ArrowRight":
166
+ case "PageUp":
167
+ case "PageDown":
168
+ case "Tab":
169
+ case "Escape":
170
+ case "Enter":
171
+ case "Backspace":
172
+ case "Delete":
173
+ case "Home":
174
+ case "End":
175
+ case ".":
176
+ case ",":
177
+ case "-":
178
+ case "%":
179
179
  return;
180
180
  default:
181
181
  if (isNumberKey(event.key) || isModifierKey(event) || isFunctionKey(event.key)) return;
@@ -184,7 +184,7 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
184
184
  }, []);
185
185
  const handleKeyDownEnter = useCallback((event)=>{
186
186
  const inputElement = inputRef.current;
187
- if ('Enter' !== event.key || !inputElement) return;
187
+ if ("Enter" !== event.key || !inputElement) return;
188
188
  const numericValue = parseValue(inputElement.value);
189
189
  const formattedValue = formatValue(numericValue);
190
190
  if (formattedValue !== inputElement.value) inputElement.value = formattedValue;
@@ -212,9 +212,9 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
212
212
  else onDecrement();
213
213
  };
214
214
  const inputElement = inputRef.current;
215
- inputElement?.addEventListener('wheel', handleWheel);
215
+ inputElement?.addEventListener("wheel", handleWheel);
216
216
  return ()=>{
217
- inputElement?.removeEventListener('wheel', handleWheel);
217
+ inputElement?.removeEventListener("wheel", handleWheel);
218
218
  };
219
219
  }, [
220
220
  onIncrement,
@@ -238,9 +238,9 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
238
238
  onChange(parseValue(defaultValue));
239
239
  };
240
240
  const form = inputElement.form;
241
- form?.addEventListener('reset', handleReset);
241
+ form?.addEventListener("reset", handleReset);
242
242
  return ()=>{
243
- form?.removeEventListener('reset', handleReset);
243
+ form?.removeEventListener("reset", handleReset);
244
244
  };
245
245
  }, [
246
246
  defaultValue,
@@ -264,7 +264,7 @@ function InputNumberField({ __scopeInputNumber, onBlur, onKeyDown, ...props }) {
264
264
  ...props
265
265
  });
266
266
  }
267
- const NUMBER_STEPPER_BUTTON_NAME = 'NumberStepperButton';
267
+ const NUMBER_STEPPER_BUTTON_NAME = "NumberStepperButton";
268
268
  function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
269
269
  const { ariaDecrementLabel, ariaIncrementLabel, disabled, id, max, min, onDecrement, onIncrement, value } = useInputNumberContext(NUMBER_STEPPER_BUTTON_NAME, __scopeInputNumber);
270
270
  const isDisabled = useMemo(()=>{
@@ -294,7 +294,7 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
294
294
  }
295
295
  }, []);
296
296
  const handlePointerDown = useCallback(()=>{
297
- const action = 'increment' === operation ? onIncrement : onDecrement;
297
+ const action = "increment" === operation ? onIncrement : onDecrement;
298
298
  startActionInterval(action);
299
299
  }, [
300
300
  onDecrement,
@@ -306,9 +306,9 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
306
306
  event.preventDefault();
307
307
  }, []);
308
308
  const handleKeyDown = useCallback((event)=>{
309
- if ('Enter' === event.key || ' ' === event.key) {
309
+ if ("Enter" === event.key || " " === event.key) {
310
310
  event.preventDefault();
311
- const action = 'increment' === operation ? onIncrement : onDecrement;
311
+ const action = "increment" === operation ? onIncrement : onDecrement;
312
312
  action();
313
313
  }
314
314
  }, [
@@ -318,7 +318,7 @@ function NumberStepperButton({ __scopeInputNumber, operation, ...props }) {
318
318
  ]);
319
319
  return /*#__PURE__*/ jsx("button", {
320
320
  "aria-controls": id,
321
- "aria-label": 'increment' === operation ? ariaIncrementLabel : ariaDecrementLabel,
321
+ "aria-label": "increment" === operation ? ariaIncrementLabel : ariaDecrementLabel,
322
322
  "aria-live": "polite",
323
323
  disabled: isDisabled,
324
324
  type: "button",
@@ -351,11 +351,11 @@ function chain(...callbacks) {
351
351
  function getNumberFormatSeparators(locale) {
352
352
  const numberFormat = new Intl.NumberFormat(locale);
353
353
  const parts = numberFormat.formatToParts(12345.6);
354
- let thousandSeparator = '';
355
- let decimalSeparator = '';
354
+ let thousandSeparator = "";
355
+ let decimalSeparator = "";
356
356
  for (const part of parts){
357
- if ('group' === part.type) thousandSeparator = part.value;
358
- if ('decimal' === part.type) decimalSeparator = part.value;
357
+ if ("group" === part.type) thousandSeparator = part.value;
358
+ if ("decimal" === part.type) decimalSeparator = part.value;
359
359
  if (thousandSeparator && decimalSeparator) break;
360
360
  }
361
361
  return {
@@ -364,13 +364,13 @@ function getNumberFormatSeparators(locale) {
364
364
  };
365
365
  }
366
366
  function normalizeInputValue(value, thousandSeparator, decimalSeparator) {
367
- return value.replaceAll(new RegExp(`\\${thousandSeparator}`, 'g'), '').replace(new RegExp(`\\${decimalSeparator}`), '.').replaceAll(/[()]/g, '-');
367
+ return value.replaceAll(new RegExp(`\\${thousandSeparator}`, "g"), "").replace(new RegExp(`\\${decimalSeparator}`), ".").replaceAll(/[()]/g, "-");
368
368
  }
369
369
  function isModifierKey(event) {
370
370
  return event.ctrlKey || event.altKey || event.metaKey || event.shiftKey;
371
371
  }
372
372
  function isFunctionKey(key) {
373
- return key.startsWith('F') && key.length > 1;
373
+ return key.startsWith("F") && key.length > 1;
374
374
  }
375
375
  function isNumberKey(key) {
376
376
  return !Number.isNaN(Number(key));
@@ -34,20 +34,20 @@ const jsx_runtime_namespaceObject = require("react/jsx-runtime");
34
34
  const react_compose_refs_namespaceObject = require("@radix-ui/react-compose-refs");
35
35
  const react_context_namespaceObject = require("@radix-ui/react-context");
36
36
  const external_react_namespaceObject = require("react");
37
- const INPUT_NAME = 'Input';
37
+ const INPUT_NAME = "Input";
38
38
  const [createInputContext, createInputScope] = (0, react_context_namespaceObject.createContextScope)(INPUT_NAME);
39
39
  const [InputContextProvider, useInputContext] = createInputContext(INPUT_NAME);
40
40
  function Input(inputProps) {
41
- const { __scopeInput, children, disabled, loaderPosition = 'prefix', loading, prefix, readOnly, spinner, suffix, ...props } = inputProps;
41
+ const { __scopeInput, children, disabled, loaderPosition = "prefix", loading, prefix, readOnly, spinner, suffix, ...props } = inputProps;
42
42
  const inputRef = (0, external_react_namespaceObject.useRef)(null);
43
43
  const handlePointerDown = (event)=>{
44
44
  const target = event.target;
45
- if ('input' === target.tagName.toLowerCase() || target.closest('input, a, button')) return void event.stopPropagation();
45
+ if ("input" === target.tagName.toLowerCase() || target.closest("input, a, button")) return void event.stopPropagation();
46
46
  const inputElement = inputRef.current;
47
47
  if (!inputElement) return;
48
48
  if (document.activeElement === inputElement) return void event.preventDefault();
49
49
  requestAnimationFrame(()=>{
50
- if ('file' === inputElement.type) return void inputElement.click();
50
+ if ("file" === inputElement.type) return void inputElement.click();
51
51
  if (document.activeElement !== inputElement) inputElement.focus();
52
52
  });
53
53
  };
@@ -63,14 +63,14 @@ function Input(inputProps) {
63
63
  onPointerDown: handlePointerDown,
64
64
  ...props,
65
65
  children: [
66
- loading && 'prefix' === loaderPosition ? spinner : prefix,
66
+ loading && "prefix" === loaderPosition ? spinner : prefix,
67
67
  children,
68
- loading && 'suffix' === loaderPosition ? spinner : suffix
68
+ loading && "suffix" === loaderPosition ? spinner : suffix
69
69
  ]
70
70
  })
71
71
  });
72
72
  }
73
- const INPUT_FIELD_NAME = 'InputField';
73
+ const INPUT_FIELD_NAME = "InputField";
74
74
  function InputField({ __scopeInput, ...props }) {
75
75
  const { disabled, inputRef, readOnly } = useInputContext(INPUT_FIELD_NAME, __scopeInput);
76
76
  const composedInputRef = (0, react_compose_refs_namespaceObject.useComposedRefs)(inputRef);
@@ -1,5 +1,5 @@
1
- import type { Scope } from '@radix-ui/react-context';
2
- import type { ComponentProps, JSX, PropsWithChildren, ReactNode } from 'react';
1
+ import type { Scope } from "@radix-ui/react-context";
2
+ import type { ComponentProps, JSX, PropsWithChildren, ReactNode } from "react";
3
3
  /**
4
4
  * Type for adding scope to component props
5
5
  */
@@ -42,7 +42,7 @@ interface InputBehaviorProps {
42
42
  /**
43
43
  * Position of the loading spinner - either before or after the input
44
44
  */
45
- loaderPosition?: 'prefix' | 'suffix';
45
+ loaderPosition?: "prefix" | "suffix";
46
46
  /**
47
47
  * Whether the input is in the loading state
48
48
  */
@@ -60,7 +60,7 @@ declare function Input(inputProps: ScopedProps<InputProps>): JSX.Element;
60
60
  /**
61
61
  * Props for the InputField component
62
62
  */
63
- type InputFieldProps = ComponentProps<'input'>;
63
+ type InputFieldProps = ComponentProps<"input">;
64
64
  declare function InputField({ __scopeInput, ...props }: ScopedProps<InputFieldProps>): JSX.Element;
65
65
  export { createInputScope, InputField as Field, Input, InputField, Input as Root };
66
66
  export type { InputFieldProps, InputProps };
@@ -2,20 +2,20 @@ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
3
3
  import { createContextScope } from "@radix-ui/react-context";
4
4
  import { useRef } from "react";
5
- const INPUT_NAME = 'Input';
5
+ const INPUT_NAME = "Input";
6
6
  const [createInputContext, createInputScope] = createContextScope(INPUT_NAME);
7
7
  const [InputContextProvider, useInputContext] = createInputContext(INPUT_NAME);
8
8
  function Input(inputProps) {
9
- const { __scopeInput, children, disabled, loaderPosition = 'prefix', loading, prefix, readOnly, spinner, suffix, ...props } = inputProps;
9
+ const { __scopeInput, children, disabled, loaderPosition = "prefix", loading, prefix, readOnly, spinner, suffix, ...props } = inputProps;
10
10
  const inputRef = useRef(null);
11
11
  const handlePointerDown = (event)=>{
12
12
  const target = event.target;
13
- if ('input' === target.tagName.toLowerCase() || target.closest('input, a, button')) return void event.stopPropagation();
13
+ if ("input" === target.tagName.toLowerCase() || target.closest("input, a, button")) return void event.stopPropagation();
14
14
  const inputElement = inputRef.current;
15
15
  if (!inputElement) return;
16
16
  if (document.activeElement === inputElement) return void event.preventDefault();
17
17
  requestAnimationFrame(()=>{
18
- if ('file' === inputElement.type) return void inputElement.click();
18
+ if ("file" === inputElement.type) return void inputElement.click();
19
19
  if (document.activeElement !== inputElement) inputElement.focus();
20
20
  });
21
21
  };
@@ -31,14 +31,14 @@ function Input(inputProps) {
31
31
  onPointerDown: handlePointerDown,
32
32
  ...props,
33
33
  children: [
34
- loading && 'prefix' === loaderPosition ? spinner : prefix,
34
+ loading && "prefix" === loaderPosition ? spinner : prefix,
35
35
  children,
36
- loading && 'suffix' === loaderPosition ? spinner : suffix
36
+ loading && "suffix" === loaderPosition ? spinner : suffix
37
37
  ]
38
38
  })
39
39
  });
40
40
  }
41
- const INPUT_FIELD_NAME = 'InputField';
41
+ const INPUT_FIELD_NAME = "InputField";
42
42
  function InputField({ __scopeInput, ...props }) {
43
43
  const { disabled, inputRef, readOnly } = useInputContext(INPUT_FIELD_NAME, __scopeInput);
44
44
  const composedInputRef = useComposedRefs(inputRef);