@alfalab/core-components-number-input 2.1.2 → 2.3.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 (86) hide show
  1. package/Component.responsive.js +0 -10
  2. package/components/number-input/Component.js +15 -8
  3. package/components/number-input/default.css +5 -5
  4. package/components/number-input/index.css +4 -4
  5. package/components/number-input/index.js +0 -12
  6. package/components/number-input/inverted.css +5 -5
  7. package/components/steppers/Component.js +3 -3
  8. package/components/steppers/default.css +3 -3
  9. package/components/steppers/index.css +5 -5
  10. package/components/steppers/index.js +0 -6
  11. package/components/steppers/inverted.css +3 -3
  12. package/cssm/Component.responsive.js +0 -16
  13. package/cssm/components/number-input/Component.js +12 -8
  14. package/cssm/components/number-input/default.module.css +1 -1
  15. package/cssm/components/number-input/index.js +0 -18
  16. package/cssm/components/number-input/index.module.css +3 -3
  17. package/cssm/components/number-input/inverted.module.css +1 -1
  18. package/cssm/components/steppers/default.module.css +1 -1
  19. package/cssm/components/steppers/index.js +0 -9
  20. package/cssm/components/steppers/index.module.css +1 -1
  21. package/cssm/components/steppers/inverted.module.css +1 -1
  22. package/cssm/desktop/Component.desktop.js +0 -16
  23. package/cssm/desktop/index.js +0 -20
  24. package/cssm/index.js +0 -21
  25. package/cssm/mobile/Component.mobile.js +0 -16
  26. package/cssm/mobile/index.js +0 -20
  27. package/cssm/shared/index.d.ts +1 -0
  28. package/cssm/shared/index.js +9 -0
  29. package/cssm/utils.d.ts +12 -1
  30. package/cssm/utils.js +14 -0
  31. package/desktop/Component.desktop.js +0 -10
  32. package/desktop/index.js +0 -14
  33. package/esm/Component.responsive.js +0 -10
  34. package/esm/components/number-input/Component.js +15 -8
  35. package/esm/components/number-input/default.css +5 -5
  36. package/esm/components/number-input/index.css +4 -4
  37. package/esm/components/number-input/index.js +0 -12
  38. package/esm/components/number-input/inverted.css +5 -5
  39. package/esm/components/steppers/Component.js +3 -3
  40. package/esm/components/steppers/default.css +3 -3
  41. package/esm/components/steppers/index.css +5 -5
  42. package/esm/components/steppers/index.js +0 -6
  43. package/esm/components/steppers/inverted.css +3 -3
  44. package/esm/desktop/Component.desktop.js +0 -10
  45. package/esm/desktop/index.js +0 -14
  46. package/esm/index.js +0 -15
  47. package/esm/mobile/Component.mobile.js +0 -10
  48. package/esm/mobile/index.js +0 -14
  49. package/esm/shared/index.d.ts +1 -0
  50. package/esm/shared/index.js +1 -0
  51. package/esm/utils.d.ts +12 -1
  52. package/esm/utils.js +15 -2
  53. package/index.js +0 -15
  54. package/mobile/Component.mobile.js +0 -10
  55. package/mobile/index.js +0 -14
  56. package/modern/Component.responsive.js +0 -10
  57. package/modern/components/number-input/Component.js +15 -8
  58. package/modern/components/number-input/default.css +5 -5
  59. package/modern/components/number-input/index.css +4 -4
  60. package/modern/components/number-input/index.js +0 -11
  61. package/modern/components/number-input/inverted.css +5 -5
  62. package/modern/components/steppers/Component.js +3 -3
  63. package/modern/components/steppers/default.css +3 -3
  64. package/modern/components/steppers/index.css +5 -5
  65. package/modern/components/steppers/index.js +0 -6
  66. package/modern/components/steppers/inverted.css +3 -3
  67. package/modern/desktop/Component.desktop.js +0 -10
  68. package/modern/desktop/index.js +0 -13
  69. package/modern/index.js +0 -14
  70. package/modern/mobile/Component.mobile.js +0 -10
  71. package/modern/mobile/index.js +0 -13
  72. package/modern/shared/index.d.ts +1 -0
  73. package/modern/shared/index.js +1 -0
  74. package/modern/utils.d.ts +12 -1
  75. package/modern/utils.js +15 -2
  76. package/package.json +3 -3
  77. package/shared/index.d.ts +1 -0
  78. package/shared/index.js +9 -0
  79. package/shared/package.json +3 -0
  80. package/src/components/number-input/Component.tsx +20 -5
  81. package/src/components/number-input/index.module.css +2 -2
  82. package/src/shared/index.ts +1 -0
  83. package/src/shared/package.json +3 -0
  84. package/src/utils.ts +15 -1
  85. package/utils.d.ts +12 -1
  86. package/utils.js +14 -0
