@acusti/css-value-input 2.2.0 → 2.2.2
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/CSSValueInput.js +129 -141
- package/dist/CSSValueInput.js.map +1 -1
- package/package.json +5 -5
package/dist/CSSValueInput.js
CHANGED
|
@@ -3,10 +3,10 @@ import { c } from "react/compiler-runtime";
|
|
|
3
3
|
import { DEFAULT_UNIT_BY_CSS_VALUE_TYPE, DEFAULT_CSS_VALUE_TYPE, getCSSValueAsNumber, getUnitFromCSSValue, getCSSValueWithUnit, roundToPrecision } from "@acusti/css-values";
|
|
4
4
|
import InputText from "@acusti/input-text";
|
|
5
5
|
import clsx from "clsx";
|
|
6
|
-
import { useRef,
|
|
6
|
+
import { useRef, useEffect } from "react";
|
|
7
7
|
const ROOT_CLASS_NAME = "cssvalueinput";
|
|
8
8
|
function CSSValueInput(t0) {
|
|
9
|
-
const $ = c(
|
|
9
|
+
const $ = c(56);
|
|
10
10
|
const {
|
|
11
11
|
allowEmpty: t1,
|
|
12
12
|
className,
|
|
@@ -38,78 +38,67 @@ function CSSValueInput(t0) {
|
|
|
38
38
|
const getValueAsNumber = t3 === void 0 ? getCSSValueAsNumber : t3;
|
|
39
39
|
const step = t4 === void 0 ? 1 : t4;
|
|
40
40
|
const unit = t5 === void 0 ? DEFAULT_UNIT_BY_CSS_VALUE_TYPE[cssValueType] : t5;
|
|
41
|
-
const
|
|
41
|
+
const value = typeof valueFromProps === "number" && Number.isFinite(valueFromProps) ? `${valueFromProps}` : valueFromProps;
|
|
42
|
+
const submittedValueRef = useRef(value ?? "");
|
|
42
43
|
let t6;
|
|
43
|
-
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
44
|
-
t6 = () => inputRef.current;
|
|
45
|
-
$[0] = t6;
|
|
46
|
-
} else {
|
|
47
|
-
t6 = $[0];
|
|
48
|
-
}
|
|
49
|
-
useImperativeHandle(ref, t6);
|
|
50
|
-
const value = typeof valueFromProps === "number" && !Number.isNaN(valueFromProps) ? `${valueFromProps}` : valueFromProps;
|
|
51
|
-
const [submittedValue, setSubmittedValue] = useState(value ?? "");
|
|
52
44
|
let t7;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
setSubmittedValue(value ?? "");
|
|
45
|
+
if ($[0] !== value) {
|
|
46
|
+
t6 = () => {
|
|
47
|
+
submittedValueRef.current = value ?? "";
|
|
57
48
|
};
|
|
58
|
-
|
|
59
|
-
$[
|
|
49
|
+
t7 = [value];
|
|
50
|
+
$[0] = value;
|
|
51
|
+
$[1] = t6;
|
|
60
52
|
$[2] = t7;
|
|
61
|
-
$[3] = t8;
|
|
62
53
|
} else {
|
|
54
|
+
t6 = $[1];
|
|
63
55
|
t7 = $[2];
|
|
64
|
-
t8 = $[3];
|
|
65
56
|
}
|
|
66
|
-
useEffect(
|
|
67
|
-
let
|
|
68
|
-
if ($[
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
onSubmitValue(currentValue);
|
|
57
|
+
useEffect(t6, t7);
|
|
58
|
+
let t8;
|
|
59
|
+
if ($[3] !== onSubmitValue) {
|
|
60
|
+
t8 = (event) => {
|
|
61
|
+
submittedValueRef.current = event.currentTarget.value;
|
|
62
|
+
onSubmitValue(event.currentTarget.value);
|
|
73
63
|
};
|
|
74
|
-
$[
|
|
75
|
-
$[
|
|
64
|
+
$[3] = onSubmitValue;
|
|
65
|
+
$[4] = t8;
|
|
76
66
|
} else {
|
|
77
|
-
|
|
67
|
+
t8 = $[4];
|
|
78
68
|
}
|
|
79
|
-
const handleSubmitValue =
|
|
80
|
-
let
|
|
81
|
-
if ($[
|
|
82
|
-
|
|
69
|
+
const handleSubmitValue = t8;
|
|
70
|
+
let t9;
|
|
71
|
+
if ($[5] !== allowEmpty || $[6] !== cssValueType || $[7] !== getValueAsNumber || $[8] !== handleSubmitValue || $[9] !== max || $[10] !== min || $[11] !== onBlur || $[12] !== unit || $[13] !== validator) {
|
|
72
|
+
t9 = (event_0) => {
|
|
83
73
|
const input = event_0.currentTarget;
|
|
84
|
-
inputRef.current = input;
|
|
85
74
|
if (onBlur) {
|
|
86
75
|
onBlur(event_0);
|
|
87
76
|
}
|
|
88
|
-
const
|
|
89
|
-
if (allowEmpty && !
|
|
77
|
+
const currentValue = input.value.trim();
|
|
78
|
+
if (allowEmpty && !currentValue) {
|
|
90
79
|
handleSubmitValue(event_0);
|
|
91
80
|
return;
|
|
92
81
|
}
|
|
93
|
-
const currentValueAsNumber = getValueAsNumber(
|
|
82
|
+
const currentValueAsNumber = getValueAsNumber(currentValue);
|
|
94
83
|
const isCurrentValueFinite = Number.isFinite(currentValueAsNumber);
|
|
95
84
|
const defaultUnit = unit ? getUnitFromCSSValue({
|
|
96
85
|
cssValueType,
|
|
97
86
|
defaultUnit: unit,
|
|
98
|
-
value:
|
|
87
|
+
value: submittedValueRef.current
|
|
99
88
|
}) : "";
|
|
100
89
|
if (!isCurrentValueFinite) {
|
|
101
90
|
let isValid = false;
|
|
102
91
|
if (validator instanceof RegExp) {
|
|
103
|
-
isValid = validator.test(
|
|
92
|
+
isValid = validator.test(currentValue);
|
|
104
93
|
} else {
|
|
105
94
|
if (validator) {
|
|
106
|
-
isValid = validator(
|
|
95
|
+
isValid = validator(currentValue);
|
|
107
96
|
}
|
|
108
97
|
}
|
|
109
98
|
if (isValid) {
|
|
110
99
|
handleSubmitValue(event_0);
|
|
111
100
|
} else {
|
|
112
|
-
input.value =
|
|
101
|
+
input.value = submittedValueRef.current;
|
|
113
102
|
}
|
|
114
103
|
return;
|
|
115
104
|
}
|
|
@@ -131,47 +120,46 @@ function CSSValueInput(t0) {
|
|
|
131
120
|
const currentUnit = getUnitFromCSSValue({
|
|
132
121
|
cssValueType,
|
|
133
122
|
defaultUnit,
|
|
134
|
-
value:
|
|
123
|
+
value: currentValue
|
|
135
124
|
});
|
|
136
125
|
input.value = normalizedValueAsNumber + currentUnit;
|
|
137
126
|
} else {
|
|
138
127
|
input.value = getCSSValueWithUnit({
|
|
139
128
|
cssValueType,
|
|
140
129
|
defaultUnit,
|
|
141
|
-
value:
|
|
130
|
+
value: currentValue
|
|
142
131
|
});
|
|
143
132
|
}
|
|
144
133
|
handleSubmitValue(event_0);
|
|
145
134
|
};
|
|
146
|
-
$[
|
|
147
|
-
$[
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
151
|
-
$[
|
|
152
|
-
$[
|
|
153
|
-
$[
|
|
154
|
-
$[
|
|
155
|
-
$[
|
|
156
|
-
$[16] = t10;
|
|
135
|
+
$[5] = allowEmpty;
|
|
136
|
+
$[6] = cssValueType;
|
|
137
|
+
$[7] = getValueAsNumber;
|
|
138
|
+
$[8] = handleSubmitValue;
|
|
139
|
+
$[9] = max;
|
|
140
|
+
$[10] = min;
|
|
141
|
+
$[11] = onBlur;
|
|
142
|
+
$[12] = unit;
|
|
143
|
+
$[13] = validator;
|
|
144
|
+
$[14] = t9;
|
|
157
145
|
} else {
|
|
158
|
-
|
|
146
|
+
t9 = $[14];
|
|
159
147
|
}
|
|
160
|
-
const handleBlur =
|
|
161
|
-
let
|
|
162
|
-
if ($[
|
|
163
|
-
|
|
148
|
+
const handleBlur = t9;
|
|
149
|
+
let t10;
|
|
150
|
+
if ($[15] !== cssValueType || $[16] !== getValueAsNumber || $[17] !== max || $[18] !== min || $[19] !== step || $[20] !== unit) {
|
|
151
|
+
t10 = (t112) => {
|
|
164
152
|
const {
|
|
165
|
-
currentValue:
|
|
166
|
-
multiplier:
|
|
167
|
-
signum:
|
|
168
|
-
} =
|
|
169
|
-
const multiplier =
|
|
170
|
-
const signum =
|
|
153
|
+
currentValue: currentValue_0,
|
|
154
|
+
multiplier: t122,
|
|
155
|
+
signum: t132
|
|
156
|
+
} = t112;
|
|
157
|
+
const multiplier = t122 === void 0 ? 1 : t122;
|
|
158
|
+
const signum = t132 === void 0 ? 1 : t132;
|
|
171
159
|
const modifier = multiplier * step * signum;
|
|
172
|
-
const currentValueAsNumber_0 = getValueAsNumber(
|
|
173
|
-
if (typeof
|
|
174
|
-
return
|
|
160
|
+
const currentValueAsNumber_0 = getValueAsNumber(currentValue_0);
|
|
161
|
+
if (typeof currentValue_0 === "string" && Number.isNaN(currentValueAsNumber_0)) {
|
|
162
|
+
return currentValue_0;
|
|
175
163
|
}
|
|
176
164
|
let nextValue = currentValueAsNumber_0 + modifier;
|
|
177
165
|
if (cssValueType === "integer") {
|
|
@@ -188,57 +176,56 @@ function CSSValueInput(t0) {
|
|
|
188
176
|
const nextUnit = getUnitFromCSSValue({
|
|
189
177
|
cssValueType,
|
|
190
178
|
defaultUnit: unit,
|
|
191
|
-
value:
|
|
179
|
+
value: currentValue_0
|
|
192
180
|
});
|
|
193
181
|
return `${nextValue}${nextUnit}`;
|
|
194
182
|
};
|
|
195
|
-
$[
|
|
196
|
-
$[
|
|
197
|
-
$[
|
|
198
|
-
$[
|
|
199
|
-
$[
|
|
200
|
-
$[
|
|
201
|
-
$[
|
|
183
|
+
$[15] = cssValueType;
|
|
184
|
+
$[16] = getValueAsNumber;
|
|
185
|
+
$[17] = max;
|
|
186
|
+
$[18] = min;
|
|
187
|
+
$[19] = step;
|
|
188
|
+
$[20] = unit;
|
|
189
|
+
$[21] = t10;
|
|
202
190
|
} else {
|
|
203
|
-
|
|
191
|
+
t10 = $[21];
|
|
204
192
|
}
|
|
205
|
-
const getNextValue =
|
|
206
|
-
let
|
|
207
|
-
if ($[
|
|
208
|
-
|
|
193
|
+
const getNextValue = t10;
|
|
194
|
+
let t11;
|
|
195
|
+
if ($[22] !== getNextValue || $[23] !== onKeyDown || $[24] !== placeholder || $[25] !== unit) {
|
|
196
|
+
t11 = (event_1) => {
|
|
209
197
|
const input_0 = event_1.currentTarget;
|
|
210
|
-
inputRef.current = input_0;
|
|
211
198
|
if (onKeyDown) {
|
|
212
199
|
onKeyDown(event_1);
|
|
213
200
|
}
|
|
214
201
|
if (event_1.key !== "ArrowDown" && event_1.key !== "ArrowUp") {
|
|
215
202
|
return;
|
|
216
203
|
}
|
|
217
|
-
const
|
|
204
|
+
const currentValue_1 = input_0.value ?? placeholder ?? `0${unit}`;
|
|
218
205
|
const nextValue_0 = getNextValue({
|
|
219
|
-
currentValue:
|
|
206
|
+
currentValue: currentValue_1,
|
|
220
207
|
multiplier: event_1.shiftKey ? 10 : 1,
|
|
221
208
|
signum: event_1.key === "ArrowUp" ? 1 : -1
|
|
222
209
|
});
|
|
223
|
-
if (nextValue_0 ===
|
|
210
|
+
if (nextValue_0 === currentValue_1) {
|
|
224
211
|
return;
|
|
225
212
|
}
|
|
226
213
|
event_1.stopPropagation();
|
|
227
214
|
event_1.preventDefault();
|
|
228
215
|
input_0.value = nextValue_0;
|
|
229
216
|
};
|
|
230
|
-
$[
|
|
231
|
-
$[
|
|
232
|
-
$[
|
|
233
|
-
$[
|
|
234
|
-
$[
|
|
217
|
+
$[22] = getNextValue;
|
|
218
|
+
$[23] = onKeyDown;
|
|
219
|
+
$[24] = placeholder;
|
|
220
|
+
$[25] = unit;
|
|
221
|
+
$[26] = t11;
|
|
235
222
|
} else {
|
|
236
|
-
|
|
223
|
+
t11 = $[26];
|
|
237
224
|
}
|
|
238
|
-
const handleKeyDown =
|
|
239
|
-
let
|
|
240
|
-
if ($[
|
|
241
|
-
|
|
225
|
+
const handleKeyDown = t11;
|
|
226
|
+
let t12;
|
|
227
|
+
if ($[27] !== handleSubmitValue || $[28] !== onKeyUp) {
|
|
228
|
+
t12 = (event_2) => {
|
|
242
229
|
if (onKeyUp) {
|
|
243
230
|
onKeyUp(event_2);
|
|
244
231
|
}
|
|
@@ -246,76 +233,77 @@ function CSSValueInput(t0) {
|
|
|
246
233
|
handleSubmitValue(event_2);
|
|
247
234
|
}
|
|
248
235
|
};
|
|
249
|
-
$[
|
|
250
|
-
$[
|
|
251
|
-
$[
|
|
236
|
+
$[27] = handleSubmitValue;
|
|
237
|
+
$[28] = onKeyUp;
|
|
238
|
+
$[29] = t12;
|
|
252
239
|
} else {
|
|
253
|
-
|
|
240
|
+
t12 = $[29];
|
|
254
241
|
}
|
|
255
|
-
const handleKeyUp =
|
|
256
|
-
const
|
|
257
|
-
let
|
|
258
|
-
if ($[
|
|
259
|
-
|
|
242
|
+
const handleKeyUp = t12;
|
|
243
|
+
const t13 = label ? void 0 : title;
|
|
244
|
+
let t14;
|
|
245
|
+
if ($[30] !== className || $[31] !== disabled) {
|
|
246
|
+
t14 = clsx(ROOT_CLASS_NAME, className, {
|
|
260
247
|
disabled
|
|
261
248
|
});
|
|
262
|
-
$[
|
|
263
|
-
$[
|
|
249
|
+
$[30] = className;
|
|
250
|
+
$[31] = disabled;
|
|
251
|
+
$[32] = t14;
|
|
252
|
+
} else {
|
|
253
|
+
t14 = $[32];
|
|
254
|
+
}
|
|
255
|
+
let t15;
|
|
256
|
+
if ($[33] !== icon) {
|
|
257
|
+
t15 = icon == null ? null : /* @__PURE__ */ jsx("div", { className: `${ROOT_CLASS_NAME}-icon`, children: icon });
|
|
258
|
+
$[33] = icon;
|
|
264
259
|
$[34] = t15;
|
|
265
260
|
} else {
|
|
266
261
|
t15 = $[34];
|
|
267
262
|
}
|
|
268
263
|
let t16;
|
|
269
|
-
if ($[35] !==
|
|
270
|
-
t16 =
|
|
271
|
-
$[35] =
|
|
264
|
+
if ($[35] !== label) {
|
|
265
|
+
t16 = label ? /* @__PURE__ */ jsx("div", { className: `${ROOT_CLASS_NAME}-label`, children: /* @__PURE__ */ jsx("p", { className: `${ROOT_CLASS_NAME}-label-text`, children: label }) }) : null;
|
|
266
|
+
$[35] = label;
|
|
272
267
|
$[36] = t16;
|
|
273
268
|
} else {
|
|
274
269
|
t16 = $[36];
|
|
275
270
|
}
|
|
276
271
|
let t17;
|
|
277
|
-
if ($[37] !==
|
|
278
|
-
t17 =
|
|
279
|
-
$[37] =
|
|
280
|
-
$[38] =
|
|
272
|
+
if ($[37] !== disabled || $[38] !== handleBlur || $[39] !== handleKeyDown || $[40] !== handleKeyUp || $[41] !== name || $[42] !== onChange || $[43] !== onFocus || $[44] !== placeholder || $[45] !== ref || $[46] !== tabIndex || $[47] !== value) {
|
|
273
|
+
t17 = /* @__PURE__ */ jsx("div", { className: `${ROOT_CLASS_NAME}-value`, children: /* @__PURE__ */ jsx(InputText, { disabled, discardOnEscape: true, initialValue: value, name, onBlur: handleBlur, onChange, onFocus, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp, placeholder, ref, selectTextOnFocus: true, tabIndex }) });
|
|
274
|
+
$[37] = disabled;
|
|
275
|
+
$[38] = handleBlur;
|
|
276
|
+
$[39] = handleKeyDown;
|
|
277
|
+
$[40] = handleKeyUp;
|
|
278
|
+
$[41] = name;
|
|
279
|
+
$[42] = onChange;
|
|
280
|
+
$[43] = onFocus;
|
|
281
|
+
$[44] = placeholder;
|
|
282
|
+
$[45] = ref;
|
|
283
|
+
$[46] = tabIndex;
|
|
284
|
+
$[47] = value;
|
|
285
|
+
$[48] = t17;
|
|
281
286
|
} else {
|
|
282
|
-
t17 = $[
|
|
287
|
+
t17 = $[48];
|
|
283
288
|
}
|
|
284
289
|
let t18;
|
|
285
|
-
if ($[
|
|
286
|
-
t18 = /* @__PURE__ */
|
|
287
|
-
|
|
288
|
-
$[40] = handleBlur;
|
|
289
|
-
$[41] = handleKeyDown;
|
|
290
|
-
$[42] = handleKeyUp;
|
|
291
|
-
$[43] = name;
|
|
292
|
-
$[44] = onChange;
|
|
293
|
-
$[45] = onFocus;
|
|
294
|
-
$[46] = placeholder;
|
|
295
|
-
$[47] = submittedValue;
|
|
296
|
-
$[48] = tabIndex;
|
|
297
|
-
$[49] = t18;
|
|
298
|
-
} else {
|
|
299
|
-
t18 = $[49];
|
|
300
|
-
}
|
|
301
|
-
let t19;
|
|
302
|
-
if ($[50] !== t14 || $[51] !== t15 || $[52] !== t16 || $[53] !== t17 || $[54] !== t18 || $[55] !== title) {
|
|
303
|
-
t19 = /* @__PURE__ */ jsxs("label", { "aria-label": t14, className: t15, title, children: [
|
|
290
|
+
if ($[49] !== t13 || $[50] !== t14 || $[51] !== t15 || $[52] !== t16 || $[53] !== t17 || $[54] !== title) {
|
|
291
|
+
t18 = /* @__PURE__ */ jsxs("label", { "aria-label": t13, className: t14, title, children: [
|
|
292
|
+
t15,
|
|
304
293
|
t16,
|
|
305
|
-
t17
|
|
306
|
-
t18
|
|
294
|
+
t17
|
|
307
295
|
] });
|
|
296
|
+
$[49] = t13;
|
|
308
297
|
$[50] = t14;
|
|
309
298
|
$[51] = t15;
|
|
310
299
|
$[52] = t16;
|
|
311
300
|
$[53] = t17;
|
|
312
|
-
$[54] =
|
|
313
|
-
$[55] =
|
|
314
|
-
$[56] = t19;
|
|
301
|
+
$[54] = title;
|
|
302
|
+
$[55] = t18;
|
|
315
303
|
} else {
|
|
316
|
-
|
|
304
|
+
t18 = $[55];
|
|
317
305
|
}
|
|
318
|
-
return
|
|
306
|
+
return t18;
|
|
319
307
|
}
|
|
320
308
|
export {
|
|
321
309
|
CSSValueInput as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CSSValueInput.js","sources":["../src/CSSValueInput.tsx"],"sourcesContent":["import {\n type CSSValueType,\n DEFAULT_CSS_VALUE_TYPE,\n DEFAULT_UNIT_BY_CSS_VALUE_TYPE,\n getCSSValueAsNumber,\n getCSSValueWithUnit,\n getUnitFromCSSValue,\n roundToPrecision,\n} from '@acusti/css-values';\nimport InputText from '@acusti/input-text';\nimport clsx from 'clsx';\nimport {\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n type SyntheticEvent,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\n\nexport type Props = {\n /**\n * Boolean indicating if the user can submit an empty value (i.e. clear\n * the value). Defaults to true.\n */\n allowEmpty?: boolean;\n className?: string;\n cssValueType?: CSSValueType;\n disabled?: boolean;\n /**\n * Function that receives a value and converts it to its numerical equivalent\n * (i.e. '12px' → 12). Defaults to parseFloat().\n */\n getValueAsNumber?: (value: number | string) => number;\n icon?: ReactNode;\n label?: string;\n max?: number;\n min?: number;\n name?: string;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => unknown;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown;\n onFocus?: (event: FocusEvent<HTMLInputElement>) => unknown;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => unknown;\n onKeyUp?: (event: KeyboardEvent<HTMLInputElement>) => unknown;\n /**\n * Custom event handler triggered when the user presses enter/return\n * or blurs the input after making a change. Hitting esc will restore\n * the previous submitted value or original value.\n */\n onSubmitValue: (value: string) => unknown;\n placeholder?: string;\n ref?: Ref<HTMLInputElement>;\n step?: number;\n tabIndex?: number;\n title?: string;\n unit?: string;\n /** Regex or validator function to validate non-numeric values */\n validator?: ((value: string) => boolean) | RegExp;\n value?: string;\n};\n\ntype InputRef = HTMLInputElement | null;\n\nconst ROOT_CLASS_NAME = 'cssvalueinput';\n\nexport default function CSSValueInput({\n allowEmpty = true,\n className,\n cssValueType = DEFAULT_CSS_VALUE_TYPE,\n disabled,\n getValueAsNumber = getCSSValueAsNumber,\n icon,\n label,\n max,\n min,\n name,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onSubmitValue,\n placeholder,\n ref,\n step = 1,\n tabIndex,\n title,\n unit = DEFAULT_UNIT_BY_CSS_VALUE_TYPE[cssValueType],\n validator,\n value: valueFromProps,\n}: Props) {\n const inputRef = useRef<InputRef>(null);\n\n useImperativeHandle<InputRef, InputRef>(ref, () => inputRef.current);\n\n // props.value should be a string; if it’s a number, convert it here\n const value =\n typeof valueFromProps === 'number' && !Number.isNaN(valueFromProps)\n ? `${valueFromProps}`\n : valueFromProps;\n const [submittedValue, setSubmittedValue] = useState(value ?? '');\n\n useEffect(() => {\n setSubmittedValue(value ?? '');\n }, [value]);\n\n const handleSubmitValue = (event: SyntheticEvent<HTMLInputElement>) => {\n const currentValue = event.currentTarget.value;\n // Store last submittedValue (used to reset value on invalid input)\n setSubmittedValue(currentValue);\n onSubmitValue(currentValue);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const input = event.currentTarget;\n inputRef.current = input;\n if (onBlur) onBlur(event);\n\n const currentValue = input.value.trim();\n\n // If allowEmpty and value is empty, skip all validation + normalization\n if (allowEmpty && !currentValue) {\n handleSubmitValue(event);\n return;\n }\n\n const currentValueAsNumber = getValueAsNumber(currentValue);\n const isCurrentValueFinite = Number.isFinite(currentValueAsNumber);\n // Inherit unit from last submitted value unless default is unitless;\n // ensures that submitting a new value with no unit doesn’t add a unit\n const defaultUnit = unit\n ? getUnitFromCSSValue({\n cssValueType,\n defaultUnit: unit,\n value: submittedValue,\n })\n : '';\n\n if (!isCurrentValueFinite) {\n let isValid = false;\n if (validator instanceof RegExp) {\n isValid = validator.test(currentValue);\n } else if (validator) {\n isValid = validator(currentValue);\n }\n\n if (isValid) {\n handleSubmitValue(event);\n } else {\n // If current value isn’t valid, revert to last submitted value\n input.value = submittedValue;\n }\n\n return;\n }\n\n // Normalize value by applying min/max and integer constraints\n let normalizedValueAsNumber = currentValueAsNumber;\n\n if (isCurrentValueFinite) {\n if (min != null && currentValueAsNumber < min) {\n normalizedValueAsNumber = min;\n } else if (max != null && currentValueAsNumber > max) {\n normalizedValueAsNumber = max;\n } else if (cssValueType === 'integer') {\n normalizedValueAsNumber = Math.floor(currentValueAsNumber);\n }\n }\n\n if (normalizedValueAsNumber !== currentValueAsNumber) {\n const currentUnit = getUnitFromCSSValue({\n cssValueType,\n defaultUnit,\n value: currentValue,\n });\n input.value = normalizedValueAsNumber + currentUnit;\n } else {\n input.value = getCSSValueWithUnit({\n cssValueType,\n defaultUnit,\n value: currentValue,\n });\n }\n\n handleSubmitValue(event);\n };\n\n const getNextValue = ({\n currentValue,\n multiplier = 1,\n signum = 1,\n }: {\n currentValue: number | string;\n multiplier?: number;\n signum?: number;\n }) => {\n const modifier = multiplier * step * signum;\n const currentValueAsNumber = getValueAsNumber(currentValue);\n // If currentValue isn’t numeric, don’t try to increment/decrement it\n if (typeof currentValue === 'string' && Number.isNaN(currentValueAsNumber)) {\n return currentValue;\n }\n\n let nextValue = currentValueAsNumber + modifier;\n if (cssValueType === 'integer') {\n nextValue = Math.floor(nextValue);\n } else {\n nextValue = roundToPrecision(nextValue, 5);\n }\n\n if (typeof max === 'number' && Number.isFinite(max)) {\n nextValue = Math.min(max, nextValue);\n }\n\n if (typeof min === 'number' && Number.isFinite(min)) {\n nextValue = Math.max(min, nextValue);\n }\n\n const nextUnit = getUnitFromCSSValue({\n cssValueType,\n defaultUnit: unit,\n value: currentValue,\n });\n return `${nextValue}${nextUnit}`;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const input = event.currentTarget;\n inputRef.current = input;\n if (onKeyDown) onKeyDown(event);\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return;\n\n const currentValue = input.value ?? placeholder ?? `0${unit}`;\n const nextValue = getNextValue({\n currentValue,\n multiplier: event.shiftKey ? 10 : 1,\n signum: event.key === 'ArrowUp' ? 1 : -1,\n });\n\n if (nextValue === currentValue) return;\n\n event.stopPropagation();\n event.preventDefault();\n\n input.value = nextValue;\n };\n\n const handleKeyUp = (event: KeyboardEvent<HTMLInputElement>) => {\n if (onKeyUp) onKeyUp(event);\n // If this is the key up from ↑ or ↓ keys, time to handleSubmitValue\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n handleSubmitValue(event);\n }\n };\n\n return (\n <label\n aria-label={label ? undefined : title}\n className={clsx(ROOT_CLASS_NAME, className, { disabled })}\n title={title}\n >\n {icon == null ? null : (\n <div className={`${ROOT_CLASS_NAME}-icon`}>{icon}</div>\n )}\n {label ? (\n <div className={`${ROOT_CLASS_NAME}-label`}>\n <p className={`${ROOT_CLASS_NAME}-label-text`}>{label}</p>\n </div>\n ) : null}\n <div className={`${ROOT_CLASS_NAME}-value`}>\n <InputText\n disabled={disabled}\n discardOnEscape\n initialValue={submittedValue}\n name={name}\n onBlur={handleBlur}\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n placeholder={placeholder}\n ref={inputRef}\n selectTextOnFocus\n tabIndex={tabIndex}\n />\n </div>\n </label>\n );\n}\n"],"names":["ROOT_CLASS_NAME","CSSValueInput","t0","$","_c","allowEmpty","t1","className","cssValueType","t2","disabled","getValueAsNumber","t3","icon","label","max","min","name","onBlur","onChange","onFocus","onKeyDown","onKeyUp","onSubmitValue","placeholder","ref","step","t4","tabIndex","title","unit","t5","validator","value","valueFromProps","undefined","DEFAULT_CSS_VALUE_TYPE","getCSSValueAsNumber","DEFAULT_UNIT_BY_CSS_VALUE_TYPE","inputRef","useRef","t6","Symbol","for","current","useImperativeHandle","Number","isNaN","submittedValue","setSubmittedValue","useState","t7","t8","useEffect","t9","event","currentValue","currentTarget","handleSubmitValue","t10","event_0","input","currentValue_0","trim","currentValueAsNumber","isCurrentValueFinite","isFinite","defaultUnit","getUnitFromCSSValue","isValid","RegExp","test","normalizedValueAsNumber","Math","floor","currentUnit","getCSSValueWithUnit","handleBlur","t11","t12","currentValue_1","multiplier","t13","signum","t14","modifier","currentValueAsNumber_0","nextValue","roundToPrecision","nextUnit","getNextValue","event_1","input_0","key","currentValue_2","nextValue_0","shiftKey","stopPropagation","preventDefault","handleKeyDown","event_2","handleKeyUp","t15","clsx","t16","t17","t18","t19"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CSSValueInput.js","sources":["../src/CSSValueInput.tsx"],"sourcesContent":["import {\n type CSSValueType,\n DEFAULT_CSS_VALUE_TYPE,\n DEFAULT_UNIT_BY_CSS_VALUE_TYPE,\n getCSSValueAsNumber,\n getCSSValueWithUnit,\n getUnitFromCSSValue,\n roundToPrecision,\n} from '@acusti/css-values';\nimport InputText from '@acusti/input-text';\nimport clsx from 'clsx';\nimport {\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n type SyntheticEvent,\n useEffect,\n useRef,\n} from 'react';\n\nexport type Props = {\n /**\n * Boolean indicating if the user can submit an empty value (i.e. clear\n * the value). Defaults to true.\n */\n allowEmpty?: boolean;\n className?: string;\n cssValueType?: CSSValueType;\n disabled?: boolean;\n /**\n * Function that receives a value and converts it to its numerical equivalent\n * (i.e. '12px' → 12). Defaults to parseFloat().\n */\n getValueAsNumber?: (value: number | string) => number;\n icon?: ReactNode;\n label?: string;\n max?: number;\n min?: number;\n name?: string;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => unknown;\n onChange?: (event: ChangeEvent<HTMLInputElement>) => unknown;\n onFocus?: (event: FocusEvent<HTMLInputElement>) => unknown;\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => unknown;\n onKeyUp?: (event: KeyboardEvent<HTMLInputElement>) => unknown;\n /**\n * Custom event handler triggered when the user presses enter/return\n * or blurs the input after making a change. Hitting esc will restore\n * the previous submitted value or original value.\n */\n onSubmitValue: (value: string) => unknown;\n placeholder?: string;\n ref?: Ref<HTMLInputElement>;\n step?: number;\n tabIndex?: number;\n title?: string;\n unit?: string;\n /** Regex or validator function to validate non-numeric values */\n validator?: ((value: string) => boolean) | RegExp;\n value?: string;\n};\n\nconst ROOT_CLASS_NAME = 'cssvalueinput';\n\nexport default function CSSValueInput({\n allowEmpty = true,\n className,\n cssValueType = DEFAULT_CSS_VALUE_TYPE,\n disabled,\n getValueAsNumber = getCSSValueAsNumber,\n icon,\n label,\n max,\n min,\n name,\n onBlur,\n onChange,\n onFocus,\n onKeyDown,\n onKeyUp,\n onSubmitValue,\n placeholder,\n ref,\n step = 1,\n tabIndex,\n title,\n unit = DEFAULT_UNIT_BY_CSS_VALUE_TYPE[cssValueType],\n validator,\n value: valueFromProps,\n}: Props) {\n // props.value should be a string; if it’s a number, convert it here\n const value =\n typeof valueFromProps === 'number' && Number.isFinite(valueFromProps)\n ? `${valueFromProps}`\n : valueFromProps;\n const submittedValueRef = useRef(value ?? '');\n\n useEffect(() => {\n submittedValueRef.current = value ?? '';\n }, [value]);\n\n const handleSubmitValue = (event: SyntheticEvent<HTMLInputElement>) => {\n // Store last submittedValue (used to reset value on invalid input)\n submittedValueRef.current = event.currentTarget.value;\n onSubmitValue(event.currentTarget.value);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n const input = event.currentTarget;\n if (onBlur) onBlur(event);\n\n const currentValue = input.value.trim();\n\n // If allowEmpty and value is empty, skip all validation + normalization\n if (allowEmpty && !currentValue) {\n handleSubmitValue(event);\n return;\n }\n\n const currentValueAsNumber = getValueAsNumber(currentValue);\n const isCurrentValueFinite = Number.isFinite(currentValueAsNumber);\n // Inherit unit from last submitted value unless default is unitless;\n // ensures that submitting a new value with no unit doesn’t add a unit\n const defaultUnit = unit\n ? getUnitFromCSSValue({\n cssValueType,\n defaultUnit: unit,\n value: submittedValueRef.current,\n })\n : '';\n\n if (!isCurrentValueFinite) {\n let isValid = false;\n if (validator instanceof RegExp) {\n isValid = validator.test(currentValue);\n } else if (validator) {\n isValid = validator(currentValue);\n }\n\n if (isValid) {\n handleSubmitValue(event);\n } else {\n // If current value isn’t valid, revert to last submitted value\n input.value = submittedValueRef.current;\n }\n\n return;\n }\n\n // Normalize value by applying min/max and integer constraints\n let normalizedValueAsNumber = currentValueAsNumber;\n\n if (isCurrentValueFinite) {\n if (min != null && currentValueAsNumber < min) {\n normalizedValueAsNumber = min;\n } else if (max != null && currentValueAsNumber > max) {\n normalizedValueAsNumber = max;\n } else if (cssValueType === 'integer') {\n normalizedValueAsNumber = Math.floor(currentValueAsNumber);\n }\n }\n\n if (normalizedValueAsNumber !== currentValueAsNumber) {\n const currentUnit = getUnitFromCSSValue({\n cssValueType,\n defaultUnit,\n value: currentValue,\n });\n input.value = normalizedValueAsNumber + currentUnit;\n } else {\n input.value = getCSSValueWithUnit({\n cssValueType,\n defaultUnit,\n value: currentValue,\n });\n }\n\n handleSubmitValue(event);\n };\n\n const getNextValue = ({\n currentValue,\n multiplier = 1,\n signum = 1,\n }: {\n currentValue: number | string;\n multiplier?: number;\n signum?: number;\n }) => {\n const modifier = multiplier * step * signum;\n const currentValueAsNumber = getValueAsNumber(currentValue);\n // If currentValue isn’t numeric, don’t try to increment/decrement it\n if (typeof currentValue === 'string' && Number.isNaN(currentValueAsNumber)) {\n return currentValue;\n }\n\n let nextValue = currentValueAsNumber + modifier;\n if (cssValueType === 'integer') {\n nextValue = Math.floor(nextValue);\n } else {\n nextValue = roundToPrecision(nextValue, 5);\n }\n\n if (typeof max === 'number' && Number.isFinite(max)) {\n nextValue = Math.min(max, nextValue);\n }\n\n if (typeof min === 'number' && Number.isFinite(min)) {\n nextValue = Math.max(min, nextValue);\n }\n\n const nextUnit = getUnitFromCSSValue({\n cssValueType,\n defaultUnit: unit,\n value: currentValue,\n });\n return `${nextValue}${nextUnit}`;\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n const input = event.currentTarget;\n if (onKeyDown) onKeyDown(event);\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') return;\n\n const currentValue = input.value ?? placeholder ?? `0${unit}`;\n const nextValue = getNextValue({\n currentValue,\n multiplier: event.shiftKey ? 10 : 1,\n signum: event.key === 'ArrowUp' ? 1 : -1,\n });\n\n if (nextValue === currentValue) return;\n\n event.stopPropagation();\n event.preventDefault();\n\n input.value = nextValue;\n };\n\n const handleKeyUp = (event: KeyboardEvent<HTMLInputElement>) => {\n if (onKeyUp) onKeyUp(event);\n // If this is the key up from ↑ or ↓ keys, time to handleSubmitValue\n if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n handleSubmitValue(event);\n }\n };\n\n return (\n <label\n aria-label={label ? undefined : title}\n className={clsx(ROOT_CLASS_NAME, className, { disabled })}\n title={title}\n >\n {icon == null ? null : (\n <div className={`${ROOT_CLASS_NAME}-icon`}>{icon}</div>\n )}\n {label ? (\n <div className={`${ROOT_CLASS_NAME}-label`}>\n <p className={`${ROOT_CLASS_NAME}-label-text`}>{label}</p>\n </div>\n ) : null}\n <div className={`${ROOT_CLASS_NAME}-value`}>\n <InputText\n disabled={disabled}\n discardOnEscape\n initialValue={value}\n name={name}\n onBlur={handleBlur}\n onChange={onChange}\n onFocus={onFocus}\n onKeyDown={handleKeyDown}\n onKeyUp={handleKeyUp}\n placeholder={placeholder}\n ref={ref}\n selectTextOnFocus\n tabIndex={tabIndex}\n />\n </div>\n </label>\n );\n}\n"],"names":["ROOT_CLASS_NAME","CSSValueInput","t0","$","_c","allowEmpty","t1","className","cssValueType","t2","disabled","getValueAsNumber","t3","icon","label","max","min","name","onBlur","onChange","onFocus","onKeyDown","onKeyUp","onSubmitValue","placeholder","ref","step","t4","tabIndex","title","unit","t5","validator","value","valueFromProps","undefined","DEFAULT_CSS_VALUE_TYPE","getCSSValueAsNumber","DEFAULT_UNIT_BY_CSS_VALUE_TYPE","Number","isFinite","submittedValueRef","useRef","t6","t7","current","useEffect","t8","event","currentTarget","handleSubmitValue","t9","event_0","input","currentValue","trim","currentValueAsNumber","isCurrentValueFinite","defaultUnit","getUnitFromCSSValue","isValid","RegExp","test","normalizedValueAsNumber","Math","floor","currentUnit","getCSSValueWithUnit","handleBlur","t10","t11","currentValue_0","multiplier","t12","signum","t13","modifier","currentValueAsNumber_0","isNaN","nextValue","roundToPrecision","nextUnit","getNextValue","event_1","input_0","key","currentValue_1","nextValue_0","shiftKey","stopPropagation","preventDefault","handleKeyDown","event_2","handleKeyUp","t14","clsx","t15","t16","t17","t18"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acusti/css-value-input",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"exports": "./dist/CSSValueInput.js",
|
|
@@ -41,20 +41,20 @@
|
|
|
41
41
|
"@testing-library/dom": "^10.4.1",
|
|
42
42
|
"@testing-library/react": "^16.3.0",
|
|
43
43
|
"@testing-library/user-event": "^14.6.1",
|
|
44
|
-
"@types/react": "^19.2.
|
|
44
|
+
"@types/react": "^19.2.2",
|
|
45
45
|
"@vitejs/plugin-react": "^5.0.4",
|
|
46
46
|
"babel-plugin-react-compiler": "^1",
|
|
47
|
-
"happy-dom": "^20.0.
|
|
47
|
+
"happy-dom": "^20.0.10",
|
|
48
48
|
"react": "^19.2.0",
|
|
49
49
|
"react-dom": "^19.2.0",
|
|
50
50
|
"typescript": "5.9.2",
|
|
51
51
|
"unplugin-dts": "^1.0.0-beta.6",
|
|
52
|
-
"vite": "^7.1.
|
|
52
|
+
"vite": "^7.1.10",
|
|
53
53
|
"vitest": "^3.2.4"
|
|
54
54
|
},
|
|
55
55
|
"dependencies": {
|
|
56
56
|
"@acusti/css-values": "^1.2.0",
|
|
57
|
-
"@acusti/input-text": "^2.2.
|
|
57
|
+
"@acusti/input-text": "^2.2.2",
|
|
58
58
|
"clsx": "^2"
|
|
59
59
|
},
|
|
60
60
|
"peerDependencies": {
|