@mantine/core 9.0.0-alpha.3 → 9.0.0-alpha.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.
Files changed (33) hide show
  1. package/cjs/components/NumberInput/NumberInput.cjs +31 -0
  2. package/cjs/components/NumberInput/NumberInput.cjs.map +1 -1
  3. package/cjs/components/ScrollArea/ScrollArea.cjs +12 -1
  4. package/cjs/components/ScrollArea/ScrollArea.cjs.map +1 -1
  5. package/cjs/components/Tooltip/Tooltip.cjs +3 -1
  6. package/cjs/components/Tooltip/Tooltip.cjs.map +1 -1
  7. package/cjs/index.cjs +2 -4
  8. package/cjs/index.cjs.map +1 -1
  9. package/esm/components/NumberInput/NumberInput.mjs +31 -0
  10. package/esm/components/NumberInput/NumberInput.mjs.map +1 -1
  11. package/esm/components/ScrollArea/ScrollArea.mjs +12 -1
  12. package/esm/components/ScrollArea/ScrollArea.mjs.map +1 -1
  13. package/esm/components/Tooltip/Tooltip.mjs +3 -1
  14. package/esm/components/Tooltip/Tooltip.mjs.map +1 -1
  15. package/esm/index.mjs +1 -2
  16. package/esm/index.mjs.map +1 -1
  17. package/lib/components/Input/use-input-props.d.ts +1 -1
  18. package/lib/components/Popover/use-popover.d.ts +1 -1
  19. package/lib/components/ScrollArea/ScrollArea.d.ts +5 -0
  20. package/lib/core/MantineProvider/MantineCssVariables/index.d.ts +1 -0
  21. package/lib/core/MantineProvider/MantineCssVariables/v8-css-variables-resolver.d.ts +2 -0
  22. package/lib/core/MantineProvider/color-functions/get-contrast-color/get-contrast-color.d.ts +2 -2
  23. package/lib/core/MantineProvider/color-functions/index.d.ts +0 -1
  24. package/package.json +2 -2
  25. package/styles/AppShell.css +11 -1
  26. package/styles/AppShell.layer.css +11 -1
  27. package/styles.css +11 -1
  28. package/styles.layer.css +11 -1
  29. package/cjs/components/Slider/utils/get-floating-value/get-gloating-value.cjs +0 -9
  30. package/cjs/components/Slider/utils/get-floating-value/get-gloating-value.cjs.map +0 -1
  31. package/esm/components/Slider/utils/get-floating-value/get-gloating-value.mjs +0 -7
  32. package/esm/components/Slider/utils/get-floating-value/get-gloating-value.mjs.map +0 -1
  33. package/lib/components/Slider/utils/get-floating-value/get-gloating-value.d.ts +0 -1
@@ -407,6 +407,36 @@ const NumberInput = factory.genericFactory(
407
407
  );
408
408
  setTimeout(() => adjustCursor(inputRef.current?.value.length), 0);
409
409
  };
410
+ const handlePaste = (event) => {
411
+ const pastedText = event.clipboardData.getData("text");
412
+ const _decimalSeparator = others.decimalSeparator || ".";
413
+ const separatorsToReplace = (allowedDecimalSeparators || [".", ","]).filter(
414
+ (s) => s !== _decimalSeparator
415
+ );
416
+ if (separatorsToReplace.some((s) => pastedText.includes(s))) {
417
+ event.preventDefault();
418
+ let modifiedText = pastedText;
419
+ separatorsToReplace.forEach((s) => {
420
+ modifiedText = modifiedText.split(s).join(_decimalSeparator);
421
+ });
422
+ const input = inputRef.current;
423
+ if (input) {
424
+ const start = input.selectionStart ?? 0;
425
+ const end = input.selectionEnd ?? 0;
426
+ const currentValue = input.value;
427
+ const newValue = currentValue.substring(0, start) + modifiedText + currentValue.substring(end);
428
+ const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
429
+ window.HTMLInputElement.prototype,
430
+ "value"
431
+ )?.set;
432
+ nativeInputValueSetter?.call(input, newValue);
433
+ input.dispatchEvent(new Event("change", { bubbles: true }));
434
+ const cursorPos = start + modifiedText.length;
435
+ setTimeout(() => adjustCursor(cursorPos), 0);
436
+ }
437
+ }
438
+ others.onPaste?.(event);
439
+ };
410
440
  const handleKeyDown = (event) => {
411
441
  onKeyDown?.(event);
412
442
  if (readOnly || !withKeyboardEvents) {
@@ -550,6 +580,7 @@ const NumberInput = factory.genericFactory(
550
580
  unstyled,
551
581
  __staticSelector: "NumberInput",
552
582
  decimalScale: isBigIntMode ? 0 : allowDecimal ? decimalScale : 0,
583
+ onPaste: handlePaste,
553
584
  onFocus: handleFocus,
554
585
  onKeyDown: handleKeyDown,
555
586
  onKeyDownCapture: handleKeyDownCapture,