@jobber/components 6.103.1 → 6.103.2-JOB-140609-fafe469.18
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/Autocomplete/Autocomplete.types.d.ts +12 -1
- package/dist/Autocomplete/index.cjs +0 -12
- package/dist/Autocomplete/index.mjs +0 -12
- package/dist/Checkbox/Checkbox.types.d.ts +2 -9
- package/dist/Checkbox/index.cjs +3 -2
- package/dist/Checkbox/index.mjs +3 -2
- package/dist/Chips/InternalChipDismissible/hooks/index.cjs +2 -2
- package/dist/Chips/InternalChipDismissible/hooks/index.mjs +2 -2
- package/dist/Chips/InternalChipDismissible/index.cjs +2 -2
- package/dist/Chips/InternalChipDismissible/index.mjs +2 -2
- package/dist/Chips/index.cjs +2 -2
- package/dist/Chips/index.mjs +2 -2
- package/dist/DataList/components/DataListSearch/index.cjs +1 -12
- package/dist/DataList/components/DataListSearch/index.mjs +1 -12
- package/dist/DataList/index.cjs +0 -8
- package/dist/DataList/index.mjs +0 -8
- package/dist/DataTable/index.cjs +2 -2
- package/dist/DataTable/index.mjs +2 -2
- package/dist/DatePicker/index.cjs +2 -2
- package/dist/DatePicker/index.mjs +2 -2
- package/dist/FormField/FormFieldTypes.d.ts +195 -0
- package/dist/FormField-cjs.js +0 -1
- package/dist/FormField-es.js +1 -1
- package/dist/InputDate/index.cjs +8 -4
- package/dist/InputDate/index.mjs +8 -4
- package/dist/InputDate/useInputDateActivatorActions.d.ts +2 -2
- package/dist/InputEmail/InputEmail.types.d.ts +28 -21
- package/dist/InputEmail/hooks/useInputEmailActions.d.ts +1 -1
- package/dist/InputEmail/index.cjs +10 -45
- package/dist/InputEmail/index.mjs +10 -45
- package/dist/InputNumber/InputNumber.rebuilt.types.d.ts +30 -1
- package/dist/InputNumber/index.cjs +10 -2
- package/dist/InputNumber/index.mjs +10 -2
- package/dist/InputPhoneNumber/InputPhoneNumber.types.d.ts +25 -24
- package/dist/InputPhoneNumber/hooks/useInputPhoneActions.d.ts +1 -1
- package/dist/InputPhoneNumber/index.cjs +24 -36
- package/dist/InputPhoneNumber/index.mjs +24 -36
- package/dist/InputText/InputText.d.ts +2 -2
- package/dist/InputText/InputText.types.d.ts +39 -24
- package/dist/InputText/index.cjs +26 -55
- package/dist/InputText/index.mjs +27 -56
- package/dist/InputText/useInputTextActions.d.ts +1 -1
- package/dist/InputTime/InputTime.rebuilt.d.ts +1 -1
- package/dist/InputTime/InputTime.types.d.ts +29 -1
- package/dist/InputTime/index.cjs +32 -25
- package/dist/InputTime/index.d.ts +1 -1
- package/dist/InputTime/index.mjs +34 -27
- package/dist/List/index.cjs +2 -2
- package/dist/List/index.mjs +2 -2
- package/dist/RecurringSelect/index.cjs +2 -2
- package/dist/RecurringSelect/index.mjs +2 -2
- package/dist/Select/Select.rebuilt.d.ts +1 -1
- package/dist/Select/Select.types.d.ts +18 -1
- package/dist/Select/hooks/useSelectActions.d.ts +5 -5
- package/dist/Select/index.cjs +27 -41
- package/dist/Select/index.d.ts +7 -5
- package/dist/Select/index.mjs +29 -43
- package/dist/_baseEach-cjs.js +12 -12
- package/dist/_baseEach-es.js +1 -1
- package/dist/_baseFlatten-cjs.js +2 -2
- package/dist/_baseFlatten-es.js +1 -1
- package/dist/{_baseGet-cjs.js → _getAllKeys-cjs.js} +181 -181
- package/dist/{_baseGet-es.js → _getAllKeys-es.js} +182 -182
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/omit-cjs.js +14 -14
- package/dist/omit-es.js +1 -1
- package/dist/useScrollToActive-cjs.js +3 -3
- package/dist/useScrollToActive-es.js +1 -1
- package/package.json +2 -2
- package/dist/InputEmail/hooks/useInputEmailFormField.d.ts +0 -32
- package/dist/InputPhoneNumber/hooks/useInputPhoneFormField.d.ts +0 -71
- package/dist/InputText/useInputTextFormField.d.ts +0 -352
- package/dist/Select/hooks/useSelectFormField.d.ts +0 -34
package/dist/InputDate/index.mjs
CHANGED
|
@@ -11,12 +11,12 @@ import '../Button-es.js';
|
|
|
11
11
|
import { D as DatePicker } from '../DatePicker-es.js';
|
|
12
12
|
import { InputText } from '../InputText/index.mjs';
|
|
13
13
|
import '../_commonjsHelpers-es.js';
|
|
14
|
-
import '../
|
|
14
|
+
import '../_getAllKeys-es.js';
|
|
15
15
|
import '../isTypedArray-es.js';
|
|
16
16
|
import '../isObjectLike-es.js';
|
|
17
|
+
import '../isSymbol-es.js';
|
|
17
18
|
import '../identity-es.js';
|
|
18
19
|
import '../_getTag-es.js';
|
|
19
|
-
import '../isSymbol-es.js';
|
|
20
20
|
import '../keysIn-es.js';
|
|
21
21
|
import '../_baseAssignValue-es.js';
|
|
22
22
|
import '../_baseFlatten-es.js';
|
|
@@ -87,12 +87,16 @@ function useInputDateActivatorActions({ onChange, onBlur, onFocus, }) {
|
|
|
87
87
|
onChange === null || onChange === void 0 ? void 0 : onChange(event);
|
|
88
88
|
}
|
|
89
89
|
function handleFocus(event) {
|
|
90
|
-
|
|
90
|
+
if (event) {
|
|
91
|
+
onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
|
|
92
|
+
}
|
|
91
93
|
setIsFocused(true);
|
|
92
94
|
}
|
|
93
95
|
function handleBlur(event) {
|
|
94
96
|
setIsFocused(false);
|
|
95
|
-
|
|
97
|
+
if (event) {
|
|
98
|
+
onBlur === null || onBlur === void 0 ? void 0 : onBlur(event);
|
|
99
|
+
}
|
|
96
100
|
}
|
|
97
101
|
return {
|
|
98
102
|
handleBlur,
|
|
@@ -9,8 +9,8 @@ export interface useInputDateActivatorActionsProps extends Pick<InputDateRebuilt
|
|
|
9
9
|
* DO not repeat this pattern. We are doing this as a proof of concept relating to the refactoring of Form inputs to see what can be removed.
|
|
10
10
|
*/
|
|
11
11
|
export declare function useInputDateActivatorActions({ onChange, onBlur, onFocus, }: useInputDateActivatorActionsProps): {
|
|
12
|
-
handleBlur: (event
|
|
12
|
+
handleBlur: (event?: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
13
13
|
handleChange: (_: unknown, event?: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
14
|
-
handleFocus: (event
|
|
14
|
+
handleFocus: (event?: FocusEvent<HTMLInputElement | HTMLTextAreaElement>) => void;
|
|
15
15
|
isFocused: boolean;
|
|
16
16
|
};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { CommonFormFieldProps, FormFieldProps } from "../FormField";
|
|
1
|
+
import type { CommonFormFieldProps, FocusEvents, FormFieldProps, HTMLInputBaseProps, KeyboardEvents, RebuiltInputCommonProps } from "../FormField";
|
|
3
2
|
export type InputEmailLegacyProps = CommonFormFieldProps & Pick<FormFieldProps, "maxLength" | "readonly" | "validations" | "defaultValue">;
|
|
4
3
|
export declare const validationMessage = "Please enter a valid email";
|
|
5
4
|
export type InputEmailVersion = 1 | 2 | undefined;
|
|
@@ -7,27 +6,35 @@ export type InputEmailVersion = 1 | 2 | undefined;
|
|
|
7
6
|
* Experimental version 2 of the InputEmail component.
|
|
8
7
|
* Do not use unless you have talked with Atlantis first.
|
|
9
8
|
*/
|
|
10
|
-
export interface InputEmailRebuiltProps extends
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
readonly
|
|
15
|
-
readonly loading?: boolean;
|
|
16
|
-
readonly onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
17
|
-
readonly children?: React.ReactNode;
|
|
18
|
-
readonly clearable?: Clearable;
|
|
9
|
+
export interface InputEmailRebuiltProps extends HTMLInputBaseProps, FocusEvents<HTMLInputElement>, KeyboardEvents<HTMLInputElement>, RebuiltInputCommonProps {
|
|
10
|
+
/**
|
|
11
|
+
* The current value of the input.
|
|
12
|
+
*/
|
|
13
|
+
readonly value?: string;
|
|
19
14
|
/**
|
|
20
|
-
*
|
|
15
|
+
* Custom onChange handler that provides the new value as the first argument.
|
|
21
16
|
*/
|
|
22
|
-
readonly version: 2;
|
|
23
17
|
readonly onChange?: (newValue: string, event?: React.ChangeEvent<HTMLInputElement>) => void;
|
|
18
|
+
/**
|
|
19
|
+
* A callback to handle "Enter" keypress. This will only run
|
|
20
|
+
* if Enter is the only key. Will not run if Shift or Control
|
|
21
|
+
* are being held.
|
|
22
|
+
*/
|
|
24
23
|
readonly onEnter?: FormFieldProps["onEnter"];
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
readonly
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
readonly
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Use `id` instead. This prop will be removed in a future version.
|
|
26
|
+
*/
|
|
27
|
+
readonly identifier?: string;
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated Use `autoComplete` with string values instead. This prop will be removed in a future version.
|
|
30
|
+
*/
|
|
31
|
+
readonly autocomplete?: never;
|
|
32
|
+
/**
|
|
33
|
+
* @deprecated Use `aria-label` instead. This prop will be removed in a future version.
|
|
34
|
+
*/
|
|
35
|
+
readonly ariaLabel?: never;
|
|
36
|
+
/**
|
|
37
|
+
* @deprecated Use `readOnly` instead. This prop will be removed in a future version.
|
|
38
|
+
*/
|
|
39
|
+
readonly readonly?: never;
|
|
33
40
|
}
|
|
@@ -8,5 +8,5 @@ export declare function useInputEmailActions({ onChange, inputRef, onEnter, onFo
|
|
|
8
8
|
handleChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
9
9
|
handleKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
|
|
10
10
|
handleFocus: (event: FocusEvent<HTMLInputElement>) => void;
|
|
11
|
-
handleBlur: (event
|
|
11
|
+
handleBlur: (event: FocusEvent<HTMLInputElement>) => void;
|
|
12
12
|
};
|
|
@@ -3,13 +3,12 @@
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var FormField = require('../FormField-cjs.js');
|
|
5
5
|
require('classnames');
|
|
6
|
-
|
|
6
|
+
require('../tslib.es6-cjs.js');
|
|
7
7
|
require('react-hook-form');
|
|
8
8
|
require('@jobber/hooks');
|
|
9
9
|
require('framer-motion');
|
|
10
10
|
require('@jobber/design');
|
|
11
11
|
require('../Button-cjs.js');
|
|
12
|
-
var omit = require('../omit-cjs.js');
|
|
13
12
|
require('../Icon-cjs.js');
|
|
14
13
|
require('../Text-cjs.js');
|
|
15
14
|
require('../Typography-cjs.js');
|
|
@@ -17,17 +16,6 @@ require('../useFormFieldFocus-cjs.js');
|
|
|
17
16
|
require('../InputValidation-cjs.js');
|
|
18
17
|
require('../Spinner-cjs.js');
|
|
19
18
|
require('react-router-dom');
|
|
20
|
-
require('../_commonjsHelpers-cjs.js');
|
|
21
|
-
require('../_baseGet-cjs.js');
|
|
22
|
-
require('../isTypedArray-cjs.js');
|
|
23
|
-
require('../isObjectLike-cjs.js');
|
|
24
|
-
require('../identity-cjs.js');
|
|
25
|
-
require('../_getTag-cjs.js');
|
|
26
|
-
require('../isSymbol-cjs.js');
|
|
27
|
-
require('../keysIn-cjs.js');
|
|
28
|
-
require('../_baseAssignValue-cjs.js');
|
|
29
|
-
require('../_baseFlatten-cjs.js');
|
|
30
|
-
require('../_setToString-cjs.js');
|
|
31
19
|
|
|
32
20
|
const validationMessage = "Please enter a valid email";
|
|
33
21
|
|
|
@@ -49,7 +37,7 @@ function InputEmail$1(props) {
|
|
|
49
37
|
function useInputEmailActions({ onChange, inputRef, onEnter, onFocus, onBlur, onKeyDown, }) {
|
|
50
38
|
function handleClear() {
|
|
51
39
|
var _a;
|
|
52
|
-
|
|
40
|
+
// Don't call blur handler when programmatically clearing
|
|
53
41
|
onChange === null || onChange === void 0 ? void 0 : onChange("");
|
|
54
42
|
(_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
55
43
|
}
|
|
@@ -83,19 +71,10 @@ function useInputEmailActions({ onChange, inputRef, onEnter, onFocus, onBlur, on
|
|
|
83
71
|
};
|
|
84
72
|
}
|
|
85
73
|
|
|
86
|
-
function useInputEmailFormField(_a) {
|
|
87
|
-
var { id, name, disabled, autofocus, description, inline, value, handleChange, handleBlur, handleFocus, handleKeyDown, error } = _a, rest = tslib_es6.__rest(_a, ["id", "name", "disabled", "autofocus", "description", "inline", "value", "handleChange", "handleBlur", "handleFocus", "handleKeyDown", "error"]);
|
|
88
|
-
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
89
|
-
const fieldProps = Object.assign(Object.assign(Object.assign({}, rest), { id,
|
|
90
|
-
name,
|
|
91
|
-
disabled, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, value, invalid: error || rest.invalid ? "true" : undefined }), (description &&
|
|
92
|
-
!inline && { "aria-describedby": descriptionIdentifier }));
|
|
93
|
-
return { fieldProps, descriptionIdentifier };
|
|
94
|
-
}
|
|
95
|
-
|
|
96
74
|
const InputEmailRebuilt = React.forwardRef(function InputEmailInternal(props, ref) {
|
|
97
75
|
var _a, _b, _c;
|
|
98
|
-
const
|
|
76
|
+
const generatedId = React.useId();
|
|
77
|
+
const id = props.identifier || props.id || generatedId;
|
|
99
78
|
const inputRef = (_a = ref) !== null && _a !== void 0 ? _a : React.useRef(null);
|
|
100
79
|
const wrapperRef = React.useRef(null);
|
|
101
80
|
const { inputStyle } = FormField.useFormFieldWrapperStyles({
|
|
@@ -106,7 +85,7 @@ const InputEmailRebuilt = React.forwardRef(function InputEmailInternal(props, re
|
|
|
106
85
|
value: props.value,
|
|
107
86
|
invalid: props.invalid,
|
|
108
87
|
error: props.error,
|
|
109
|
-
maxLength:
|
|
88
|
+
maxLength: undefined, // v2: maxLength is for HTML validation only, not for width styling
|
|
110
89
|
disabled: props.disabled,
|
|
111
90
|
placeholder: props.placeholder,
|
|
112
91
|
});
|
|
@@ -122,25 +101,11 @@ const InputEmailRebuilt = React.forwardRef(function InputEmailInternal(props, re
|
|
|
122
101
|
onEnter: props.onEnter,
|
|
123
102
|
inputRef,
|
|
124
103
|
});
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"onFocus",
|
|
130
|
-
"onEnter",
|
|
131
|
-
"size",
|
|
132
|
-
"prefix",
|
|
133
|
-
"suffix",
|
|
134
|
-
"version",
|
|
135
|
-
]);
|
|
136
|
-
const { fieldProps, descriptionIdentifier } = useInputEmailFormField(Object.assign(Object.assign({}, inputProps), { id,
|
|
137
|
-
name,
|
|
138
|
-
handleChange,
|
|
139
|
-
handleBlur,
|
|
140
|
-
handleFocus,
|
|
141
|
-
handleKeyDown }));
|
|
142
|
-
return (React.createElement(FormField.FormFieldWrapper, { error: props.error || "", invalid: props.invalid, identifier: props.identifier || id, descriptionIdentifier: descriptionIdentifier, size: props.size, inline: props.inline, align: props.align, prefix: props.prefix, suffix: props.suffix, description: props.description, clearable: (_b = props.clearable) !== null && _b !== void 0 ? _b : "never", onClear: handleClear, wrapperRef: wrapperRef, maxLength: props.maxLength, disabled: props.disabled, type: "email", value: props.value, placeholder: props.placeholder, autofocus: props.autoFocus, name: name },
|
|
143
|
-
React.createElement("input", Object.assign({}, fieldProps, { ref: inputRef, type: "email", className: inputStyle, value: props.value, "data-testid": "ATL-InputEmail-input" })),
|
|
104
|
+
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
105
|
+
const hasDescription = props.description && !props.inline;
|
|
106
|
+
const isInvalid = Boolean(props["aria-invalid"] || props.error || props.invalid);
|
|
107
|
+
return (React.createElement(FormField.FormFieldWrapper, { error: props.error || "", invalid: props.invalid, identifier: id, descriptionIdentifier: descriptionIdentifier, size: props.size, inline: props.inline, align: props.align, prefix: props.prefix, suffix: props.suffix, description: props.description, clearable: (_b = props.clearable) !== null && _b !== void 0 ? _b : "never", onClear: handleClear, wrapperRef: wrapperRef, maxLength: props.maxLength, disabled: props.disabled, type: "email", value: props.value, placeholder: props.placeholder, autofocus: props.autoFocus, name: name },
|
|
108
|
+
React.createElement("input", { id: id, name: name, type: "email", ref: inputRef, className: inputStyle, value: props.value, disabled: props.disabled, readOnly: props.readOnly, required: props.required, autoFocus: props.autoFocus, autoComplete: props.autoComplete, maxLength: props.maxLength, minLength: props.minLength, pattern: props.pattern, inputMode: props.inputMode, tabIndex: props.tabIndex, role: props.role, "aria-label": props["aria-label"], "aria-describedby": hasDescription ? descriptionIdentifier : props["aria-describedby"], "aria-invalid": isInvalid ? true : undefined, "aria-controls": props["aria-controls"], "aria-expanded": props["aria-expanded"], "aria-activedescendant": props["aria-activedescendant"], "aria-autocomplete": props["aria-autocomplete"], "aria-required": props["aria-required"], onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, onKeyUp: props.onKeyUp, "data-testid": "ATL-InputEmail-input" }),
|
|
144
109
|
React.createElement(FormField.FormFieldPostFix, { variation: "spinner", visible: (_c = props.loading) !== null && _c !== void 0 ? _c : false }),
|
|
145
110
|
props.children));
|
|
146
111
|
});
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import React__default, { forwardRef, useId, useRef } from 'react';
|
|
2
2
|
import { k as FormField, j as useFormFieldWrapperStyles, b as useAtlantisFormFieldName, f as FormFieldWrapper, l as FormFieldPostFix } from '../FormField-es.js';
|
|
3
3
|
import 'classnames';
|
|
4
|
-
import
|
|
4
|
+
import '../tslib.es6-es.js';
|
|
5
5
|
import 'react-hook-form';
|
|
6
6
|
import '@jobber/hooks';
|
|
7
7
|
import 'framer-motion';
|
|
8
8
|
import '@jobber/design';
|
|
9
9
|
import '../Button-es.js';
|
|
10
|
-
import { o as omit } from '../omit-es.js';
|
|
11
10
|
import '../Icon-es.js';
|
|
12
11
|
import '../Text-es.js';
|
|
13
12
|
import '../Typography-es.js';
|
|
@@ -15,17 +14,6 @@ import '../useFormFieldFocus-es.js';
|
|
|
15
14
|
import '../InputValidation-es.js';
|
|
16
15
|
import '../Spinner-es.js';
|
|
17
16
|
import 'react-router-dom';
|
|
18
|
-
import '../_commonjsHelpers-es.js';
|
|
19
|
-
import '../_baseGet-es.js';
|
|
20
|
-
import '../isTypedArray-es.js';
|
|
21
|
-
import '../isObjectLike-es.js';
|
|
22
|
-
import '../identity-es.js';
|
|
23
|
-
import '../_getTag-es.js';
|
|
24
|
-
import '../isSymbol-es.js';
|
|
25
|
-
import '../keysIn-es.js';
|
|
26
|
-
import '../_baseAssignValue-es.js';
|
|
27
|
-
import '../_baseFlatten-es.js';
|
|
28
|
-
import '../_setToString-es.js';
|
|
29
17
|
|
|
30
18
|
const validationMessage = "Please enter a valid email";
|
|
31
19
|
|
|
@@ -47,7 +35,7 @@ function InputEmail$1(props) {
|
|
|
47
35
|
function useInputEmailActions({ onChange, inputRef, onEnter, onFocus, onBlur, onKeyDown, }) {
|
|
48
36
|
function handleClear() {
|
|
49
37
|
var _a;
|
|
50
|
-
|
|
38
|
+
// Don't call blur handler when programmatically clearing
|
|
51
39
|
onChange === null || onChange === void 0 ? void 0 : onChange("");
|
|
52
40
|
(_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
53
41
|
}
|
|
@@ -81,19 +69,10 @@ function useInputEmailActions({ onChange, inputRef, onEnter, onFocus, onBlur, on
|
|
|
81
69
|
};
|
|
82
70
|
}
|
|
83
71
|
|
|
84
|
-
function useInputEmailFormField(_a) {
|
|
85
|
-
var { id, name, disabled, autofocus, description, inline, value, handleChange, handleBlur, handleFocus, handleKeyDown, error } = _a, rest = __rest(_a, ["id", "name", "disabled", "autofocus", "description", "inline", "value", "handleChange", "handleBlur", "handleFocus", "handleKeyDown", "error"]);
|
|
86
|
-
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
87
|
-
const fieldProps = Object.assign(Object.assign(Object.assign({}, rest), { id,
|
|
88
|
-
name,
|
|
89
|
-
disabled, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, value, invalid: error || rest.invalid ? "true" : undefined }), (description &&
|
|
90
|
-
!inline && { "aria-describedby": descriptionIdentifier }));
|
|
91
|
-
return { fieldProps, descriptionIdentifier };
|
|
92
|
-
}
|
|
93
|
-
|
|
94
72
|
const InputEmailRebuilt = forwardRef(function InputEmailInternal(props, ref) {
|
|
95
73
|
var _a, _b, _c;
|
|
96
|
-
const
|
|
74
|
+
const generatedId = useId();
|
|
75
|
+
const id = props.identifier || props.id || generatedId;
|
|
97
76
|
const inputRef = (_a = ref) !== null && _a !== void 0 ? _a : useRef(null);
|
|
98
77
|
const wrapperRef = useRef(null);
|
|
99
78
|
const { inputStyle } = useFormFieldWrapperStyles({
|
|
@@ -104,7 +83,7 @@ const InputEmailRebuilt = forwardRef(function InputEmailInternal(props, ref) {
|
|
|
104
83
|
value: props.value,
|
|
105
84
|
invalid: props.invalid,
|
|
106
85
|
error: props.error,
|
|
107
|
-
maxLength:
|
|
86
|
+
maxLength: undefined, // v2: maxLength is for HTML validation only, not for width styling
|
|
108
87
|
disabled: props.disabled,
|
|
109
88
|
placeholder: props.placeholder,
|
|
110
89
|
});
|
|
@@ -120,25 +99,11 @@ const InputEmailRebuilt = forwardRef(function InputEmailInternal(props, ref) {
|
|
|
120
99
|
onEnter: props.onEnter,
|
|
121
100
|
inputRef,
|
|
122
101
|
});
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
"onFocus",
|
|
128
|
-
"onEnter",
|
|
129
|
-
"size",
|
|
130
|
-
"prefix",
|
|
131
|
-
"suffix",
|
|
132
|
-
"version",
|
|
133
|
-
]);
|
|
134
|
-
const { fieldProps, descriptionIdentifier } = useInputEmailFormField(Object.assign(Object.assign({}, inputProps), { id,
|
|
135
|
-
name,
|
|
136
|
-
handleChange,
|
|
137
|
-
handleBlur,
|
|
138
|
-
handleFocus,
|
|
139
|
-
handleKeyDown }));
|
|
140
|
-
return (React__default.createElement(FormFieldWrapper, { error: props.error || "", invalid: props.invalid, identifier: props.identifier || id, descriptionIdentifier: descriptionIdentifier, size: props.size, inline: props.inline, align: props.align, prefix: props.prefix, suffix: props.suffix, description: props.description, clearable: (_b = props.clearable) !== null && _b !== void 0 ? _b : "never", onClear: handleClear, wrapperRef: wrapperRef, maxLength: props.maxLength, disabled: props.disabled, type: "email", value: props.value, placeholder: props.placeholder, autofocus: props.autoFocus, name: name },
|
|
141
|
-
React__default.createElement("input", Object.assign({}, fieldProps, { ref: inputRef, type: "email", className: inputStyle, value: props.value, "data-testid": "ATL-InputEmail-input" })),
|
|
102
|
+
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
103
|
+
const hasDescription = props.description && !props.inline;
|
|
104
|
+
const isInvalid = Boolean(props["aria-invalid"] || props.error || props.invalid);
|
|
105
|
+
return (React__default.createElement(FormFieldWrapper, { error: props.error || "", invalid: props.invalid, identifier: id, descriptionIdentifier: descriptionIdentifier, size: props.size, inline: props.inline, align: props.align, prefix: props.prefix, suffix: props.suffix, description: props.description, clearable: (_b = props.clearable) !== null && _b !== void 0 ? _b : "never", onClear: handleClear, wrapperRef: wrapperRef, maxLength: props.maxLength, disabled: props.disabled, type: "email", value: props.value, placeholder: props.placeholder, autofocus: props.autoFocus, name: name },
|
|
106
|
+
React__default.createElement("input", { id: id, name: name, type: "email", ref: inputRef, className: inputStyle, value: props.value, disabled: props.disabled, readOnly: props.readOnly, required: props.required, autoFocus: props.autoFocus, autoComplete: props.autoComplete, maxLength: props.maxLength, minLength: props.minLength, pattern: props.pattern, inputMode: props.inputMode, tabIndex: props.tabIndex, role: props.role, "aria-label": props["aria-label"], "aria-describedby": hasDescription ? descriptionIdentifier : props["aria-describedby"], "aria-invalid": isInvalid ? true : undefined, "aria-controls": props["aria-controls"], "aria-expanded": props["aria-expanded"], "aria-activedescendant": props["aria-activedescendant"], "aria-autocomplete": props["aria-autocomplete"], "aria-required": props["aria-required"], onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, onKeyUp: props.onKeyUp, "data-testid": "ATL-InputEmail-input" }),
|
|
142
107
|
React__default.createElement(FormFieldPostFix, { variation: "spinner", visible: (_c = props.loading) !== null && _c !== void 0 ? _c : false }),
|
|
143
108
|
props.children));
|
|
144
109
|
});
|
|
@@ -1,22 +1,51 @@
|
|
|
1
1
|
import type { ReactNode } from "react";
|
|
2
2
|
import type React from "react";
|
|
3
3
|
import type { CommonFormFieldProps, FormFieldProps } from "../FormField";
|
|
4
|
+
import type { AriaInputProps, FocusEvents, KeyboardEvents } from "../FormField/FormFieldTypes";
|
|
4
5
|
export type InputNumberVersion = 1 | 2 | undefined;
|
|
5
|
-
export interface InputNumberRebuiltProps extends Omit<CommonFormFieldProps, "version">,
|
|
6
|
+
export interface InputNumberRebuiltProps extends Omit<CommonFormFieldProps, "version">, AriaInputProps, FocusEvents<HTMLInputElement>, KeyboardEvents<HTMLInputElement> {
|
|
6
7
|
readonly align?: "center" | "right";
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use `autoComplete` (camelCase) instead.
|
|
10
|
+
*/
|
|
7
11
|
readonly autocomplete?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* HTML autocomplete attribute for browser autofill.
|
|
14
|
+
*/
|
|
15
|
+
readonly autoComplete?: string;
|
|
8
16
|
readonly autoFocus?: boolean;
|
|
9
17
|
readonly defaultValue?: number;
|
|
10
18
|
readonly description?: ReactNode;
|
|
11
19
|
readonly error?: string;
|
|
12
20
|
readonly formatOptions?: Intl.NumberFormatOptions;
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated Use `id` instead.
|
|
23
|
+
*/
|
|
13
24
|
readonly identifier?: string;
|
|
25
|
+
/**
|
|
26
|
+
* The ID of the input element.
|
|
27
|
+
*/
|
|
28
|
+
readonly id?: string;
|
|
14
29
|
readonly inline?: boolean;
|
|
15
30
|
readonly invalid?: boolean;
|
|
16
31
|
readonly maxValue?: number;
|
|
17
32
|
readonly minValue?: number;
|
|
33
|
+
/**
|
|
34
|
+
* Callback for value changes.
|
|
35
|
+
* @param newValue - The new numeric value
|
|
36
|
+
* @param event - Optional change event
|
|
37
|
+
*/
|
|
18
38
|
readonly onChange?: (newValue: number, event?: React.ChangeEvent<HTMLInputElement>) => void;
|
|
39
|
+
/**
|
|
40
|
+
* @deprecated Use `readOnly` (camelCase) instead.
|
|
41
|
+
*/
|
|
42
|
+
readonly readonly?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Whether the input is read-only.
|
|
45
|
+
*/
|
|
46
|
+
readonly readOnly?: boolean;
|
|
19
47
|
readonly showMiniLabel?: boolean;
|
|
48
|
+
readonly size?: FormFieldProps["size"];
|
|
20
49
|
readonly value?: number;
|
|
21
50
|
/**
|
|
22
51
|
* Version 2 is highly experimental. Avoid using it unless you have talked with Atlantis first.
|
|
@@ -2721,6 +2721,7 @@ const defaultFormatOptions = {
|
|
|
2721
2721
|
style: "decimal",
|
|
2722
2722
|
};
|
|
2723
2723
|
const InputNumberRebuilt = React.forwardRef((props, ref) => {
|
|
2724
|
+
var _a;
|
|
2724
2725
|
const inputRef = React.createRef();
|
|
2725
2726
|
const mergedFormatOptions = Object.assign(Object.assign({}, defaultFormatOptions), props.formatOptions);
|
|
2726
2727
|
function handleChange(newValue, event) {
|
|
@@ -2740,9 +2741,16 @@ const InputNumberRebuilt = React.forwardRef((props, ref) => {
|
|
|
2740
2741
|
}
|
|
2741
2742
|
},
|
|
2742
2743
|
}));
|
|
2743
|
-
const { align, description, disabled, error, inline, invalid, placeholder,
|
|
2744
|
+
const { align, description, disabled, error, inline, invalid, placeholder,
|
|
2745
|
+
// Support both old and new prop names
|
|
2746
|
+
readonly, readOnly = readonly, showMiniLabel = true, size, minValue, maxValue,
|
|
2747
|
+
// Deprecated props (filter out to avoid spreading to React Aria)
|
|
2748
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2749
|
+
identifier: _deprecatedIdentifier,
|
|
2750
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2751
|
+
autocomplete: _deprecatedAutocomplete } = props, ariaNumberFieldProps = tslib_es6.__rest(props, ["align", "description", "disabled", "error", "inline", "invalid", "placeholder", "readonly", "readOnly", "showMiniLabel", "size", "minValue", "maxValue", "identifier", "autocomplete"]);
|
|
2744
2752
|
const stringDescription = typeof description === "string";
|
|
2745
|
-
return (React.createElement($b91743d66a0ed188$export$63c5fa0b2fdccd2e, Object.assign({}, ariaNumberFieldProps, { className: classnames(styles.container, inline && styles.inline), formatOptions: mergedFormatOptions, isDisabled: disabled, isInvalid: invalid, isReadOnly:
|
|
2753
|
+
return (React.createElement($b91743d66a0ed188$export$63c5fa0b2fdccd2e, Object.assign({}, ariaNumberFieldProps, { className: classnames(styles.container, inline && styles.inline), formatOptions: mergedFormatOptions, id: (_a = props.id) !== null && _a !== void 0 ? _a : props.identifier, isDisabled: disabled, isInvalid: invalid, isReadOnly: readOnly, minValue: minValue, maxValue: maxValue, onBlur: e => { var _a; return (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e); }, onFocus: e => { var _a; return (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e); }, onChange: handleChange }),
|
|
2746
2754
|
React.createElement($a049562f99e7db0e$export$eb2fcfdbd7ba97d4, { className: classnames(styles.wrapper, align && styles[align], invalid && styles.invalid, disabled && styles.disabled) },
|
|
2747
2755
|
React.createElement("div", { className: styles.horizontalWrapper },
|
|
2748
2756
|
React.createElement("div", { className: classnames(styles.inputWrapper, disabled && styles.disabled, !showMiniLabel && styles.hideLabel, size && styles[size]) },
|
|
@@ -2719,6 +2719,7 @@ const defaultFormatOptions = {
|
|
|
2719
2719
|
style: "decimal",
|
|
2720
2720
|
};
|
|
2721
2721
|
const InputNumberRebuilt = forwardRef((props, ref) => {
|
|
2722
|
+
var _a;
|
|
2722
2723
|
const inputRef = createRef();
|
|
2723
2724
|
const mergedFormatOptions = Object.assign(Object.assign({}, defaultFormatOptions), props.formatOptions);
|
|
2724
2725
|
function handleChange(newValue, event) {
|
|
@@ -2738,9 +2739,16 @@ const InputNumberRebuilt = forwardRef((props, ref) => {
|
|
|
2738
2739
|
}
|
|
2739
2740
|
},
|
|
2740
2741
|
}));
|
|
2741
|
-
const { align, description, disabled, error, inline, invalid, placeholder,
|
|
2742
|
+
const { align, description, disabled, error, inline, invalid, placeholder,
|
|
2743
|
+
// Support both old and new prop names
|
|
2744
|
+
readonly, readOnly = readonly, showMiniLabel = true, size, minValue, maxValue,
|
|
2745
|
+
// Deprecated props (filter out to avoid spreading to React Aria)
|
|
2746
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2747
|
+
identifier: _deprecatedIdentifier,
|
|
2748
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2749
|
+
autocomplete: _deprecatedAutocomplete } = props, ariaNumberFieldProps = __rest(props, ["align", "description", "disabled", "error", "inline", "invalid", "placeholder", "readonly", "readOnly", "showMiniLabel", "size", "minValue", "maxValue", "identifier", "autocomplete"]);
|
|
2742
2750
|
const stringDescription = typeof description === "string";
|
|
2743
|
-
return (React__default.createElement($b91743d66a0ed188$export$63c5fa0b2fdccd2e, Object.assign({}, ariaNumberFieldProps, { className: classnames(styles.container, inline && styles.inline), formatOptions: mergedFormatOptions, isDisabled: disabled, isInvalid: invalid, isReadOnly:
|
|
2751
|
+
return (React__default.createElement($b91743d66a0ed188$export$63c5fa0b2fdccd2e, Object.assign({}, ariaNumberFieldProps, { className: classnames(styles.container, inline && styles.inline), formatOptions: mergedFormatOptions, id: (_a = props.id) !== null && _a !== void 0 ? _a : props.identifier, isDisabled: disabled, isInvalid: invalid, isReadOnly: readOnly, minValue: minValue, maxValue: maxValue, onBlur: e => { var _a; return (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e); }, onFocus: e => { var _a; return (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props, e); }, onChange: handleChange }),
|
|
2744
2752
|
React__default.createElement($a049562f99e7db0e$export$eb2fcfdbd7ba97d4, { className: classnames(styles.wrapper, align && styles[align], invalid && styles.invalid, disabled && styles.disabled) },
|
|
2745
2753
|
React__default.createElement("div", { className: styles.horizontalWrapper },
|
|
2746
2754
|
React__default.createElement("div", { className: classnames(styles.inputWrapper, disabled && styles.disabled, !showMiniLabel && styles.hideLabel, size && styles[size]) },
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { Clearable } from "@jobber/hooks";
|
|
2
1
|
import type { InputMaskProps } from "./InputMask";
|
|
3
|
-
import type { CommonFormFieldProps, FormFieldProps } from "../FormField";
|
|
2
|
+
import type { CommonFormFieldProps, FocusEvents, FormFieldProps, HTMLInputBaseProps, KeyboardEvents, RebuiltInputCommonProps } from "../FormField";
|
|
4
3
|
export interface InputPhoneNumberLegacyProps extends Omit<CommonFormFieldProps, "align">, Pick<FormFieldProps, "autocomplete" | "onEnter" | "onFocus" | "onBlur" | "validations" | "readonly" | "prefix" | "suffix"> {
|
|
5
4
|
readonly value: string;
|
|
6
5
|
readonly onChange: (value: string) => void;
|
|
@@ -16,20 +15,21 @@ export interface InputPhoneNumberLegacyProps extends Omit<CommonFormFieldProps,
|
|
|
16
15
|
*/
|
|
17
16
|
readonly required?: boolean;
|
|
18
17
|
}
|
|
19
|
-
export interface InputPhoneNumberRebuiltProps extends Omit<
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
readonly autocomplete?: boolean | string;
|
|
24
|
-
readonly loading?: boolean;
|
|
25
|
-
readonly onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
26
|
-
readonly children?: React.ReactNode;
|
|
27
|
-
readonly clearable?: Clearable;
|
|
18
|
+
export interface InputPhoneNumberRebuiltProps extends Omit<HTMLInputBaseProps, "type" | "maxLength" | "minLength">, FocusEvents<HTMLInputElement>, KeyboardEvents<HTMLInputElement>, RebuiltInputCommonProps {
|
|
19
|
+
/**
|
|
20
|
+
* The current value of the input.
|
|
21
|
+
*/
|
|
28
22
|
readonly value: string;
|
|
23
|
+
/**
|
|
24
|
+
* Custom onChange handler that provides the new value as the first argument.
|
|
25
|
+
*/
|
|
29
26
|
readonly onChange: (value: string, event?: React.ChangeEvent<HTMLInputElement>) => void;
|
|
30
|
-
|
|
27
|
+
/**
|
|
28
|
+
* A callback to handle "Enter" keypress. This will only run
|
|
29
|
+
* if Enter is the only key. Will not run if Shift or Control
|
|
30
|
+
* are being held.
|
|
31
|
+
*/
|
|
31
32
|
readonly onEnter?: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
32
|
-
readonly onFocus?: (event?: React.FocusEvent<HTMLInputElement>) => void;
|
|
33
33
|
/**
|
|
34
34
|
* A pattern to specify the format to display the phone number in.
|
|
35
35
|
* For example if you want to display the format for [Denmark](https://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers#Denmark)
|
|
@@ -38,19 +38,20 @@ export interface InputPhoneNumberRebuiltProps extends Omit<React.InputHTMLAttrib
|
|
|
38
38
|
*/
|
|
39
39
|
readonly pattern?: InputMaskProps["pattern"];
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* @deprecated Use `id` instead. This prop will be removed in a future version.
|
|
42
42
|
*/
|
|
43
|
-
readonly
|
|
43
|
+
readonly identifier?: string;
|
|
44
|
+
/**
|
|
45
|
+
* @deprecated Use `autoComplete` with string values instead. This prop will be removed in a future version.
|
|
46
|
+
*/
|
|
47
|
+
readonly autocomplete?: never;
|
|
48
|
+
/**
|
|
49
|
+
* @deprecated Use `aria-label` instead. This prop will be removed in a future version.
|
|
50
|
+
*/
|
|
51
|
+
readonly ariaLabel?: never;
|
|
44
52
|
/**
|
|
45
|
-
*
|
|
53
|
+
* @deprecated Use `readOnly` instead. This prop will be removed in a future version.
|
|
46
54
|
*/
|
|
47
|
-
readonly
|
|
48
|
-
readonly size?: FormFieldProps["size"];
|
|
49
|
-
readonly inline?: FormFieldProps["inline"];
|
|
50
|
-
readonly align?: FormFieldProps["align"];
|
|
51
|
-
readonly prefix?: FormFieldProps["prefix"];
|
|
52
|
-
readonly suffix?: FormFieldProps["suffix"];
|
|
53
|
-
readonly description?: FormFieldProps["description"];
|
|
54
|
-
readonly readonly?: boolean;
|
|
55
|
+
readonly readonly?: never;
|
|
55
56
|
}
|
|
56
57
|
export declare const DEFAULT_PATTERN = "(***) ***-****";
|
|
@@ -11,6 +11,6 @@ export declare function useInputPhoneActions({ onChange, inputRef, onFocus, onBl
|
|
|
11
11
|
handleClear: () => void;
|
|
12
12
|
handleChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
13
13
|
handleFocus: (event: FocusEvent<HTMLInputElement>) => void;
|
|
14
|
-
handleBlur: (event
|
|
14
|
+
handleBlur: (event: FocusEvent<HTMLInputElement>) => void;
|
|
15
15
|
handleKeyDown: (event: KeyboardEvent<HTMLInputElement>) => void;
|
|
16
16
|
};
|
|
@@ -115,7 +115,7 @@ const DEFAULT_PATTERN = "(***) ***-****";
|
|
|
115
115
|
function useInputPhoneActions({ onChange, inputRef, onFocus, onBlur, onKeyDown, onEnter, }) {
|
|
116
116
|
function handleClear() {
|
|
117
117
|
var _a;
|
|
118
|
-
|
|
118
|
+
// Don't call blur handler when programmatically clearing
|
|
119
119
|
onChange && onChange("");
|
|
120
120
|
(_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
121
121
|
}
|
|
@@ -149,28 +149,27 @@ function useInputPhoneActions({ onChange, inputRef, onFocus, onBlur, onKeyDown,
|
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
*/
|
|
156
|
-
function useInputPhoneFormField(_a) {
|
|
157
|
-
var { id, name, description, inline, handleChange, handleBlur, handleFocus, handleKeyDown, error, disabled, autofocus, value, readonly } = _a, rest = tslib_es6.__rest(_a, ["id", "name", "description", "inline", "handleChange", "handleBlur", "handleFocus", "handleKeyDown", "error", "disabled", "autofocus", "value", "readonly"]);
|
|
158
|
-
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
159
|
-
const fieldProps = Object.assign(Object.assign(Object.assign(Object.assign({}, rest), { id,
|
|
160
|
-
name,
|
|
161
|
-
disabled, autoFocus: autofocus, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown, value, invalid: error || rest.invalid ? "true" : undefined }), (description &&
|
|
162
|
-
!inline && { "aria-describedby": descriptionIdentifier })), { readOnly: readonly });
|
|
163
|
-
return { fieldProps, descriptionIdentifier };
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const InputPhoneNumberRebuilt = React.forwardRef(function InputPhoneNumberInternal(_a, ref) {
|
|
152
|
+
const InputPhoneNumberRebuilt = React.forwardRef(
|
|
153
|
+
// eslint-disable-next-line max-statements
|
|
154
|
+
function InputPhoneNumberInternal(_a, ref) {
|
|
167
155
|
var _b, _c, _d, _e;
|
|
168
156
|
var { pattern = DEFAULT_PATTERN } = _a, props = tslib_es6.__rest(_a, ["pattern"]);
|
|
169
157
|
const inputPhoneNumberRef = (_b = ref) !== null && _b !== void 0 ? _b : React.useRef(null);
|
|
170
158
|
const wrapperRef = React.useRef(null);
|
|
171
|
-
const { inputStyle } = FormField.useFormFieldWrapperStyles(
|
|
159
|
+
const { inputStyle } = FormField.useFormFieldWrapperStyles({
|
|
160
|
+
size: props.size,
|
|
161
|
+
align: props.align,
|
|
162
|
+
placeholder: props.placeholder,
|
|
163
|
+
value: props.value,
|
|
164
|
+
invalid: props.invalid,
|
|
165
|
+
error: props.error,
|
|
166
|
+
maxLength: undefined, // v2: maxLength not used for width styling
|
|
167
|
+
disabled: props.disabled,
|
|
168
|
+
inline: props.inline,
|
|
169
|
+
type: "tel",
|
|
170
|
+
});
|
|
172
171
|
const generatedId = React.useId();
|
|
173
|
-
const id = props.id || generatedId;
|
|
172
|
+
const id = props.identifier || props.id || generatedId;
|
|
174
173
|
const { name } = FormField.useAtlantisFormFieldName({
|
|
175
174
|
nameProp: props.name,
|
|
176
175
|
id: id,
|
|
@@ -188,25 +187,14 @@ const InputPhoneNumberRebuilt = React.forwardRef(function InputPhoneNumberIntern
|
|
|
188
187
|
onEnter: props.onEnter,
|
|
189
188
|
inputRef: inputPhoneNumberRef,
|
|
190
189
|
});
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
handleKeyDown,
|
|
198
|
-
autofocus: props.autoFocus,
|
|
199
|
-
disabled: props.disabled,
|
|
200
|
-
readonly: props.readonly,
|
|
201
|
-
invalid: props.invalid,
|
|
202
|
-
error: props.error,
|
|
203
|
-
description: props.description,
|
|
204
|
-
inline: props.inline,
|
|
205
|
-
});
|
|
206
|
-
return (React.createElement(FormField.FormFieldWrapper, { disabled: props.disabled, size: props.size, inline: props.inline, wrapperRef: wrapperRef, error: (_c = props.error) !== null && _c !== void 0 ? _c : "", invalid: Boolean(props.error || props.invalid), identifier: id, descriptionIdentifier: descriptionIdentifier, description: props.description, clearable: (_d = props.clearable) !== null && _d !== void 0 ? _d : "never", onClear: handleClear, type: "tel", placeholder: props.placeholder, value: formattedValue, prefix: props.prefix, suffix: props.suffix, readonly: props.readonly, loading: props.loading },
|
|
207
|
-
React.createElement("input", Object.assign({ type: "tel" }, fieldProps, { ref: inputPhoneNumberRef, className: classnames(inputStyle, {
|
|
190
|
+
const descriptionIdentifier = `descriptionUUID--${id}`;
|
|
191
|
+
const hasDescription = props.description && !props.inline;
|
|
192
|
+
const isInvalid = Boolean(props["aria-invalid"] || props.error || props.invalid);
|
|
193
|
+
const effectiveReadOnly = props.readonly || props.readOnly;
|
|
194
|
+
return (React.createElement(FormField.FormFieldWrapper, { disabled: props.disabled, size: props.size, inline: props.inline, wrapperRef: wrapperRef, error: (_c = props.error) !== null && _c !== void 0 ? _c : "", invalid: Boolean(props.error || props.invalid), identifier: id, descriptionIdentifier: descriptionIdentifier, description: props.description, clearable: (_d = props.clearable) !== null && _d !== void 0 ? _d : "never", onClear: handleClear, type: "tel", placeholder: props.placeholder, value: formattedValue, prefix: props.prefix, suffix: props.suffix, readonly: effectiveReadOnly, loading: props.loading },
|
|
195
|
+
React.createElement("input", { id: id, name: name, type: "tel", ref: inputPhoneNumberRef, className: classnames(inputStyle, {
|
|
208
196
|
[styles.emptyValue]: inputValue.length === 0 && pattern[0] === "(",
|
|
209
|
-
}), value: formattedValue })
|
|
197
|
+
}), value: formattedValue, disabled: props.disabled, readOnly: effectiveReadOnly, required: props.required, autoFocus: props.autoFocus, autoComplete: props.autoComplete, inputMode: props.inputMode, tabIndex: props.tabIndex, role: props.role, "aria-label": props["aria-label"], "aria-describedby": hasDescription ? descriptionIdentifier : props["aria-describedby"], "aria-invalid": isInvalid ? true : undefined, "aria-controls": props["aria-controls"], "aria-expanded": props["aria-expanded"], "aria-activedescendant": props["aria-activedescendant"], "aria-autocomplete": props["aria-autocomplete"], "aria-required": props["aria-required"], onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown }),
|
|
210
198
|
React.createElement(MaskElement, { isMasking: isMasking, formattedValue: formattedValue, placeholderMask: placeholderMask }),
|
|
211
199
|
React.createElement(FormField.FormFieldPostFix, { variation: "spinner", visible: (_e = props.loading) !== null && _e !== void 0 ? _e : false })));
|
|
212
200
|
});
|