@pingux/astro 2.220.0 → 2.221.1-alpha.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/lib/cjs/components/AIComponents/PromptInput/PromptInput.js +4 -1
- package/lib/cjs/components/FileInputField/FileInputField.d.ts +8 -0
- package/lib/cjs/components/FileInputField/FileInputField.js +19 -77
- package/lib/cjs/components/FileInputField/FileInputField.stories.js +7 -10
- package/lib/cjs/components/FileInputField/FileInputField.styles.d.ts +47 -0
- package/lib/cjs/components/FileInputField/FileInputField.test.js +3 -2
- package/lib/cjs/components/FileInputField/FileItem.d.ts +4 -0
- package/lib/cjs/components/FileInputField/FileItem.js +8 -16
- package/lib/cjs/components/FileInputField/FileSelect.d.ts +4 -0
- package/lib/cjs/components/FileInputField/FileSelect.js +1 -18
- package/lib/cjs/components/FileInputField/index.d.ts +1 -0
- package/lib/cjs/components/PhoneNumberField/PhoneNumberField.js +17 -7
- package/lib/cjs/components/PhoneNumberField/PhoneNumberField.test.js +111 -0
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +5 -1
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +5 -1
- package/lib/cjs/styles/themes/next-gen/variants/variants.js +5 -1
- package/lib/cjs/types/fileInputField.d.ts +106 -0
- package/lib/cjs/types/fileInputField.js +6 -0
- package/lib/cjs/types/index.d.ts +1 -0
- package/lib/cjs/types/index.js +60 -49
- package/lib/cjs/types/input.d.ts +4 -3
- package/lib/components/AIComponents/PromptInput/PromptInput.js +4 -1
- package/lib/components/FileInputField/FileInputField.js +20 -78
- package/lib/components/FileInputField/FileInputField.stories.js +7 -10
- package/lib/components/FileInputField/FileInputField.test.js +3 -2
- package/lib/components/FileInputField/FileItem.js +8 -16
- package/lib/components/FileInputField/FileSelect.js +2 -20
- package/lib/components/PhoneNumberField/PhoneNumberField.js +17 -7
- package/lib/components/PhoneNumberField/PhoneNumberField.test.js +112 -1
- package/lib/styles/themes/next-gen/variants/variants.js +5 -1
- package/lib/types/fileInputField.js +1 -0
- package/lib/types/index.js +1 -0
- package/package.json +2 -2
|
@@ -24,16 +24,13 @@ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo
|
|
|
24
24
|
import { mergeProps, useVisuallyHidden, VisuallyHidden } from 'react-aria';
|
|
25
25
|
import { useDropzone } from 'react-dropzone';
|
|
26
26
|
import pluralize from 'pluralize';
|
|
27
|
-
import PropTypes from 'prop-types';
|
|
28
27
|
import { v4 as uuidv4 } from 'uuid';
|
|
29
28
|
import { Box, FieldHelperText, Input, Label, Loader } from '../..';
|
|
30
29
|
import useField from '../../hooks/useField';
|
|
31
30
|
import useStatusClasses from '../../hooks/useStatusClasses';
|
|
32
31
|
import { getPendoID } from '../../utils/devUtils/constants/pendoID';
|
|
33
32
|
import statuses from '../../utils/devUtils/constants/statuses';
|
|
34
|
-
import {
|
|
35
|
-
import { inputFieldAttributesBasePropTypes } from '../../utils/docUtils/fieldAttributes';
|
|
36
|
-
import { statusDefaultProp, statusPropTypes } from '../../utils/docUtils/statusProp';
|
|
33
|
+
import { getAriaAttributeProps } from '../../utils/docUtils/ariaAttributes';
|
|
37
34
|
import FileItem from './FileItem';
|
|
38
35
|
import FileSelect from './FileSelect';
|
|
39
36
|
import FileSelectIcon from './FileSelectIcon';
|
|
@@ -58,7 +55,8 @@ export var filterFileTypes = function filterFileTypes(_ref) {
|
|
|
58
55
|
};
|
|
59
56
|
var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
60
57
|
var buttonProps = props.buttonProps,
|
|
61
|
-
|
|
58
|
+
_props$defaultButtonT = props.defaultButtonText,
|
|
59
|
+
defaultButtonText = _props$defaultButtonT === void 0 ? 'Select a file' : _props$defaultButtonT,
|
|
62
60
|
defaultFileList = props.defaultFileList,
|
|
63
61
|
uploadedFilesImperative = props.fileList,
|
|
64
62
|
helperText = props.helperText,
|
|
@@ -71,7 +69,8 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
71
69
|
label = props.label,
|
|
72
70
|
onFileSelect = props.onFileSelect,
|
|
73
71
|
onRemove = props.onRemove,
|
|
74
|
-
status = props.status,
|
|
72
|
+
_props$status = props.status,
|
|
73
|
+
status = _props$status === void 0 ? 'default' : _props$status,
|
|
75
74
|
textProps = props.textProps,
|
|
76
75
|
fileTypes = props.fileTypes,
|
|
77
76
|
others = _objectWithoutProperties(props, _excluded);
|
|
@@ -87,7 +86,7 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
87
86
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
88
87
|
fileChangeMessage = _useState6[0],
|
|
89
88
|
setFileChangeMessage = _useState6[1];
|
|
90
|
-
var inputRef = useRef();
|
|
89
|
+
var inputRef = useRef(null);
|
|
91
90
|
/* istanbul ignore next */
|
|
92
91
|
useImperativeHandle(ref, function () {
|
|
93
92
|
return inputRef.current;
|
|
@@ -104,11 +103,14 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
104
103
|
fieldControlInputProps = _useField.fieldControlInputProps,
|
|
105
104
|
fieldControlWrapperProps = _useField.fieldControlWrapperProps,
|
|
106
105
|
fieldLabelProps = _useField.fieldLabelProps;
|
|
107
|
-
var helperTextId =
|
|
106
|
+
var helperTextId = useMemo(function () {
|
|
107
|
+
return uuidv4();
|
|
108
|
+
}, []);
|
|
108
109
|
var _useVisuallyHidden = useVisuallyHidden(),
|
|
109
110
|
visuallyHiddenProps = _useVisuallyHidden.visuallyHiddenProps;
|
|
110
111
|
var handleFileSelect = useCallback(function () {
|
|
111
|
-
inputRef.current
|
|
112
|
+
if (!inputRef.current) return;
|
|
113
|
+
inputRef.current.value = '';
|
|
112
114
|
inputRef.current.click();
|
|
113
115
|
}, [inputRef]);
|
|
114
116
|
useEffect(function () {
|
|
@@ -116,7 +118,7 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
116
118
|
// update/delete file status update on Safari
|
|
117
119
|
|
|
118
120
|
if (status === statuses.ERROR) {
|
|
119
|
-
setFileChangeMessage(helperText);
|
|
121
|
+
setFileChangeMessage(typeof helperText === 'string' ? helperText : '');
|
|
120
122
|
} else if (fileChangeStatus) {
|
|
121
123
|
var _context;
|
|
122
124
|
setFileChangeMessage(_concatInstanceProperty(_context = "".concat(pluralize('file', fileChangeStatus.fileCount, true), " ")).call(_context, fileChangeStatus.status, " successfully"));
|
|
@@ -174,6 +176,7 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
174
176
|
var handleOnChange = function handleOnChange(event) {
|
|
175
177
|
handleFileUpload(event, event.target.files);
|
|
176
178
|
};
|
|
179
|
+
var mergedInputProps = mergeProps(visuallyHiddenProps, fieldControlInputProps, getInputProps());
|
|
177
180
|
var filesListNode = useMemo(function () {
|
|
178
181
|
var handleFileDelete = function handleFileDelete(e, fileId) {
|
|
179
182
|
setFileChangeMessage('');
|
|
@@ -228,7 +231,7 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
228
231
|
}, getRootProps(), {
|
|
229
232
|
// to pass accessibility test, this removes focusable dependents
|
|
230
233
|
role: "none"
|
|
231
|
-
}), ___EmotionJSX(Input, _extends({},
|
|
234
|
+
}), ___EmotionJSX(Input, _extends({}, mergedInputProps, {
|
|
232
235
|
multiple: isMultiple,
|
|
233
236
|
onChange: handleOnChange,
|
|
234
237
|
ref: inputRef,
|
|
@@ -236,10 +239,11 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
236
239
|
accept: fileTypes ? fileTypes === null || fileTypes === void 0 ? void 0 : fileTypes.join(',') : '*'
|
|
237
240
|
})), filesListNode, shouldFileSelectRender() && (isIconButton ? ___EmotionJSX(FileSelectIcon, _extends({
|
|
238
241
|
handleFileSelect: handleFileSelect,
|
|
239
|
-
iconContainerProps: iconContainerProps,
|
|
240
|
-
buttonProps: buttonProps,
|
|
241
|
-
|
|
242
|
-
|
|
242
|
+
iconContainerProps: iconContainerProps !== null && iconContainerProps !== void 0 ? iconContainerProps : {},
|
|
243
|
+
buttonProps: _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
244
|
+
isDisabled: isDisabled || isLoading
|
|
245
|
+
}),
|
|
246
|
+
iconProps: iconProps !== null && iconProps !== void 0 ? iconProps : {}
|
|
243
247
|
}, ariaProps)) : ___EmotionJSX(FileSelect, _extends({
|
|
244
248
|
buttonText: defaultButtonText,
|
|
245
249
|
handleFileSelect: handleFileSelect,
|
|
@@ -252,7 +256,7 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
252
256
|
},
|
|
253
257
|
"data-testid": "file-input-field__loader"
|
|
254
258
|
})), helperText && ___EmotionJSX(Box, {
|
|
255
|
-
"aria-label": helperText,
|
|
259
|
+
"aria-label": typeof helperText === 'string' ? helperText : undefined,
|
|
256
260
|
role: "marquee"
|
|
257
261
|
}, ___EmotionJSX(FieldHelperText, {
|
|
258
262
|
status: status,
|
|
@@ -264,66 +268,4 @@ var FileInputField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
264
268
|
}, ___EmotionJSX(VisuallyHidden, null, ___EmotionJSX("h1", null, fileChangeMessage))));
|
|
265
269
|
});
|
|
266
270
|
FileInputField.displayName = displayName;
|
|
267
|
-
FileInputField.propTypes = _objectSpread(_objectSpread(_objectSpread({
|
|
268
|
-
/** The rendered label for the field. */
|
|
269
|
-
label: PropTypes.node,
|
|
270
|
-
/** Text rendered below the input. */
|
|
271
|
-
helperText: PropTypes.node,
|
|
272
|
-
/** Default button text that will be changed on the file name once file is uploaded */
|
|
273
|
-
defaultButtonText: PropTypes.string,
|
|
274
|
-
/** Defines whether input can accept multiple files or not */
|
|
275
|
-
isMultiple: PropTypes.bool,
|
|
276
|
-
/** Determines whether the loading indicator is shown. */
|
|
277
|
-
isLoading: PropTypes.bool,
|
|
278
|
-
/** Whether the field is disabled. */
|
|
279
|
-
isDisabled: PropTypes.bool,
|
|
280
|
-
/** Array of objects for uploaded files.
|
|
281
|
-
* Objects should have the following structure:
|
|
282
|
-
*
|
|
283
|
-
* {
|
|
284
|
-
*
|
|
285
|
-
* fileObj: File object (optional),
|
|
286
|
-
*
|
|
287
|
-
* id: file id (required - will be returned on delete),
|
|
288
|
-
*
|
|
289
|
-
* name: file name that will be displayed (required - will be displayed),
|
|
290
|
-
*
|
|
291
|
-
* downloadLink: link for the file download (optional),
|
|
292
|
-
*
|
|
293
|
-
* status: file status (if error - icon of the
|
|
294
|
-
* component will be red icon and warning sign)(optional),
|
|
295
|
-
*
|
|
296
|
-
* }
|
|
297
|
-
* */
|
|
298
|
-
fileList: PropTypes.arrayOf(PropTypes.shape(_objectSpread({
|
|
299
|
-
fileObj: PropTypes.shape({}),
|
|
300
|
-
id: PropTypes.string.isRequired,
|
|
301
|
-
name: PropTypes.string.isRequired,
|
|
302
|
-
downloadLink: PropTypes.string
|
|
303
|
-
}, statusPropTypes))),
|
|
304
|
-
/** Default array of objects for uploaded files. */
|
|
305
|
-
defaultFileList: PropTypes.arrayOf(PropTypes.shape(_objectSpread({
|
|
306
|
-
fileObj: PropTypes.shape({}),
|
|
307
|
-
id: PropTypes.string.isRequired,
|
|
308
|
-
name: PropTypes.string.isRequired,
|
|
309
|
-
downloadLink: PropTypes.string
|
|
310
|
-
}, statusPropTypes))),
|
|
311
|
-
/** The handler that is called when the input files is uploaded.
|
|
312
|
-
*
|
|
313
|
-
* `(event, files) => void`
|
|
314
|
-
* */
|
|
315
|
-
onFileSelect: PropTypes.func,
|
|
316
|
-
/** The handler that is called when an uploaded file got removed.
|
|
317
|
-
*
|
|
318
|
-
* `(fileId) => void`
|
|
319
|
-
* */
|
|
320
|
-
onRemove: PropTypes.func,
|
|
321
|
-
/** These props will be spread to the field text component. */
|
|
322
|
-
textProps: PropTypes.shape({}),
|
|
323
|
-
/** Props object that is spread directly into the helphint element. */
|
|
324
|
-
helpHintProps: PropTypes.shape({})
|
|
325
|
-
}, statusPropTypes), ariaAttributesBasePropTypes), inputFieldAttributesBasePropTypes);
|
|
326
|
-
FileInputField.defaultProps = _objectSpread({
|
|
327
|
-
defaultButtonText: 'Select a file'
|
|
328
|
-
}, statusDefaultProp);
|
|
329
271
|
export default FileInputField;
|
|
@@ -103,7 +103,6 @@ export var ControlledState = function ControlledState(args) {
|
|
|
103
103
|
error = _useState4[0],
|
|
104
104
|
setError = _useState4[1];
|
|
105
105
|
var handleFileSelect = function handleFileSelect(event, files) {
|
|
106
|
-
// this is approximate conversion just for an example
|
|
107
106
|
var uploadedFileSizeMb = files[0].size / 1e6;
|
|
108
107
|
if (uploadedFileSizeMb > 2) {
|
|
109
108
|
setError('Only files under 2 MB can be uploaded.');
|
|
@@ -113,14 +112,12 @@ export var ControlledState = function ControlledState(args) {
|
|
|
113
112
|
name: files[0].name,
|
|
114
113
|
downloadLink: 'link for testing purposes'
|
|
115
114
|
}]);
|
|
116
|
-
setError(
|
|
115
|
+
setError(undefined);
|
|
117
116
|
}
|
|
118
117
|
};
|
|
119
|
-
|
|
120
|
-
// you would want to handle this differently in case you have multiple files
|
|
121
118
|
var handleFileRemove = function handleFileRemove() {
|
|
122
119
|
setUserFiles([]);
|
|
123
|
-
setError(
|
|
120
|
+
setError(undefined);
|
|
124
121
|
};
|
|
125
122
|
return ___EmotionJSX(FileInputField, _extends({}, args, {
|
|
126
123
|
label: "Controlled State With limit on file size upload below 2 mb",
|
|
@@ -128,7 +125,7 @@ export var ControlledState = function ControlledState(args) {
|
|
|
128
125
|
onRemove: handleFileRemove,
|
|
129
126
|
fileList: userFiles,
|
|
130
127
|
sx: fitContentWidthSx,
|
|
131
|
-
status: error
|
|
128
|
+
status: error ? statuses.ERROR : undefined,
|
|
132
129
|
helperText: error,
|
|
133
130
|
isMultiple: true
|
|
134
131
|
}));
|
|
@@ -213,13 +210,13 @@ export var WithFileTypePdfAndImage = function WithFileTypePdfAndImage() {
|
|
|
213
210
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
214
211
|
error = _useState6[0],
|
|
215
212
|
setError = _useState6[1];
|
|
216
|
-
var handleFileSelect = function handleFileSelect(
|
|
213
|
+
var handleFileSelect = function handleFileSelect(_event, files) {
|
|
217
214
|
var uploadedFileType = files[0].type;
|
|
218
215
|
var isValidFileType = _someInstanceProperty(fileTypes).call(fileTypes, function (fileType) {
|
|
219
216
|
return uploadedFileType.search(fileType) !== -1;
|
|
220
217
|
});
|
|
221
218
|
if (isValidFileType) {
|
|
222
|
-
setError(
|
|
219
|
+
setError(undefined);
|
|
223
220
|
} else {
|
|
224
221
|
setError('Not a valid File Type. Only PDF and Image files are allowed.');
|
|
225
222
|
}
|
|
@@ -230,9 +227,9 @@ export var WithFileTypePdfAndImage = function WithFileTypePdfAndImage() {
|
|
|
230
227
|
fileTypes: fileTypes,
|
|
231
228
|
onFileSelect: handleFileSelect,
|
|
232
229
|
onRemove: function onRemove() {
|
|
233
|
-
return setError(
|
|
230
|
+
return setError(undefined);
|
|
234
231
|
},
|
|
235
|
-
status: error
|
|
232
|
+
status: error ? statuses.ERROR : undefined,
|
|
236
233
|
helperText: error
|
|
237
234
|
});
|
|
238
235
|
};
|
|
@@ -79,7 +79,8 @@ beforeAll(function () {
|
|
|
79
79
|
afterAll(function () {
|
|
80
80
|
_URL.createObjectURL = originalValue;
|
|
81
81
|
});
|
|
82
|
-
var getComponent = function getComponent(
|
|
82
|
+
var getComponent = function getComponent() {
|
|
83
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
83
84
|
return render(___EmotionJSX(FileInputField, _extends({}, defaultProps, props)));
|
|
84
85
|
};
|
|
85
86
|
|
|
@@ -311,7 +312,7 @@ test('File upload should allow only image', /*#__PURE__*/_asyncToGenerator(/*#__
|
|
|
311
312
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
312
313
|
while (1) switch (_context7.prev = _context7.next) {
|
|
313
314
|
case 0:
|
|
314
|
-
setStateMock = jest.fn();
|
|
315
|
+
setStateMock = jest.fn(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
315
316
|
jest.spyOn(React, 'useState').mockImplementation(function (initialState) {
|
|
316
317
|
return [initialState, setStateMock];
|
|
317
318
|
});
|
|
@@ -6,8 +6,8 @@ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/inst
|
|
|
6
6
|
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
|
7
7
|
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
|
8
8
|
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
9
|
-
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
9
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
10
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
11
11
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
12
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
13
|
import React, { useCallback, useRef } from 'react';
|
|
@@ -15,10 +15,8 @@ import { useVisuallyHidden } from 'react-aria';
|
|
|
15
15
|
import ErrorIcon from '@pingux/mdi-react/AlertCircleIcon';
|
|
16
16
|
import DeleteIcon from '@pingux/mdi-react/DeleteIcon';
|
|
17
17
|
import InsertDriveFileIcon from '@pingux/mdi-react/InsertDriveFileIcon';
|
|
18
|
-
import PropTypes from 'prop-types';
|
|
19
18
|
import { Box, Button, Icon, IconButton, Text } from '../../index';
|
|
20
19
|
import statuses from '../../utils/devUtils/constants/statuses';
|
|
21
|
-
import { statusPropTypes } from '../../utils/docUtils/statusProp';
|
|
22
20
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
23
21
|
var FileItem = function FileItem(props) {
|
|
24
22
|
var downloadLink = props.downloadLink,
|
|
@@ -33,7 +31,7 @@ var FileItem = function FileItem(props) {
|
|
|
33
31
|
}, [id, handleFileDelete]);
|
|
34
32
|
var _useVisuallyHidden = useVisuallyHidden(),
|
|
35
33
|
visuallyHiddenProps = _useVisuallyHidden.visuallyHiddenProps;
|
|
36
|
-
var downloadRef = useRef();
|
|
34
|
+
var downloadRef = useRef(null);
|
|
37
35
|
var getFileIconProps = useCallback(function () {
|
|
38
36
|
switch (status) {
|
|
39
37
|
case statuses.ERROR:
|
|
@@ -56,7 +54,9 @@ var FileItem = function FileItem(props) {
|
|
|
56
54
|
}
|
|
57
55
|
}, [status]);
|
|
58
56
|
var handleDownloadPress = function handleDownloadPress() {
|
|
59
|
-
downloadRef.current
|
|
57
|
+
if (downloadRef.current) {
|
|
58
|
+
downloadRef.current.click();
|
|
59
|
+
}
|
|
60
60
|
};
|
|
61
61
|
return ___EmotionJSX(Box, {
|
|
62
62
|
isRow: true,
|
|
@@ -66,9 +66,9 @@ var FileItem = function FileItem(props) {
|
|
|
66
66
|
}, ___EmotionJSX(Icon, _extends({
|
|
67
67
|
size: 15,
|
|
68
68
|
"data-testid": "file-uploaded__file-icon"
|
|
69
|
-
}, getFileIconProps(), {
|
|
69
|
+
}, _objectSpread(_objectSpread({}, getFileIconProps()), {}, {
|
|
70
70
|
isDisabled: isDisabled
|
|
71
|
-
})), ___EmotionJSX(Button, {
|
|
71
|
+
}))), ___EmotionJSX(Button, {
|
|
72
72
|
variant: "forms.fileInputField.button",
|
|
73
73
|
mx: 5,
|
|
74
74
|
isDisabled: isDisabled,
|
|
@@ -105,12 +105,4 @@ var FileItem = function FileItem(props) {
|
|
|
105
105
|
id: "file-uploaded__download-link-".concat(id)
|
|
106
106
|
})));
|
|
107
107
|
};
|
|
108
|
-
export default FileItem;
|
|
109
|
-
FileItem.propTypes = _objectSpread({
|
|
110
|
-
downloadLink: PropTypes.string,
|
|
111
|
-
handleFileDelete: PropTypes.func,
|
|
112
|
-
id: PropTypes.string,
|
|
113
|
-
isDisabled: PropTypes.bool,
|
|
114
|
-
name: PropTypes.string,
|
|
115
|
-
textProps: PropTypes.shape({})
|
|
116
|
-
}, statusPropTypes);
|
|
108
|
+
export default FileItem;
|
|
@@ -1,21 +1,9 @@
|
|
|
1
|
-
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
2
|
-
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
3
|
-
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
4
|
-
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
|
5
|
-
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
|
6
|
-
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
|
7
|
-
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
|
8
|
-
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
9
|
-
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
10
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
11
2
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
|
12
3
|
var _excluded = ["buttonText", "handleFileSelect", "isDisabled", "textProps"];
|
|
13
|
-
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { _defineProperty(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
4
|
import React from 'react';
|
|
16
|
-
import PropTypes from 'prop-types';
|
|
17
5
|
import { Button, Text } from '../..';
|
|
18
|
-
import {
|
|
6
|
+
import { getAriaAttributeProps } from '../../utils/docUtils/ariaAttributes';
|
|
19
7
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
20
8
|
var FileSelect = function FileSelect(_ref) {
|
|
21
9
|
var buttonText = _ref.buttonText,
|
|
@@ -37,10 +25,4 @@ var FileSelect = function FileSelect(_ref) {
|
|
|
37
25
|
color: "active"
|
|
38
26
|
}, textProps), buttonText));
|
|
39
27
|
};
|
|
40
|
-
export default FileSelect;
|
|
41
|
-
FileSelect.propTypes = _objectSpread({
|
|
42
|
-
buttonText: PropTypes.string,
|
|
43
|
-
handleFileSelect: PropTypes.func,
|
|
44
|
-
isDisabled: PropTypes.bool,
|
|
45
|
-
textProps: PropTypes.shape({})
|
|
46
|
-
}, ariaAttributesBasePropTypes);
|
|
28
|
+
export default FileSelect;
|
|
@@ -67,6 +67,7 @@ var parsePaste = function parsePaste(raw) {
|
|
|
67
67
|
};
|
|
68
68
|
};
|
|
69
69
|
var PhoneNumberField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
70
|
+
var _fieldControlInputPro;
|
|
70
71
|
var countryValue = props.countryValue,
|
|
71
72
|
defaultCountryValue = props.defaultCountryValue,
|
|
72
73
|
helperText = props.helperText,
|
|
@@ -229,6 +230,14 @@ var PhoneNumberField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
229
230
|
borderBottomRightRadius: '0 !important'
|
|
230
231
|
}
|
|
231
232
|
});
|
|
233
|
+
var countryPickerScrollBoxSx = {
|
|
234
|
+
minWidth: 0,
|
|
235
|
+
'@media screen and (max-width: 500px)': {
|
|
236
|
+
width: '100%',
|
|
237
|
+
maxWidth: '100%',
|
|
238
|
+
overflowX: 'hidden'
|
|
239
|
+
}
|
|
240
|
+
};
|
|
232
241
|
var countryLabel = function countryLabel(c) {
|
|
233
242
|
var _context4, _context5;
|
|
234
243
|
return _concatInstanceProperty(_context4 = _concatInstanceProperty(_context5 = "".concat(c.name)).call(_context5, c.name !== c["native"] ? " (".concat(c["native"], ")") : '', " +")).call(_context4, c.phone.split(',')[0]);
|
|
@@ -264,9 +273,7 @@ var PhoneNumberField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
264
273
|
},
|
|
265
274
|
scrollBoxProps: {
|
|
266
275
|
maxHeight: '215px',
|
|
267
|
-
sx:
|
|
268
|
-
minWidth: '280px'
|
|
269
|
-
}
|
|
276
|
+
sx: countryPickerScrollBoxSx
|
|
270
277
|
},
|
|
271
278
|
items: fieldState.items,
|
|
272
279
|
inputValue: currentCountryInputValue,
|
|
@@ -281,14 +288,17 @@ var PhoneNumberField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
281
288
|
textValue: "+".concat(item[1].phone.split(',')[0])
|
|
282
289
|
}, countryLabel(item[1]));
|
|
283
290
|
}), ___EmotionJSX(Box, {
|
|
291
|
+
className: (_fieldControlInputPro = fieldControlInputProps.className) !== null && _fieldControlInputPro !== void 0 && _includesInstanceProperty(_fieldControlInputPro).call(_fieldControlInputPro, 'is-focused') ? 'phone-number-field__input-focused' : undefined,
|
|
284
292
|
sx: {
|
|
285
|
-
ml: '
|
|
286
|
-
width: 'calc(100% -
|
|
293
|
+
ml: '109px',
|
|
294
|
+
width: 'calc(100% - 109px)',
|
|
287
295
|
visibility: fieldState.isOpen ? 'hidden' : undefined,
|
|
296
|
+
'&.phone-number-field__input-focused': {
|
|
297
|
+
ml: '111px'
|
|
298
|
+
},
|
|
288
299
|
'& input': {
|
|
289
300
|
borderTopLeftRadius: '0 !important',
|
|
290
|
-
borderBottomLeftRadius: '0 !important'
|
|
291
|
-
borderLeft: 0
|
|
301
|
+
borderBottomLeftRadius: '0 !important'
|
|
292
302
|
}
|
|
293
303
|
}
|
|
294
304
|
}, ___EmotionJSX(Input, _extends({
|
|
@@ -1,6 +1,28 @@
|
|
|
1
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
|
2
|
+
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
3
|
+
import _Object$create from "@babel/runtime-corejs3/core-js-stable/object/create";
|
|
4
|
+
import _bindInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/bind";
|
|
5
|
+
import _Object$getPrototypeOf from "@babel/runtime-corejs3/core-js-stable/object/get-prototype-of";
|
|
6
|
+
import _Object$setPrototypeOf from "@babel/runtime-corejs3/core-js-stable/object/set-prototype-of";
|
|
7
|
+
import _Symbol$asyncIterator from "@babel/runtime-corejs3/core-js-stable/symbol/async-iterator";
|
|
8
|
+
import _Promise from "@babel/runtime-corejs3/core-js-stable/promise";
|
|
9
|
+
import _Symbol$iterator from "@babel/runtime-corejs3/core-js-stable/symbol/iterator";
|
|
10
|
+
import _reverseInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/reverse";
|
|
11
|
+
import _typeof from "@babel/runtime-corejs3/helpers/esm/typeof";
|
|
12
|
+
import _asyncToGenerator from "@babel/runtime-corejs3/helpers/esm/asyncToGenerator";
|
|
1
13
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
14
|
+
function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (_Object$getPrototypeOf ? _Object$getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { "throw": 1, "return": 2, "break": 3, "continue": 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, "catch": function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && _reverseInstanceProperty(o).call(o)); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
|
|
15
|
+
function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof _Symbol && _Symbol$iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
|
|
16
|
+
function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
|
|
17
|
+
function _regeneratorAsync(n, e, r, t, o) { var a = _regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { return n.done ? n.value : a.next(); }); }
|
|
18
|
+
function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || _Promise); }
|
|
19
|
+
function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o), u = c.value; return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) { n("next", t, i, f); }, function (t) { n("throw", t, i, f); }) : e.resolve(u).then(function (t) { c.value = t, i(c); }, function (t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (_regeneratorDefine2(_regeneratorAsyncIterator.prototype), _regeneratorDefine2(_regeneratorAsyncIterator.prototype, "function" == typeof _Symbol && _Symbol$asyncIterator || "@asyncIterator", function () { return this; })), _regeneratorDefine2(this, "_invoke", function (t, o, i) { function f() { return new e(function (e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); }
|
|
20
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof _Symbol ? _Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = _Object$create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: _bindInstanceProperty(d).call(d, e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = _Object$getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(c); function f(e) { return _Object$setPrototypeOf ? _Object$setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = _Object$create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
21
|
+
function _regeneratorDefine2(e, r, n, t) { var i = _Object$defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
22
|
+
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
2
23
|
import React from 'react';
|
|
3
|
-
import { createEvent, fireEvent, render, screen } from '@testing-library/react';
|
|
24
|
+
import { createEvent, fireEvent, render, screen, within } from '@testing-library/react';
|
|
25
|
+
import userEvent from '@testing-library/user-event';
|
|
4
26
|
import { universalComponentTests } from '../../utils/testUtils/universalComponentTest';
|
|
5
27
|
import { universalFieldComponentTests } from '../../utils/testUtils/universalFormSubmitTest';
|
|
6
28
|
import PhoneNumberField from '.';
|
|
@@ -38,6 +60,95 @@ test('default render has label, phone input, and country combobox', function ()
|
|
|
38
60
|
expect(screen.getByRole('textbox')).toBeInTheDocument();
|
|
39
61
|
expect(screen.getByRole('combobox')).toBeInTheDocument();
|
|
40
62
|
});
|
|
63
|
+
test('telephone input receives focus after tabbing from country picker', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
64
|
+
var countryPicker, phoneInput;
|
|
65
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
66
|
+
while (1) switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
getComponent();
|
|
69
|
+
countryPicker = screen.getByRole('combobox', {
|
|
70
|
+
name: 'Country Picker'
|
|
71
|
+
});
|
|
72
|
+
phoneInput = screen.getByRole('textbox');
|
|
73
|
+
_context.next = 5;
|
|
74
|
+
return userEvent.tab();
|
|
75
|
+
case 5:
|
|
76
|
+
expect(countryPicker).toHaveFocus();
|
|
77
|
+
_context.next = 8;
|
|
78
|
+
return userEvent.tab();
|
|
79
|
+
case 8:
|
|
80
|
+
expect(phoneInput).toHaveFocus();
|
|
81
|
+
expect(phoneInput).toHaveClass('is-focused');
|
|
82
|
+
case 10:
|
|
83
|
+
case "end":
|
|
84
|
+
return _context.stop();
|
|
85
|
+
}
|
|
86
|
+
}, _callee);
|
|
87
|
+
})));
|
|
88
|
+
test('narrow country picker stays accessible and locally constrained when opened', /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
89
|
+
var narrowAvailableWidth, offsetWidthSpy, clientWidthSpy, clientHeightSpy, _listbox$parentElemen, countryPicker, listbox, options, popover, scrollBox;
|
|
90
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
91
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
92
|
+
case 0:
|
|
93
|
+
narrowAvailableWidth = 480;
|
|
94
|
+
offsetWidthSpy = jest.spyOn(window.HTMLElement.prototype, 'offsetWidth', 'get').mockImplementation(function getOffsetWidth() {
|
|
95
|
+
return this.querySelector('input') ? narrowAvailableWidth : 0;
|
|
96
|
+
});
|
|
97
|
+
clientWidthSpy = jest.spyOn(window.HTMLElement.prototype, 'clientWidth', 'get').mockReturnValue(narrowAvailableWidth);
|
|
98
|
+
clientHeightSpy = jest.spyOn(window.HTMLElement.prototype, 'clientHeight', 'get').mockReturnValue(1000);
|
|
99
|
+
_context2.prev = 4;
|
|
100
|
+
getComponent({
|
|
101
|
+
sx: {
|
|
102
|
+
width: "".concat(narrowAvailableWidth, "px")
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
countryPicker = screen.getByRole('combobox', {
|
|
106
|
+
name: 'Country Picker'
|
|
107
|
+
});
|
|
108
|
+
_context2.next = 9;
|
|
109
|
+
return userEvent.click(countryPicker);
|
|
110
|
+
case 9:
|
|
111
|
+
_context2.next = 11;
|
|
112
|
+
return screen.findByRole('listbox');
|
|
113
|
+
case 11:
|
|
114
|
+
listbox = _context2.sent;
|
|
115
|
+
options = within(listbox).getAllByRole('option', {
|
|
116
|
+
hidden: true
|
|
117
|
+
});
|
|
118
|
+
popover = listbox.closest('[role="presentation"]');
|
|
119
|
+
scrollBox = (_listbox$parentElemen = listbox.parentElement) === null || _listbox$parentElemen === void 0 ? void 0 : _listbox$parentElemen.parentElement;
|
|
120
|
+
expect(countryPicker).toHaveAttribute('aria-expanded', 'true');
|
|
121
|
+
expect(options.length).toBeGreaterThan(0);
|
|
122
|
+
expect(popover).toHaveStyle({
|
|
123
|
+
width: "".concat(narrowAvailableWidth, "px")
|
|
124
|
+
});
|
|
125
|
+
expect(popover).not.toHaveStyle({
|
|
126
|
+
'min-width': '280px'
|
|
127
|
+
});
|
|
128
|
+
expect(scrollBox).toHaveStyle({
|
|
129
|
+
'min-width': '0'
|
|
130
|
+
});
|
|
131
|
+
expect(scrollBox).toHaveStyleRule('width', '100%', {
|
|
132
|
+
media: 'screen and (max-width: 500px)'
|
|
133
|
+
});
|
|
134
|
+
expect(scrollBox).toHaveStyleRule('max-width', '100%', {
|
|
135
|
+
media: 'screen and (max-width: 500px)'
|
|
136
|
+
});
|
|
137
|
+
expect(scrollBox).toHaveStyleRule('overflow-x', 'hidden', {
|
|
138
|
+
media: 'screen and (max-width: 500px)'
|
|
139
|
+
});
|
|
140
|
+
case 23:
|
|
141
|
+
_context2.prev = 23;
|
|
142
|
+
offsetWidthSpy.mockRestore();
|
|
143
|
+
clientWidthSpy.mockRestore();
|
|
144
|
+
clientHeightSpy.mockRestore();
|
|
145
|
+
return _context2.finish(23);
|
|
146
|
+
case 28:
|
|
147
|
+
case "end":
|
|
148
|
+
return _context2.stop();
|
|
149
|
+
}
|
|
150
|
+
}, _callee2, null, [[4,, 23, 28]]);
|
|
151
|
+
})));
|
|
41
152
|
test('typing a non-numeric character does not update phone input value', function () {
|
|
42
153
|
getComponent();
|
|
43
154
|
var phoneInput = screen.getByRole('textbox');
|
|
@@ -310,7 +310,11 @@ var rockerButton = {
|
|
|
310
310
|
thumbSwitch: {
|
|
311
311
|
textTransform: 'none',
|
|
312
312
|
backgroundColor: 'backgroundBase',
|
|
313
|
-
|
|
313
|
+
px: '20px',
|
|
314
|
+
py: '12px',
|
|
315
|
+
fontSize: 'md',
|
|
316
|
+
fontWeight: 0,
|
|
317
|
+
lineHeight: 'body',
|
|
314
318
|
height: '50px',
|
|
315
319
|
color: 'active',
|
|
316
320
|
border: '1px solid',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/types/index.js
CHANGED
|
@@ -19,6 +19,7 @@ export * from './datePicker';
|
|
|
19
19
|
export * from './environmentBreadcrumb';
|
|
20
20
|
export * from './expandableText';
|
|
21
21
|
export * from './fieldHelperText';
|
|
22
|
+
export * from './fileInputField';
|
|
22
23
|
export * from './footer';
|
|
23
24
|
export * from './grid';
|
|
24
25
|
export * from './helpHint';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pingux/astro",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.221.1-alpha.0",
|
|
4
4
|
"description": "React component library for Ping Identity's design system",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@internationalized/number": "^3.6.0",
|
|
47
47
|
"@monaco-editor/react": "4.4.2",
|
|
48
48
|
"@pingux/mdi-react": "^1.2.0",
|
|
49
|
-
"@pingux/onyx-tokens": "^0.41.
|
|
49
|
+
"@pingux/onyx-tokens": "^0.41.3-alpha.0",
|
|
50
50
|
"@react-aria/accordion": "~3.0.0-alpha.11",
|
|
51
51
|
"@react-aria/breadcrumbs": "^3.1.4",
|
|
52
52
|
"@react-aria/button": "^3.13.2",
|