@@ -6,24 +6,31 @@ import cn from 'classnames';
6
6
  import { fnUtils, os } from '@alfalab/core-components-shared/modern';
7
7
  import { createMaskOptions, parseNumber, stringifyNumberWithoutExp, MAX_DIGITS, MIN_SAFE_INTEGER, MAX_SAFE_INTEGER, MINUS_SIGN } from '../../utils.js';
8
8
  import { Steppers } from '../steppers/Component.js';
9
- import '@alfalab/core-components-icon-button/modern';
10
- import '@alfalab/icons-glyph/MinusMIcon';
11
- import '@alfalab/icons-glyph/PlusMediumMIcon';
12
9
 
13
- const defaultColors = {"steppers":"number-input__steppers_1bgb6","steppersFocused":"number-input__steppersFocused_1bgb6","steppersDisabled":"number-input__steppersDisabled_1bgb6"};
10
+ const defaultColors = {"steppers":"number-input__steppers_6qtl2","steppersFocused":"number-input__steppersFocused_6qtl2","steppersDisabled":"number-input__steppersDisabled_6qtl2"};
14
11
  require('./default.css')
15
12
 
16
- const styles = {"s":"number-input__s_e739v","m":"number-input__m_e739v"};
13
+ const styles = {"size-48":"number-input__size-48_biro8","size-56":"number-input__size-56_biro8"};
17
14
  require('./index.css')
18
15
 
19
- const invertedColors = {"steppers":"number-input__steppers_1ltrq","steppersFocused":"number-input__steppersFocused_1ltrq","steppersDisabled":"number-input__steppersDisabled_1ltrq"};
16
+ const invertedColors = {"steppers":"number-input__steppers_h4a54","steppersFocused":"number-input__steppersFocused_h4a54","steppersDisabled":"number-input__steppersDisabled_h4a54"};
20
17
  require('./inverted.css')
21
18
 
22
19
  const colorStyles = {
23
20
  default: defaultColors,
24
21
  inverted: invertedColors,
25
22
  };
