@toptal/picasso-number-input 1.0.26 → 2.0.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.
- package/dist-package/src/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist-package/src/NumberInput/NumberInput.js +7 -8
- package/dist-package/src/NumberInput/NumberInput.js.map +1 -1
- package/dist-package/src/NumberInputEndAdornment/NumberInputEndAdornment.d.ts +2 -1
- package/dist-package/src/NumberInputEndAdornment/NumberInputEndAdornment.d.ts.map +1 -1
- package/dist-package/src/NumberInputEndAdornment/NumberInputEndAdornment.js +32 -19
- package/dist-package/src/NumberInputEndAdornment/NumberInputEndAdornment.js.map +1 -1
- package/package.json +9 -8
- package/src/NumberInput/NumberInput.tsx +9 -11
- package/src/NumberInput/__snapshots__/test.tsx.snap +6 -24
- package/src/NumberInputEndAdornment/NumberInputEndAdornment.tsx +43 -30
- package/dist-package/src/NumberInput/styles.d.ts +0 -3
- package/dist-package/src/NumberInput/styles.d.ts.map +0 -1
- package/dist-package/src/NumberInput/styles.js +0 -16
- package/dist-package/src/NumberInput/styles.js.map +0 -1
- package/dist-package/src/NumberInputEndAdornment/styles.d.ts +0 -4
- package/dist-package/src/NumberInputEndAdornment/styles.d.ts.map +0 -1
- package/dist-package/src/NumberInputEndAdornment/styles.js +0 -45
- package/dist-package/src/NumberInputEndAdornment/styles.js.map +0 -1
- package/src/NumberInput/styles.ts +0 -17
- package/src/NumberInputEndAdornment/styles.ts +0 -58
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA6B,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAA6B,MAAM,OAAO,CAAA;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAO1E,OAAO,KAAK,EAAE,KAAK,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAKjF,MAAM,WAAW,KACf,SAAQ,IAAI,CACR,iBAAiB,CAAC,kBAAkB,CAAC,EACrC,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAC/C,EACD,SAAS;IACX,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,uCAAuC;IACvC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,+DAA+D;IAC/D,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;IAC/D,SAAS,CAAC,EAAE,UAAU,CAAA;CACvB;AAED,eAAO,MAAM,WAAW,gFAyFvB,CAAA;AAeD,eAAe,WAAW,CAAA"}
|
@@ -10,15 +10,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
10
10
|
return t;
|
11
11
|
};
|
12
12
|
import React, { forwardRef, useRef } from 'react';
|
13
|
-
import { makeStyles } from '@material-ui/core/styles';
|
14
13
|
import { OutlinedInput } from '@toptal/picasso-outlined-input';
|
15
14
|
import { InputAdornment } from '@toptal/picasso-input-adornment';
|
16
15
|
import { useCombinedRefs, usePropDeprecationWarning, } from '@toptal/picasso-utils';
|
17
|
-
import
|
16
|
+
import { twJoin } from '@toptal/picasso-tailwind-merge';
|
18
17
|
import { NumberInputEndAdornment } from '../NumberInputEndAdornment';
|
19
|
-
const useStyles = makeStyles(styles, {
|
20
|
-
name: 'PicassoNumberInput',
|
21
|
-
});
|
22
18
|
export const NumberInput = forwardRef(function NumberInput(props, ref) {
|
23
19
|
const { step = 1, min = -Infinity, max = Infinity, hideControls, value, onChange, disabled, error, status, onResetClick, enableReset, width, icon, size, testIds, highlight } = props, rest = __rest(props
|
24
20
|
// TODO: [FX-4715]
|
@@ -30,13 +26,16 @@ export const NumberInput = forwardRef(function NumberInput(props, ref) {
|
|
30
26
|
componentName: 'NumberInput',
|
31
27
|
description: 'Use the `status` prop instead. `error` is deprecated and will be removed in the next major release.',
|
32
28
|
});
|
33
|
-
const classes = useStyles(props);
|
34
29
|
const inputRef = useCombinedRefs(ref, useRef(null));
|
35
30
|
const endAdornment = hideControls ? null : (React.createElement(NumberInputEndAdornment, { step: step, min: min, max: max, value: value, disabled: disabled, size: size, inputRef: inputRef }));
|
36
31
|
const startAdornment = icon ? (React.createElement(InputAdornment, { position: 'start', disablePointerEvents: true }, icon)) : null;
|
37
32
|
return (React.createElement(OutlinedInput, { classes: {
|
38
|
-
root:
|
39
|
-
input:
|
33
|
+
root: 'pr-0 cursor-text',
|
34
|
+
input: twJoin(
|
35
|
+
// required to remove arrows in WebKit based browsers
|
36
|
+
'[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 ', '[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 ',
|
37
|
+
// required to remove arrows in Firefox
|
38
|
+
'[-moz-appearance:textfield]'),
|
40
39
|
}, highlight: highlight, inputProps: Object.assign(Object.assign({}, rest), { step,
|
41
40
|
min,
|
42
41
|
max }), width: width, onResetClick: onResetClick, enableReset: enableReset, status: error ? 'error' : status, inputRef: inputRef, type: 'number', value: value, disabled: disabled, onChange: onChange, endAdornment: endAdornment, startAdornment: startAdornment, size: size, testIds: testIds }));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEjD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"NumberInput.js","sourceRoot":"","sources":["../../../src/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import type { RefObject } from 'react';
|
2
2
|
import type { BaseProps, SizeType } from '@toptal/picasso-shared';
|
3
|
+
export declare type Size = SizeType<'small' | 'medium' | 'large'>;
|
3
4
|
export interface Props extends BaseProps {
|
4
5
|
/** Value of the `input` element. */
|
5
6
|
value?: string | number;
|
@@ -12,7 +13,7 @@ export interface Props extends BaseProps {
|
|
12
13
|
/** Indicates whether component is in disabled state */
|
13
14
|
disabled?: boolean;
|
14
15
|
/** Component size */
|
15
|
-
size?:
|
16
|
+
size?: Size;
|
16
17
|
/** Ref of the input element */
|
17
18
|
inputRef: RefObject<HTMLInputElement>;
|
18
19
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberInputEndAdornment.d.ts","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/NumberInputEndAdornment.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
1
|
+
{"version":3,"file":"NumberInputEndAdornment.d.ts","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/NumberInputEndAdornment.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAYjE,oBAAY,IAAI,GAAG,QAAQ,CAAC,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,KAAM,SAAQ,SAAS;IACtC,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qBAAqB;IACrB,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,+BAA+B;IAC/B,QAAQ,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;CACtC;AAmBD,eAAO,MAAM,uBAAuB;YAAW,KAAK;;;;;;;;;;CAyHnD,CAAA;AAaD,eAAe,uBAAuB,CAAA"}
|
@@ -1,24 +1,22 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import { makeStyles } from '@material-ui/core/styles';
|
3
2
|
import { isBrowser } from '@toptal/picasso-shared';
|
4
|
-
import { ButtonBase } from '@material-ui/core';
|
5
|
-
import cx from 'classnames';
|
6
3
|
import { InputAdornment } from '@toptal/picasso-input-adornment';
|
7
4
|
import { Container } from '@toptal/picasso-container';
|
8
5
|
import { ArrowDownMinor16, ArrowUpMinor16, ArrowDownMinor24, ArrowUpMinor24, } from '@toptal/picasso-icons';
|
9
|
-
import
|
10
|
-
const useStyles = makeStyles(styles, {
|
11
|
-
name: 'NumberInputEndAdornment',
|
12
|
-
});
|
6
|
+
import { twJoin } from '@toptal/picasso-tailwind-merge';
|
13
7
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
14
8
|
const nativeInputValueSetter = isBrowser()
|
15
9
|
? Object.getOwnPropertyDescriptor(
|
16
10
|
// eslint-disable-next-line ssr-friendly/no-dom-globals-in-module-scope
|
17
11
|
window.HTMLInputElement.prototype, 'value').set
|
18
12
|
: undefined;
|
13
|
+
const classBySize = {
|
14
|
+
small: 'h-3 w-[1.375rem]',
|
15
|
+
medium: 'h-4 w-[1.625rem]',
|
16
|
+
large: 'h-6 w-[2.125rem]',
|
17
|
+
};
|
19
18
|
export const NumberInputEndAdornment = (props) => {
|
20
19
|
const { step = 1, min = -Infinity, max = Infinity, value, disabled, size = 'medium', inputRef, } = props;
|
21
|
-
const classes = useStyles(props);
|
22
20
|
const normalizedStep = Number(step);
|
23
21
|
const normalizedValue = Number(value);
|
24
22
|
const normalizedMin = Number(min);
|
@@ -42,7 +40,7 @@ export const NumberInputEndAdornment = (props) => {
|
|
42
40
|
return;
|
43
41
|
}
|
44
42
|
let nextValue = normalizedValue + normalizedStep;
|
45
|
-
if (nextValue <= max) {
|
43
|
+
if (nextValue <= Number(max)) {
|
46
44
|
if (normalizedValue < normalizedMin + normalizedStep) {
|
47
45
|
nextValue = normalizedMin + normalizedStep;
|
48
46
|
}
|
@@ -58,7 +56,7 @@ export const NumberInputEndAdornment = (props) => {
|
|
58
56
|
return;
|
59
57
|
}
|
60
58
|
let nextValue = normalizedValue - normalizedStep;
|
61
|
-
if (nextValue >= min) {
|
59
|
+
if (nextValue >= Number(min)) {
|
62
60
|
if (normalizedValue > normalizedMax - normalizedStep) {
|
63
61
|
nextValue = normalizedMax - normalizedStep;
|
64
62
|
}
|
@@ -69,17 +67,32 @@ export const NumberInputEndAdornment = (props) => {
|
|
69
67
|
fireEvent(nextValue);
|
70
68
|
}
|
71
69
|
};
|
72
|
-
const rootClassName =
|
73
|
-
|
74
|
-
|
70
|
+
const rootClassName = twJoin(`flex relative items-center justify-center align-middle
|
71
|
+
|
72
|
+
p-0 bottom-0 cursor-pointer
|
73
|
+
|
74
|
+
text-graphite-700 decoration-graphite-700 bg-inherit bg-transparent
|
75
|
+
|
76
|
+
border-t-0 border-b-0 border-l border-r border-l-solid border-r-solid
|
77
|
+
border-l-gray-400 border-r-transparent
|
78
|
+
|
79
|
+
hover:bg-gray-400 hover:border-gray-400
|
80
|
+
|
81
|
+
[&+&]:border-t [&+&]:border-solid
|
82
|
+
[&+&]:border-t-gray-400
|
83
|
+
|
84
|
+
active:[&+&]:border-t active:[&+&]:border-t-solid
|
85
|
+
active:[&+&]:border-gray-500
|
86
|
+
|
87
|
+
active:bg-gray-500 active:border-t-gray-500
|
88
|
+
|
89
|
+
[&:first-child]:rounded-tr-sm [&:last-child]:rounded-br-sm
|
90
|
+
|
91
|
+
transition-[color,_border,_background] ease-out duration-350`, classBySize[size], disabled && 'opacity-[0.48]');
|
75
92
|
return (React.createElement(InputAdornment, { position: 'end' },
|
76
93
|
React.createElement(Container, { flex: true, direction: 'column', inline: true },
|
77
|
-
React.createElement(
|
78
|
-
|
79
|
-
}, onClick: handleUpClick }, size === 'large' ? React.createElement(ArrowUpMinor24, null) : React.createElement(ArrowUpMinor16, null)),
|
80
|
-
React.createElement(ButtonBase, { disabled: disabled, classes: {
|
81
|
-
root: rootClassName,
|
82
|
-
}, onClick: handleDownClick }, size === 'large' ? React.createElement(ArrowDownMinor24, null) : React.createElement(ArrowDownMinor16, null)))));
|
94
|
+
React.createElement("button", { disabled: disabled, className: rootClassName, onClick: handleUpClick }, size === 'large' ? React.createElement(ArrowUpMinor24, null) : React.createElement(ArrowUpMinor16, null)),
|
95
|
+
React.createElement("button", { disabled: disabled, className: rootClassName, onClick: handleDownClick }, size === 'large' ? React.createElement(ArrowDownMinor24, null) : React.createElement(ArrowDownMinor16, null)))));
|
83
96
|
};
|
84
97
|
NumberInputEndAdornment.defaultProps = {
|
85
98
|
min: -Infinity,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"NumberInputEndAdornment.js","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/NumberInputEndAdornment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"NumberInputEndAdornment.js","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/NumberInputEndAdornment.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@toptal/picasso-number-input",
|
3
|
-
"version": "
|
3
|
+
"version": "2.0.0",
|
4
4
|
"description": "Toptal UI components library - NumberInput",
|
5
5
|
"publishConfig": {
|
6
6
|
"access": "public"
|
@@ -22,27 +22,28 @@
|
|
22
22
|
},
|
23
23
|
"homepage": "https://github.com/toptal/picasso/tree/master/packages/picasso#readme",
|
24
24
|
"dependencies": {
|
25
|
-
"@toptal/picasso-container": "
|
26
|
-
"@toptal/picasso-form": "
|
25
|
+
"@toptal/picasso-container": "2.0.0",
|
26
|
+
"@toptal/picasso-form": "4.0.0",
|
27
27
|
"@toptal/picasso-icons": "1.5.0",
|
28
|
-
"@toptal/picasso-input-adornment": "
|
29
|
-
"@toptal/picasso-outlined-input": "
|
28
|
+
"@toptal/picasso-input-adornment": "2.0.0",
|
29
|
+
"@toptal/picasso-outlined-input": "2.0.0",
|
30
30
|
"@toptal/picasso-shared": "15.0.0",
|
31
|
-
"@toptal/picasso-utils": "1.0.3"
|
32
|
-
"classnames": "^2.5.1"
|
31
|
+
"@toptal/picasso-utils": "1.0.3"
|
33
32
|
},
|
34
33
|
"sideEffects": [
|
35
34
|
"**/styles.ts",
|
36
35
|
"**/styles.js"
|
37
36
|
],
|
38
37
|
"peerDependencies": {
|
39
|
-
"@
|
38
|
+
"@toptal/picasso-tailwind-merge": "^1.0.1",
|
39
|
+
"@toptal/picasso-tailwind": ">=2.7",
|
40
40
|
"react": ">=16.12.0 < 19.0.0"
|
41
41
|
},
|
42
42
|
"exports": {
|
43
43
|
".": "./dist-package/src/index.js"
|
44
44
|
},
|
45
45
|
"devDependencies": {
|
46
|
+
"@toptal/picasso-tailwind-merge": "1.2.0",
|
46
47
|
"@toptal/picasso-test-utils": "1.1.1"
|
47
48
|
},
|
48
49
|
"files": [
|
@@ -1,7 +1,5 @@
|
|
1
1
|
import type { ReactNode } from 'react'
|
2
2
|
import React, { forwardRef, useRef } from 'react'
|
3
|
-
import type { Theme } from '@material-ui/core/styles'
|
4
|
-
import { makeStyles } from '@material-ui/core/styles'
|
5
3
|
import type { BaseProps, OmitInternalProps } from '@toptal/picasso-shared'
|
6
4
|
import { OutlinedInput } from '@toptal/picasso-outlined-input'
|
7
5
|
import { InputAdornment } from '@toptal/picasso-input-adornment'
|
@@ -10,8 +8,8 @@ import {
|
|
10
8
|
usePropDeprecationWarning,
|
11
9
|
} from '@toptal/picasso-utils'
|
12
10
|
import type { Props as OutlinedInputProps } from '@toptal/picasso-outlined-input'
|
11
|
+
import { twJoin } from '@toptal/picasso-tailwind-merge'
|
13
12
|
|
14
|
-
import styles from './styles'
|
15
13
|
import { NumberInputEndAdornment } from '../NumberInputEndAdornment'
|
16
14
|
|
17
15
|
export interface Props
|
@@ -39,10 +37,6 @@ export interface Props
|
|
39
37
|
highlight?: 'autofill'
|
40
38
|
}
|
41
39
|
|
42
|
-
const useStyles = makeStyles<Theme, Props>(styles, {
|
43
|
-
name: 'PicassoNumberInput',
|
44
|
-
})
|
45
|
-
|
46
40
|
export const NumberInput = forwardRef<HTMLInputElement, Props>(
|
47
41
|
function NumberInput(props, ref) {
|
48
42
|
const {
|
@@ -74,8 +68,6 @@ export const NumberInput = forwardRef<HTMLInputElement, Props>(
|
|
74
68
|
'Use the `status` prop instead. `error` is deprecated and will be removed in the next major release.',
|
75
69
|
})
|
76
70
|
|
77
|
-
const classes = useStyles(props)
|
78
|
-
|
79
71
|
const inputRef = useCombinedRefs<HTMLInputElement>(
|
80
72
|
ref,
|
81
73
|
useRef<HTMLInputElement>(null)
|
@@ -102,8 +94,14 @@ export const NumberInput = forwardRef<HTMLInputElement, Props>(
|
|
102
94
|
return (
|
103
95
|
<OutlinedInput
|
104
96
|
classes={{
|
105
|
-
root:
|
106
|
-
input:
|
97
|
+
root: 'pr-0 cursor-text',
|
98
|
+
input: twJoin(
|
99
|
+
// required to remove arrows in WebKit based browsers
|
100
|
+
'[&::-webkit-outer-spin-button]:appearance-none [&::-webkit-outer-spin-button]:m-0 ',
|
101
|
+
'[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-inner-spin-button]:m-0 ',
|
102
|
+
// required to remove arrows in Firefox
|
103
|
+
'[-moz-appearance:textfield]'
|
104
|
+
),
|
107
105
|
}}
|
108
106
|
highlight={highlight}
|
109
107
|
inputProps={{
|
@@ -5,11 +5,11 @@ exports[`NumberInput renders 1`] = `
|
|
5
5
|
class="Picasso-root"
|
6
6
|
>
|
7
7
|
<div
|
8
|
-
class="
|
8
|
+
class="base-Input base-Input relative inline-flex gap-y gap-x items-center rounded-sm [font-size:_unset] hover:[&_.resetButtonDirty]:visible p-2 h-8 w-[18.75rem] bg-white after:content-[""] after:inline-block after:absolute after:top-0 after:bottom-0 after:right-0 after:left-0 after:pointer-events after:border-solid after:rounded-sm after:border-gray [&:has(input:focus)]:after:border-blue after:border [&:has(input:focus)]:after:shadow-[0_0_0_3px] [&:has(input:focus)]:after:shadow-blue hover:[&:not(:has(input:focus))]:after:border-gray text-black pr-0 cursor-text"
|
9
9
|
>
|
10
10
|
<input
|
11
11
|
aria-invalid="false"
|
12
|
-
class="
|
12
|
+
class="base-Input [&::-webkit-calendar-picker-indicator]:bg bg-transparent border-none box-border cursor-[inherit] h-full outline-none p-0 peer resize-none w-full text-md leading-4 text-black [&::placeholder]:text-gray [&::placeholder]:opacity-100 [&::-webkit-outer-spin-button]:appearance [&::-webkit-outer-spin-button]:m [&::-webkit-inner-spin-button]:appearance [&::-webkit-inner-spin-button]:m [-moz"
|
13
13
|
max="100"
|
14
14
|
min="-100"
|
15
15
|
step="5"
|
@@ -17,15 +17,13 @@ exports[`NumberInput renders 1`] = `
|
|
17
17
|
value="10"
|
18
18
|
/>
|
19
19
|
<div
|
20
|
-
class="
|
20
|
+
class="text-graphite h-auto flex items-center whitespace-nowrap max-h justify-end ml-auto flex-grow flex-shrink basis-auto"
|
21
21
|
>
|
22
22
|
<div
|
23
|
-
class="
|
23
|
+
class="inline-flex flex-col"
|
24
24
|
>
|
25
25
|
<button
|
26
|
-
class="
|
27
|
-
tabindex="0"
|
28
|
-
type="button"
|
26
|
+
class="flex relative items-center justify-center align-middle p-0 bottom-0 cursor-pointer text-graphite decoration-graphite bg-inherit bg-transparent border-t border-b border-l border-r border-l border-r border-l-gray border-r hover:bg-gray hover:border-gray [&+&]:border-t [&+&]:border-solid [&+&]:border-t-gray active:[&+&]:border-t active:[&+&]:border-t active:[&+&]:border-gray active:bg-gray active:border-t-gray [&:first-child]:rounded-tr [&:last-child]:rounded-br transition-[color,_border,_background] ease-out duration-350 h-4 w-[1.625rem]"
|
29
27
|
>
|
30
28
|
<svg
|
31
29
|
class="PicassoSvgArrowUpMinor16-root"
|
@@ -38,9 +36,7 @@ exports[`NumberInput renders 1`] = `
|
|
38
36
|
</svg>
|
39
37
|
</button>
|
40
38
|
<button
|
41
|
-
class="
|
42
|
-
tabindex="0"
|
43
|
-
type="button"
|
39
|
+
class="flex relative items-center justify-center align-middle p-0 bottom-0 cursor-pointer text-graphite decoration-graphite bg-inherit bg-transparent border-t border-b border-l border-r border-l border-r border-l-gray border-r hover:bg-gray hover:border-gray [&+&]:border-t [&+&]:border-solid [&+&]:border-t-gray active:[&+&]:border-t active:[&+&]:border-t active:[&+&]:border-gray active:bg-gray active:border-t-gray [&:first-child]:rounded-tr [&:last-child]:rounded-br transition-[color,_border,_background] ease-out duration-350 h-4 w-[1.625rem]"
|
44
40
|
>
|
45
41
|
<svg
|
46
42
|
class="PicassoSvgArrowDownMinor16-root"
|
@@ -54,20 +50,6 @@ exports[`NumberInput renders 1`] = `
|
|
54
50
|
</button>
|
55
51
|
</div>
|
56
52
|
</div>
|
57
|
-
<fieldset
|
58
|
-
aria-hidden="true"
|
59
|
-
class="PrivateNotchedOutline-root MuiOutlinedInput-notchedOutline PicassoOutlinedInput-notchedOutline"
|
60
|
-
style="padding-left: 8px;"
|
61
|
-
>
|
62
|
-
<legend
|
63
|
-
class="PrivateNotchedOutline-legend"
|
64
|
-
style="width: 0.01px;"
|
65
|
-
>
|
66
|
-
<span>
|
67
|
-
|
68
|
-
</span>
|
69
|
-
</legend>
|
70
|
-
</fieldset>
|
71
53
|
</div>
|
72
54
|
</div>
|
73
55
|
`;
|
@@ -1,12 +1,8 @@
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
2
2
|
import type { RefObject } from 'react'
|
3
3
|
import React from 'react'
|
4
|
-
import type { Theme } from '@material-ui/core/styles'
|
5
|
-
import { makeStyles } from '@material-ui/core/styles'
|
6
4
|
import type { BaseProps, SizeType } from '@toptal/picasso-shared'
|
7
5
|
import { isBrowser } from '@toptal/picasso-shared'
|
8
|
-
import { ButtonBase } from '@material-ui/core'
|
9
|
-
import cx from 'classnames'
|
10
6
|
import { InputAdornment } from '@toptal/picasso-input-adornment'
|
11
7
|
import { Container } from '@toptal/picasso-container'
|
12
8
|
import {
|
@@ -15,8 +11,9 @@ import {
|
|
15
11
|
ArrowDownMinor24,
|
16
12
|
ArrowUpMinor24,
|
17
13
|
} from '@toptal/picasso-icons'
|
14
|
+
import { twJoin } from '@toptal/picasso-tailwind-merge'
|
18
15
|
|
19
|
-
|
16
|
+
export type Size = SizeType<'small' | 'medium' | 'large'>
|
20
17
|
|
21
18
|
export interface Props extends BaseProps {
|
22
19
|
/** Value of the `input` element. */
|
@@ -30,15 +27,11 @@ export interface Props extends BaseProps {
|
|
30
27
|
/** Indicates whether component is in disabled state */
|
31
28
|
disabled?: boolean
|
32
29
|
/** Component size */
|
33
|
-
size?:
|
30
|
+
size?: Size
|
34
31
|
/** Ref of the input element */
|
35
32
|
inputRef: RefObject<HTMLInputElement>
|
36
33
|
}
|
37
34
|
|
38
|
-
const useStyles = makeStyles<Theme, Props>(styles, {
|
39
|
-
name: 'NumberInputEndAdornment',
|
40
|
-
})
|
41
|
-
|
42
35
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
43
36
|
const nativeInputValueSetter = isBrowser()
|
44
37
|
? (
|
@@ -50,6 +43,12 @@ const nativeInputValueSetter = isBrowser()
|
|
50
43
|
).set!
|
51
44
|
: undefined
|
52
45
|
|
46
|
+
const classBySize: Record<Size, string> = {
|
47
|
+
small: 'h-3 w-[1.375rem]',
|
48
|
+
medium: 'h-4 w-[1.625rem]',
|
49
|
+
large: 'h-6 w-[2.125rem]',
|
50
|
+
}
|
51
|
+
|
53
52
|
export const NumberInputEndAdornment = (props: Props) => {
|
54
53
|
const {
|
55
54
|
step = 1,
|
@@ -61,8 +60,6 @@ export const NumberInputEndAdornment = (props: Props) => {
|
|
61
60
|
inputRef,
|
62
61
|
} = props
|
63
62
|
|
64
|
-
const classes = useStyles(props)
|
65
|
-
|
66
63
|
const normalizedStep = Number(step)
|
67
64
|
const normalizedValue = Number(value)
|
68
65
|
const normalizedMin = Number(min)
|
@@ -94,7 +91,7 @@ export const NumberInputEndAdornment = (props: Props) => {
|
|
94
91
|
|
95
92
|
let nextValue = normalizedValue + normalizedStep
|
96
93
|
|
97
|
-
if (nextValue <= max) {
|
94
|
+
if (nextValue <= Number(max)) {
|
98
95
|
if (normalizedValue < normalizedMin + normalizedStep) {
|
99
96
|
nextValue = normalizedMin + normalizedStep
|
100
97
|
}
|
@@ -113,7 +110,7 @@ export const NumberInputEndAdornment = (props: Props) => {
|
|
113
110
|
|
114
111
|
let nextValue = normalizedValue - normalizedStep
|
115
112
|
|
116
|
-
if (nextValue >= min) {
|
113
|
+
if (nextValue >= Number(min)) {
|
117
114
|
if (normalizedValue > normalizedMax - normalizedStep) {
|
118
115
|
nextValue = normalizedMax - normalizedStep
|
119
116
|
}
|
@@ -125,35 +122,51 @@ export const NumberInputEndAdornment = (props: Props) => {
|
|
125
122
|
}
|
126
123
|
}
|
127
124
|
|
128
|
-
const rootClassName =
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
125
|
+
const rootClassName = twJoin(
|
126
|
+
`flex relative items-center justify-center align-middle
|
127
|
+
|
128
|
+
p-0 bottom-0 cursor-pointer
|
129
|
+
|
130
|
+
text-graphite-700 decoration-graphite-700 bg-inherit bg-transparent
|
131
|
+
|
132
|
+
border-t-0 border-b-0 border-l border-r border-l-solid border-r-solid
|
133
|
+
border-l-gray-400 border-r-transparent
|
134
|
+
|
135
|
+
hover:bg-gray-400 hover:border-gray-400
|
136
|
+
|
137
|
+
[&+&]:border-t [&+&]:border-solid
|
138
|
+
[&+&]:border-t-gray-400
|
139
|
+
|
140
|
+
active:[&+&]:border-t active:[&+&]:border-t-solid
|
141
|
+
active:[&+&]:border-gray-500
|
142
|
+
|
143
|
+
active:bg-gray-500 active:border-t-gray-500
|
144
|
+
|
145
|
+
[&:first-child]:rounded-tr-sm [&:last-child]:rounded-br-sm
|
146
|
+
|
147
|
+
transition-[color,_border,_background] ease-out duration-350`,
|
148
|
+
classBySize[size],
|
149
|
+
disabled && 'opacity-[0.48]'
|
134
150
|
)
|
135
151
|
|
136
152
|
return (
|
137
153
|
<InputAdornment position='end'>
|
138
154
|
<Container flex direction='column' inline>
|
139
|
-
<
|
155
|
+
<button
|
140
156
|
disabled={disabled}
|
141
|
-
|
142
|
-
root: rootClassName,
|
143
|
-
}}
|
157
|
+
className={rootClassName}
|
144
158
|
onClick={handleUpClick}
|
145
159
|
>
|
146
160
|
{size === 'large' ? <ArrowUpMinor24 /> : <ArrowUpMinor16 />}
|
147
|
-
</
|
148
|
-
|
161
|
+
</button>
|
162
|
+
|
163
|
+
<button
|
149
164
|
disabled={disabled}
|
150
|
-
|
151
|
-
root: rootClassName,
|
152
|
-
}}
|
165
|
+
className={rootClassName}
|
153
166
|
onClick={handleDownClick}
|
154
167
|
>
|
155
168
|
{size === 'large' ? <ArrowDownMinor24 /> : <ArrowDownMinor16 />}
|
156
|
-
</
|
169
|
+
</button>
|
157
170
|
</Container>
|
158
171
|
</InputAdornment>
|
159
172
|
)
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/NumberInput/styles.ts"],"names":[],"mappings":";AAEA,wBAcI"}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import { createStyles } from '@material-ui/core/styles';
|
2
|
-
export default () => createStyles({
|
3
|
-
root: {
|
4
|
-
paddingRight: 0,
|
5
|
-
cursor: 'text',
|
6
|
-
},
|
7
|
-
input: {
|
8
|
-
'&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {
|
9
|
-
'-webkit-appearance': 'none',
|
10
|
-
appearance: 'none',
|
11
|
-
margin: 0,
|
12
|
-
},
|
13
|
-
'-moz-appearance': 'textfield',
|
14
|
-
},
|
15
|
-
});
|
16
|
-
//# sourceMappingURL=styles.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/NumberInput/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,GAAG,EAAE,CAClB,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,YAAY,EAAE,CAAC;QACf,MAAM,EAAE,MAAM;KACf;IACD,KAAK,EAAE;QACL,4DAA4D,EAAE;YAC5D,oBAAoB,EAAE,MAAM;YAC5B,UAAU,EAAE,MAAM;YAClB,MAAM,EAAE,CAAC;SACV;QACD,iBAAiB,EAAE,WAAW;KAC/B;CACF,CAAC,CAAA"}
|
@@ -1,4 +0,0 @@
|
|
1
|
-
import type { Theme } from '@material-ui/core/styles';
|
2
|
-
declare const _default: ({ palette, transitions, sizes: { borderRadius } }: Theme) => import("@material-ui/styles").StyleRules<{}, "root" | "medium" | "large" | "small" | "disabled">;
|
3
|
-
export default _default;
|
4
|
-
//# sourceMappingURL=styles.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;4EAGc,KAAK;AAAxE,wBAsDI"}
|
@@ -1,45 +0,0 @@
|
|
1
|
-
import { createStyles } from '@material-ui/core/styles';
|
2
|
-
export default ({ palette, transitions, sizes: { borderRadius } }) => createStyles({
|
3
|
-
root: {
|
4
|
-
borderLeft: `1px solid ${palette.grey.light2}`,
|
5
|
-
borderRight: '1px solid transparent',
|
6
|
-
'&:hover': {
|
7
|
-
background: palette.grey.light2,
|
8
|
-
borderColor: palette.grey.light2,
|
9
|
-
},
|
10
|
-
'& + &': {
|
11
|
-
borderTop: `1px solid ${palette.grey.light2}`,
|
12
|
-
},
|
13
|
-
'&:active + &': {
|
14
|
-
borderTop: `1px solid ${palette.grey.main}`,
|
15
|
-
},
|
16
|
-
'&:active': {
|
17
|
-
background: palette.grey.main,
|
18
|
-
borderColor: palette.grey.main,
|
19
|
-
},
|
20
|
-
'&:first-child': {
|
21
|
-
borderTopRightRadius: borderRadius.small,
|
22
|
-
},
|
23
|
-
'&:last-child': {
|
24
|
-
borderBottomRightRadius: borderRadius.small,
|
25
|
-
},
|
26
|
-
transition: `all ${transitions.duration.short}ms ${transitions.easing.easeOut}`,
|
27
|
-
transitionProperty: 'border, color, background',
|
28
|
-
},
|
29
|
-
disabled: {
|
30
|
-
opacity: 0.48,
|
31
|
-
},
|
32
|
-
small: {
|
33
|
-
height: '0.75rem',
|
34
|
-
width: '1.375rem',
|
35
|
-
},
|
36
|
-
medium: {
|
37
|
-
height: '1rem',
|
38
|
-
width: '1.625rem',
|
39
|
-
},
|
40
|
-
large: {
|
41
|
-
height: '1.5rem',
|
42
|
-
width: '2.125rem',
|
43
|
-
},
|
44
|
-
});
|
45
|
-
//# sourceMappingURL=styles.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/NumberInputEndAdornment/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAEvD,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAS,EAAE,EAAE,CAC1E,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,UAAU,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;QAC9C,WAAW,EAAE,uBAAuB;QAEpC,SAAS,EAAE;YACT,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YAC/B,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;SACjC;QAED,OAAO,EAAE;YACP,SAAS,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE;SAC9C;QAED,cAAc,EAAE;YACd,SAAS,EAAE,aAAa,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;SAC5C;QAED,UAAU,EAAE;YACV,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;YAC7B,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;SAC/B;QAED,eAAe,EAAE;YACf,oBAAoB,EAAE,YAAY,CAAC,KAAK;SACzC;QAED,cAAc,EAAE;YACd,uBAAuB,EAAE,YAAY,CAAC,KAAK;SAC5C;QAED,UAAU,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,KAAK,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;QAC/E,kBAAkB,EAAE,2BAA2B;KAChD;IAED,QAAQ,EAAE;QACR,OAAO,EAAE,IAAI;KACd;IAED,KAAK,EAAE;QACL,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,UAAU;KAClB;IAED,MAAM,EAAE;QACN,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,UAAU;KAClB;IAED,KAAK,EAAE;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,UAAU;KAClB;CACF,CAAC,CAAA"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { createStyles } from '@material-ui/core/styles'
|
2
|
-
|
3
|
-
export default () =>
|
4
|
-
createStyles({
|
5
|
-
root: {
|
6
|
-
paddingRight: 0,
|
7
|
-
cursor: 'text',
|
8
|
-
},
|
9
|
-
input: {
|
10
|
-
'&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': {
|
11
|
-
'-webkit-appearance': 'none',
|
12
|
-
appearance: 'none',
|
13
|
-
margin: 0,
|
14
|
-
},
|
15
|
-
'-moz-appearance': 'textfield',
|
16
|
-
},
|
17
|
-
})
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import type { Theme } from '@material-ui/core/styles'
|
2
|
-
import { createStyles } from '@material-ui/core/styles'
|
3
|
-
|
4
|
-
export default ({ palette, transitions, sizes: { borderRadius } }: Theme) =>
|
5
|
-
createStyles({
|
6
|
-
root: {
|
7
|
-
borderLeft: `1px solid ${palette.grey.light2}`,
|
8
|
-
borderRight: '1px solid transparent',
|
9
|
-
|
10
|
-
'&:hover': {
|
11
|
-
background: palette.grey.light2,
|
12
|
-
borderColor: palette.grey.light2,
|
13
|
-
},
|
14
|
-
|
15
|
-
'& + &': {
|
16
|
-
borderTop: `1px solid ${palette.grey.light2}`,
|
17
|
-
},
|
18
|
-
|
19
|
-
'&:active + &': {
|
20
|
-
borderTop: `1px solid ${palette.grey.main}`,
|
21
|
-
},
|
22
|
-
|
23
|
-
'&:active': {
|
24
|
-
background: palette.grey.main,
|
25
|
-
borderColor: palette.grey.main,
|
26
|
-
},
|
27
|
-
|
28
|
-
'&:first-child': {
|
29
|
-
borderTopRightRadius: borderRadius.small,
|
30
|
-
},
|
31
|
-
|
32
|
-
'&:last-child': {
|
33
|
-
borderBottomRightRadius: borderRadius.small,
|
34
|
-
},
|
35
|
-
|
36
|
-
transition: `all ${transitions.duration.short}ms ${transitions.easing.easeOut}`,
|
37
|
-
transitionProperty: 'border, color, background',
|
38
|
-
},
|
39
|
-
|
40
|
-
disabled: {
|
41
|
-
opacity: 0.48,
|
42
|
-
},
|
43
|
-
|
44
|
-
small: {
|
45
|
-
height: '0.75rem',
|
46
|
-
width: '1.375rem',
|
47
|
-
},
|
48
|
-
|
49
|
-
medium: {
|
50
|
-
height: '1rem',
|
51
|
-
width: '1.625rem',
|
52
|
-
},
|
53
|
-
|
54
|
-
large: {
|
55
|
-
height: '1.5rem',
|
56
|
-
width: '2.125rem',
|
57
|
-
},
|
58
|
-
})
|