26
- const NumberInput = forwardRef(({ value: propValue, onChange, separator = ',', fractionLength = MAX_DIGITS, defaultValue, Input, min: minProp, max: maxProp, rightAddons, dataTestId, disabled, onBlur, onFocus, view, step: stepProp, size = 's', disableUserInput, clear: clearProp, colors = 'default', ...restProps }, ref) => {
23
+ const SIZE_TO_CLASSNAME_MAP = {
24
+ s: 'size-48',
25
+ m: 'size-56',
26
+ l: 'size-64',
27
+ xl: 'size-72',
28
+ 48: 'size-48',
29
+ 56: 'size-56',
30
+ 64: 'size-64',
31
+ 72: 'size-72',
32
+ };
33
+ const NumberInput = forwardRef(({ value: propValue, onChange, separator = ',', fractionLength = MAX_DIGITS, defaultValue, Input, min: minProp, max: maxProp, rightAddons, dataTestId, disabled, onBlur, onFocus, view, step: stepProp, size = 48, disableUserInput, clear: clearProp, colors = 'default', ...restProps }, ref) => {
27
34
  const min = Math.max(MIN_SAFE_INTEGER, minProp ?? MIN_SAFE_INTEGER);
28
35
  const max = Math.min(MAX_SAFE_INTEGER, maxProp ?? MAX_SAFE_INTEGER);
29
36
  const withStepper = stepProp !== undefined;
@@ -98,7 +105,7 @@ const NumberInput = forwardRef(({ value: propValue, onChange, separator = ',', f
98
105
  // В iOS в цифровой клавиатуре невозможно ввести минус.
99
106
  inputMode: min < 0 && os.isIOS() ? 'text' : 'decimal', ref: mergeRefs([ref, maskRef]), value: value, onInput: handleChange, dataTestId: dataTestId, colors: colors, disabled: disabled, onFocus: handleFocus, onBlur: handleBlur, size: size, disableUserInput: disableUserInput, clear: clearProp && /\d/.test(value), rightAddons: withStepper ? (React.createElement(React.Fragment, null,
100
107
  rightAddons,
101
- React.createElement(Steppers, { colors: colors, dataTestId: dataTestId, disabled: disabled, value: parseNumber(value), min: min, max: max, className: cn(colorStyles[colors].steppers, styles[size], {
108
+ React.createElement(Steppers, { colors: colors, dataTestId: dataTestId, disabled: disabled, value: parseNumber(value), min: min, max: max, className: cn(colorStyles[colors].steppers, styles[SIZE_TO_CLASSNAME_MAP[size]], {
102
109
  [colorStyles[colors].steppersFocused]: focused,
103
110
  [colorStyles[colors].steppersDisabled]: disabled,
104
111
  }), onIncrement: handleIncrement, onDecrement: handleDecrement }))) : (rightAddons) }));
@@ -1,5 +1,5 @@
1
- /* hash: wsyhd */
2
- :root {
1
+ /* hash: 14o49 */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-neutral-translucent-0: #fff;
5
5
  --color-light-neutral-translucent-200: rgba(30, 43, 68, 0.08); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,9 +16,9 @@
16
16
  } :root {
17
17
  } :root {
18
18
  } :root {
19
- } .number-input__steppers_1bgb6 {
19
+ } .number-input__steppers_6qtl2 {
20
20
  background-color: var(--color-light-neutral-translucent-0);
21
- } .number-input__steppersFocused_1bgb6,
22
- .number-input__steppersDisabled_1bgb6 {
21
+ } .number-input__steppersFocused_6qtl2,
22
+ .number-input__steppersDisabled_6qtl2 {
23
23
  background-color: var(--color-light-neutral-translucent-200);
24
24
  }
@@ -1,5 +1,5 @@
1
- /* hash: 1tnj5 */
2
- :root {
1
+ /* hash: 14pss */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root {
@@ -16,8 +16,8 @@
16
16
  --gap-xs-neg: -8px;
17
17
  } :root {
18
18
  } :root {
19
- } .number-input__s_e739v {
19
+ } .number-input__size-48_biro8 {
20
20
  margin-right: var(--gap-xs-neg);
21
- } .number-input__m_e739v {
21
+ } .number-input__size-56_biro8 {
22
22
  margin-right: var(--gap-2xs-neg);
23
23
  }
@@ -1,12 +1 @@
1
1
  export { NumberInput } from './Component.js';
2
- import 'react';
3
- import 'react-merge-refs';
4
- import '@maskito/core';
5
- import '@maskito/react';
6
- import 'classnames';
7
- import '@alfalab/core-components-shared/modern';
8
- import '../../utils.js';
9
- import '../steppers/Component.js';
10
- import '@alfalab/core-components-icon-button/modern';
11
- import '@alfalab/icons-glyph/MinusMIcon';
12
- import '@alfalab/icons-glyph/PlusMediumMIcon';
@@ -1,5 +1,5 @@
1
- /* hash: xa94o */
2
- :root {
1
+ /* hash: 155ew */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-neutral-translucent-0-inverted: rgba(214, 214, 229, 0.07);
5
5
  --color-light-neutral-translucent-300-inverted: rgba(222, 222, 238, 0.13); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -16,9 +16,9 @@
16
16
  } :root {
17
17
  } :root {
18
18
  } :root {
19
- } .number-input__steppers_1ltrq {
19
+ } .number-input__steppers_h4a54 {
20
20
  background-color: var(--color-light-neutral-translucent-0-inverted);
21
- } .number-input__steppersFocused_1ltrq,
22
- .number-input__steppersDisabled_1ltrq {
21
+ } .number-input__steppersFocused_h4a54,
22
+ .number-input__steppersDisabled_h4a54 {
23
23
  background-color: var(--color-light-neutral-translucent-300-inverted);
24
24
  }
@@ -5,13 +5,13 @@ import { getDataTestId } from '@alfalab/core-components-shared/modern';
5
5
  import { MinusMIcon } from '@alfalab/icons-glyph/MinusMIcon';
6
6
  import { PlusMediumMIcon } from '@alfalab/icons-glyph/PlusMediumMIcon';
7
7
 
8
- const defaultColors = {"separator":"number-input__separator_783ii"};
8
+ const defaultColors = {"separator":"number-input__separator_1bxl4"};
9
9
  require('./default.css')
10
10
 
11
- const styles = {"component":"number-input__component_1ykgl","separator":"number-input__separator_1ykgl","button":"number-input__button_1ykgl"};
11
+ const styles = {"component":"number-input__component_27o5k","separator":"number-input__separator_27o5k","button":"number-input__button_27o5k"};
12
12
  require('./index.css')
13
13
 
14
- const invertedColors = {"separator":"number-input__separator_ac73e"};
14
+ const invertedColors = {"separator":"number-input__separator_1f1op"};
15
15
  require('./inverted.css')
16
16
 
17
17
  const colorStyles = {
@@ -1,5 +1,5 @@
1
- /* hash: bnk48 */
2
- :root {
1
+ /* hash: 1lirz */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-neutral-translucent-300: rgba(15, 25, 55, 0.1); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -15,6 +15,6 @@
15
15
  } :root {
16
16
  } :root {
17
17
  } :root {
18
- } .number-input__separator_783ii {
18
+ } .number-input__separator_1bxl4 {
19
19
  background-color: var(--color-light-neutral-translucent-300);
20
20
  }
@@ -1,5 +1,5 @@
1
- /* hash: 1obfi */
2
- :root {
1
+ /* hash: 1cyee */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
4
4
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root {
@@ -14,17 +14,17 @@
14
14
  } :root {
15
15
  } :root {
16
16
  } :root {
17
- } .number-input__component_1ykgl {
17
+ } .number-input__component_27o5k {
18
18
  display: flex;
19
19
  flex-flow: row nowrap;
20
20
  align-items: center;
21
21
  border-radius: 5px;
22
22
  transition: background-color 0.2s ease;
23
23
  overflow: visible;
24
- } .number-input__separator_1ykgl {
24
+ } .number-input__separator_27o5k {
25
25
  height: 18px;
26
26
  width: 1px;
27
- } .number-input__button_1ykgl {
27
+ } .number-input__button_27o5k {
28
28
  width: 40px;
29
29
  height: 40px;
30
30
  }
@@ -1,7 +1 @@
1
1
  export { Steppers } from './Component.js';
2
- import 'react';
3
- import 'classnames';
4
- import '@alfalab/core-components-icon-button/modern';
5
- import '@alfalab/core-components-shared/modern';
6
- import '@alfalab/icons-glyph/MinusMIcon';
7
- import '@alfalab/icons-glyph/PlusMediumMIcon';
@@ -1,5 +1,5 @@
1
- /* hash: fvybr */
2
- :root {
1
+ /* hash: 1pr67 */
2
+ :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
3
3
  } /* deprecated */ :root {
4
4
  --color-light-neutral-translucent-300-inverted: rgba(222, 222, 238, 0.13); /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
5
5
  } :root { /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */ /* deprecated */
@@ -15,6 +15,6 @@
15
15
  } :root {
16
16
  } :root {
17
17
  } :root {
18
- } .number-input__separator_ac73e {
18
+ } .number-input__separator_1f1op {
19
19
  background-color: var(--color-light-neutral-translucent-300-inverted);
20
20
  }
@@ -1,16 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { InputDesktop } from '@alfalab/core-components-input/modern/desktop';
3
3
  import { NumberInput } from '../components/number-input/Component.js';
4
- import 'react-merge-refs';
5
- import '@maskito/core';
6
- import '@maskito/react';
7
- import 'classnames';
8
- import '@alfalab/core-components-shared/modern';
9
- import '../utils.js';
10
- import '../components/steppers/Component.js';
11
- import '@alfalab/core-components-icon-button/modern';
12
- import '@alfalab/icons-glyph/MinusMIcon';
13
- import '@alfalab/icons-glyph/PlusMediumMIcon';
14
4
 
15
5
  const NumberInputDesktop = forwardRef((props, ref) => React.createElement(NumberInput, { ...props, Input: InputDesktop, ref: ref, view: 'desktop' }));
16
6
 
@@ -1,14 +1 @@
1
1
  export { NumberInputDesktop } from './Component.desktop.js';
2
- import 'react';
3
- import '@alfalab/core-components-input/modern/desktop';
4
- import '../components/number-input/Component.js';
5
- import 'react-merge-refs';
6
- import '@maskito/core';
7
- import '@maskito/react';
8
- import 'classnames';
9
- import '@alfalab/core-components-shared/modern';
10
- import '../utils.js';
11
- import '../components/steppers/Component.js';
12
- import '@alfalab/core-components-icon-button/modern';
13
- import '@alfalab/icons-glyph/MinusMIcon';
14
- import '@alfalab/icons-glyph/PlusMediumMIcon';
package/modern/index.js CHANGED
@@ -1,15 +1 @@
1
1
  export { NumberInputResponsive as NumberInput } from './Component.responsive.js';
2
- import 'react';
3
- import '@alfalab/core-components-input/modern';
4
- import '@alfalab/core-components-mq/modern';
5
- import './components/number-input/Component.js';
6
- import 'react-merge-refs';
7
- import '@maskito/core';
8
- import '@maskito/react';
9
- import 'classnames';
10
- import '@alfalab/core-components-shared/modern';
11
- import './utils.js';
12
- import './components/steppers/Component.js';
13
- import '@alfalab/core-components-icon-button/modern';
14
- import '@alfalab/icons-glyph/MinusMIcon';
15
- import '@alfalab/icons-glyph/PlusMediumMIcon';
@@ -1,16 +1,6 @@
1
1
  import React, { forwardRef } from 'react';
2
2
  import { InputMobile } from '@alfalab/core-components-input/modern/mobile';
3
3
  import { NumberInput } from '../components/number-input/Component.js';
4
- import 'react-merge-refs';
5
- import '@maskito/core';
6
- import '@maskito/react';
7
- import 'classnames';
8
- import '@alfalab/core-components-shared/modern';
9
- import '../utils.js';
10
- import '../components/steppers/Component.js';
11
- import '@alfalab/core-components-icon-button/modern';
12
- import '@alfalab/icons-glyph/MinusMIcon';
13
- import '@alfalab/icons-glyph/PlusMediumMIcon';
14
4
 
15
5
  const NumberInputMobile = forwardRef((props, ref) => React.createElement(NumberInput, { ...props, Input: InputMobile, ref: ref, view: 'mobile' }));
16
6
 
@@ -1,14 +1 @@
1
1
  export { NumberInputMobile } from './Component.mobile.js';
2
- import 'react';
3
- import '@alfalab/core-components-input/modern/mobile';
4
- import '../components/number-input/Component.js';
5
- import 'react-merge-refs';
6
- import '@maskito/core';
7
- import '@maskito/react';
8
- import 'classnames';
9
- import '@alfalab/core-components-shared/modern';
10
- import '../utils.js';
11
- import '../components/steppers/Component.js';
12
- import '@alfalab/core-components-icon-button/modern';
13
- import '@alfalab/icons-glyph/MinusMIcon';
14
- import '@alfalab/icons-glyph/PlusMediumMIcon';
@@ -0,0 +1 @@
1
+ export { getNumberInputTestIds } from "../utils";
@@ -0,0 +1 @@
1
+ export { getNumberInputTestIds } from '../utils.js';
package/modern/utils.d.ts CHANGED
@@ -20,4 +20,15 @@ declare function createMinMaxPlugin({ min, max }: {
20
20
  max: number;
21
21
  }): MaskitoPlugin;
22
22
  declare function createNotEmptyPartsPlugin(separator: string): MaskitoPlugin;
23
- export { MINUS_SIGN, SEPARATORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_DIGITS, parseNumber, stringifyNumberWithoutExp, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin };
23
+ declare function getNumberInputTestIds(dataTestId: string): {
24
+ input: string;
25
+ inputWrapper: string;
26
+ inputWrapperInner: string;
27
+ leftAddons: string;
28
+ rightAddons: string;
29
+ error: string;
30
+ hint: string;
31
+ decrementButton: string;
32
+ incrementButton: string;
33
+ };
34
+ export { MINUS_SIGN, SEPARATORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_DIGITS, parseNumber, stringifyNumberWithoutExp, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin, getNumberInputTestIds };
package/modern/utils.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { maskitoTransform } from '@maskito/core';
2
- import { fnUtils } from '@alfalab/core-components-shared/modern';
2
+ import { getDataTestId, fnUtils } from '@alfalab/core-components-shared/modern';
3
3
 
4
4
  /* eslint-disable no-param-reassign */
5
5
  const MINUS_SIGN = '-';
@@ -229,5 +229,18 @@ function createNotEmptyPartsPlugin(separator) {
229
229
  return () => element.removeEventListener('blur', listener, evListenerOptions);
230
230
  };
231
231
  }
232
+ function getNumberInputTestIds(dataTestId) {
233
+ return {
234
+ input: dataTestId,
235
+ inputWrapper: getDataTestId(dataTestId, 'form-control'),
236
+ inputWrapperInner: getDataTestId(dataTestId, 'form-control-inner'),
237
+ leftAddons: getDataTestId(dataTestId, 'form-control-left-addons'),
238
+ rightAddons: getDataTestId(dataTestId, 'form-control-right-addons'),
239
+ error: getDataTestId(dataTestId, 'form-control-error-message'),
240
+ hint: getDataTestId(dataTestId, 'form-control-hint'),
241
+ decrementButton: getDataTestId(dataTestId, 'decrement-button'),
242
+ incrementButton: getDataTestId(dataTestId, 'increment-button'),
243
+ };
244
+ }
232
245
 
233
- export { MAX_DIGITS, MAX_SAFE_INTEGER, MINUS_SIGN, MIN_SAFE_INTEGER, SEPARATORS, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin, parseNumber, stringifyNumberWithoutExp };
246
+ export { MAX_DIGITS, MAX_SAFE_INTEGER, MINUS_SIGN, MIN_SAFE_INTEGER, SEPARATORS, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin, getNumberInputTestIds, parseNumber, stringifyNumberWithoutExp };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-number-input",
3
- "version": "2.1.2",
3
+ "version": "2.3.0",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -14,9 +14,9 @@
14
14
  "react": "^16.9.0 || ^17.0.1 || ^18.0.0"
15
15
  },
16
16
  "dependencies": {
17
- "@alfalab/core-components-input": "^14.1.2",
17
+ "@alfalab/core-components-input": "^14.3.0",
18
18
  "@alfalab/core-components-mq": "^4.2.0",
19
- "@alfalab/core-components-icon-button": "^6.5.1",
19
+ "@alfalab/core-components-icon-button": "^6.5.3",
20
20
  "@alfalab/core-components-shared": "^0.9.1",
21
21
  "@alfalab/icons-glyph": "^2.139.0",
22
22
  "@maskito/core": "^1.7.0",
@@ -0,0 +1 @@
1
+ export { getNumberInputTestIds } from "../utils";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var utils = require('../utils.js');
6
+
7
+
8
+
9
+ exports.getNumberInputTestIds = utils.getNumberInputTestIds;
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../esm/shared/index.js"
3
+ }
@@ -98,6 +98,17 @@ export interface NumberInputProps
98
98
  dataTestId?: string;
99
99
  }
100
100
 
101
+ const SIZE_TO_CLASSNAME_MAP = {
102
+ s: 'size-48',
103
+ m: 'size-56',
104
+ l: 'size-64',
105
+ xl: 'size-72',
106
+ 48: 'size-48',
107
+ 56: 'size-56',
108
+ 64: 'size-64',
109
+ 72: 'size-72',
110
+ };
111
+
101
112
  export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
102
113
  (
103
114
  {
@@ -116,7 +127,7 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
116
127
  onFocus,
117
128
  view,
118
129
  step: stepProp,
119
- size = 's',
130
+ size = 48,
120
131
  disableUserInput,
121
132
  clear: clearProp,
122
133
  colors = 'default',
@@ -265,10 +276,14 @@ export const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(
265
276
  value={parseNumber(value)}
266
277
  min={min}
267
278
  max={max}
268
- className={cn(colorStyles[colors].steppers, styles[size], {
269
- [colorStyles[colors].steppersFocused]: focused,
270
- [colorStyles[colors].steppersDisabled]: disabled,
271
- })}
279
+ className={cn(
280
+ colorStyles[colors].steppers,
281
+ styles[SIZE_TO_CLASSNAME_MAP[size]],
282
+ {
283
+ [colorStyles[colors].steppersFocused]: focused,
284
+ [colorStyles[colors].steppersDisabled]: disabled,
285
+ },
286
+ )}
272
287
  onIncrement={handleIncrement}
273
288
  onDecrement={handleDecrement}
274
289
  />
@@ -1,9 +1,9 @@
1
1
  @import '@alfalab/core-components-themes/src/default.css';
2
2
 
3
- .s {
3
+ .size-48 {
4
4
  margin-right: var(--gap-xs-neg);
5
5
  }
6
6
 
7
- .m {
7
+ .size-56 {
8
8
  margin-right: var(--gap-2xs-neg);
9
9
  }
@@ -0,0 +1 @@
1
+ export { getNumberInputTestIds } from '../utils';
@@ -0,0 +1,3 @@
1
+ {
2
+ "module": "../esm/shared/index.js"
3
+ }
package/src/utils.ts CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  maskitoTransform,
8
8
  } from '@maskito/core';
9
9
 
10
- import { fnUtils } from '@alfalab/core-components-shared';
10
+ import { fnUtils, getDataTestId } from '@alfalab/core-components-shared';
11
11
 
12
12
  export const MINUS_SIGN = '-';
13
13
  export const SEPARATORS = [',', '.'];
@@ -322,3 +322,17 @@ export function createNotEmptyPartsPlugin(separator: string): MaskitoPlugin {
322
322
  return () => element.removeEventListener('blur', listener, evListenerOptions);
323
323
  };
324
324
  }
325
+
326
+ export function getNumberInputTestIds(dataTestId: string) {
327
+ return {
328
+ input: dataTestId,
329
+ inputWrapper: getDataTestId(dataTestId, 'form-control'),
330
+ inputWrapperInner: getDataTestId(dataTestId, 'form-control-inner'),
331
+ leftAddons: getDataTestId(dataTestId, 'form-control-left-addons'),
332
+ rightAddons: getDataTestId(dataTestId, 'form-control-right-addons'),
333
+ error: getDataTestId(dataTestId, 'form-control-error-message'),
334
+ hint: getDataTestId(dataTestId, 'form-control-hint'),
335
+ decrementButton: getDataTestId(dataTestId, 'decrement-button'),
336
+ incrementButton: getDataTestId(dataTestId, 'increment-button'),
337
+ };
338
+ }
package/utils.d.ts CHANGED
@@ -20,4 +20,15 @@ declare function createMinMaxPlugin({ min, max }: {
20
20
  max: number;
21
21
  }): MaskitoPlugin;
22
22
  declare function createNotEmptyPartsPlugin(separator: string): MaskitoPlugin;
23
- export { MINUS_SIGN, SEPARATORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_DIGITS, parseNumber, stringifyNumberWithoutExp, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin };
23
+ declare function getNumberInputTestIds(dataTestId: string): {
24
+ input: string;
25
+ inputWrapper: string;
26
+ inputWrapperInner: string;
27
+ leftAddons: string;
28
+ rightAddons: string;
29
+ error: string;
30
+ hint: string;
31
+ decrementButton: string;
32
+ incrementButton: string;
33
+ };
34
+ export { MINUS_SIGN, SEPARATORS, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER, MAX_DIGITS, parseNumber, stringifyNumberWithoutExp, createMaskOptions, createMinMaxPlugin, createNotEmptyPartsPlugin, getNumberInputTestIds };
package/utils.js CHANGED
@@ -246,6 +246,19 @@ function createNotEmptyPartsPlugin(separator) {
246
246
  return function () { return element.removeEventListener('blur', listener, evListenerOptions); };
247
247
  };
248
248
  }
249
+ function getNumberInputTestIds(dataTestId) {
250
+ return {
251
+ input: dataTestId,
252
+ inputWrapper: coreComponentsShared.getDataTestId(dataTestId, 'form-control'),
253
+ inputWrapperInner: coreComponentsShared.getDataTestId(dataTestId, 'form-control-inner'),
254
+ leftAddons: coreComponentsShared.getDataTestId(dataTestId, 'form-control-left-addons'),
255
+ rightAddons: coreComponentsShared.getDataTestId(dataTestId, 'form-control-right-addons'),
256
+ error: coreComponentsShared.getDataTestId(dataTestId, 'form-control-error-message'),
257
+ hint: coreComponentsShared.getDataTestId(dataTestId, 'form-control-hint'),
258
+ decrementButton: coreComponentsShared.getDataTestId(dataTestId, 'decrement-button'),
259
+ incrementButton: coreComponentsShared.getDataTestId(dataTestId, 'increment-button'),
260
+ };
261
+ }
249
262
 
250
263
  exports.MAX_DIGITS = MAX_DIGITS;
251
264
  exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER;
@@ -255,5 +268,6 @@ exports.SEPARATORS = SEPARATORS;
255
268
  exports.createMaskOptions = createMaskOptions;
256
269
  exports.createMinMaxPlugin = createMinMaxPlugin;
257
270
  exports.createNotEmptyPartsPlugin = createNotEmptyPartsPlugin;
271
+ exports.getNumberInputTestIds = getNumberInputTestIds;
258
272
  exports.parseNumber = parseNumber;
259
273
  exports.stringifyNumberWithoutExp = stringifyNumberWithoutExp;