@zendeskgarden/react-forms 9.0.0-next.7 → 9.0.0-next.8
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/esm/elements/Checkbox.js +97 -0
- package/dist/esm/elements/FileUpload.js +75 -0
- package/dist/esm/elements/Input.js +93 -0
- package/dist/esm/elements/MediaInput.js +156 -0
- package/dist/esm/elements/Radio.js +81 -0
- package/dist/esm/elements/Range.js +108 -0
- package/dist/esm/elements/Select.js +97 -0
- package/dist/esm/elements/Textarea.js +170 -0
- package/dist/esm/elements/Toggle.js +81 -0
- package/dist/esm/elements/common/Field.js +97 -0
- package/dist/esm/elements/common/Fieldset.js +73 -0
- package/dist/esm/elements/common/Hint.js +92 -0
- package/dist/esm/elements/common/Label.js +134 -0
- package/dist/esm/elements/common/Legend.js +63 -0
- package/dist/esm/elements/common/Message.js +113 -0
- package/dist/esm/elements/faux-input/FauxInput.js +100 -0
- package/dist/esm/elements/faux-input/components/EndIcon.js +59 -0
- package/dist/esm/elements/faux-input/components/StartIcon.js +59 -0
- package/dist/esm/elements/file-list/FileList.js +66 -0
- package/dist/esm/elements/file-list/components/Close.js +75 -0
- package/dist/esm/elements/file-list/components/Delete.js +75 -0
- package/dist/esm/elements/file-list/components/File.js +94 -0
- package/dist/esm/elements/file-list/components/Item.js +64 -0
- package/dist/esm/elements/file-list/utils.js +50 -0
- package/dist/esm/elements/input-group/InputGroup.js +75 -0
- package/dist/esm/elements/tiles/Tiles.js +64 -0
- package/dist/esm/elements/tiles/components/Description.js +64 -0
- package/dist/esm/elements/tiles/components/Icon.js +64 -0
- package/dist/esm/elements/tiles/components/Label.js +73 -0
- package/dist/esm/elements/tiles/components/Tile.js +91 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/check-circle-stroke.svg.js +33 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/check-sm-fill.svg.js +29 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/circle-sm-fill.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/dash-fill.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-document-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-error-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-generic-stroke.svg.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-image-stroke.svg.js +33 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-pdf-stroke.svg.js +35 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-presentation-stroke.svg.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-spreadsheet-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-zip-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/trash-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/x-stroke.svg.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/alert-error-stroke.svg.js +37 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/alert-warning-stroke.svg.js +32 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/check-circle-stroke.svg.js +33 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-down-stroke.svg.js +25 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/circle-sm-fill.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-document-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-error-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-generic-stroke.svg.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-image-stroke.svg.js +32 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-pdf-stroke.svg.js +35 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-presentation-stroke.svg.js +26 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-spreadsheet-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-zip-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/trash-stroke.svg.js +27 -0
- package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/x-stroke.svg.js +26 -0
- package/dist/esm/styled/checkbox/StyledCheckHint.js +23 -0
- package/dist/esm/styled/checkbox/StyledCheckInput.js +34 -0
- package/dist/esm/styled/checkbox/StyledCheckLabel.js +23 -0
- package/dist/esm/styled/checkbox/StyledCheckMessage.js +23 -0
- package/dist/esm/styled/checkbox/StyledCheckSvg.js +25 -0
- package/dist/esm/styled/checkbox/StyledDashSvg.js +25 -0
- package/dist/esm/styled/common/StyledField.js +22 -0
- package/dist/esm/styled/common/StyledFieldset.js +24 -0
- package/dist/esm/styled/common/StyledHint.js +22 -0
- package/dist/esm/styled/common/StyledLabel.js +23 -0
- package/dist/esm/styled/common/StyledLegend.js +24 -0
- package/dist/esm/styled/common/StyledMessage.js +40 -0
- package/dist/esm/styled/common/StyledMessageIcon.js +45 -0
- package/dist/esm/styled/file-list/StyledFile.js +76 -0
- package/dist/esm/styled/file-list/StyledFileClose.js +22 -0
- package/dist/esm/styled/file-list/StyledFileDelete.js +23 -0
- package/dist/esm/styled/file-list/StyledFileIcon.js +31 -0
- package/dist/esm/styled/file-list/StyledFileList.js +22 -0
- package/dist/esm/styled/file-list/StyledFileListItem.js +24 -0
- package/dist/esm/styled/file-upload/StyledFileUpload.js +47 -0
- package/dist/esm/styled/input-group/StyledInputGroup.js +35 -0
- package/dist/esm/styled/radio/StyledRadioHint.js +24 -0
- package/dist/esm/styled/radio/StyledRadioInput.js +61 -0
- package/dist/esm/styled/radio/StyledRadioLabel.js +30 -0
- package/dist/esm/styled/radio/StyledRadioMessage.js +24 -0
- package/dist/esm/styled/radio/StyledRadioSvg.js +25 -0
- package/dist/esm/styled/range/StyledRangeInput.js +160 -0
- package/dist/esm/styled/select/StyledSelect.js +36 -0
- package/dist/esm/styled/select/StyledSelectWrapper.js +24 -0
- package/dist/esm/styled/text/StyledTextFauxInput.js +61 -0
- package/dist/esm/styled/text/StyledTextInput.js +107 -0
- package/dist/esm/styled/text/StyledTextMediaFigure.js +57 -0
- package/dist/esm/styled/text/StyledTextMediaInput.js +24 -0
- package/dist/esm/styled/text/StyledTextarea.js +33 -0
- package/dist/esm/styled/tiles/StyledTile.js +55 -0
- package/dist/esm/styled/tiles/StyledTileDescription.js +34 -0
- package/dist/esm/styled/tiles/StyledTileIcon.js +38 -0
- package/dist/esm/styled/tiles/StyledTileInput.js +18 -0
- package/dist/esm/styled/tiles/StyledTileLabel.js +36 -0
- package/dist/esm/styled/toggle/StyledToggleHint.js +24 -0
- package/dist/esm/styled/toggle/StyledToggleInput.js +40 -0
- package/dist/esm/styled/toggle/StyledToggleLabel.js +28 -0
- package/dist/esm/styled/toggle/StyledToggleMessage.js +25 -0
- package/dist/esm/styled/toggle/StyledToggleSvg.js +23 -0
- package/dist/esm/types/index.js +11 -0
- package/dist/esm/utils/useFieldContext.js +15 -0
- package/dist/esm/utils/useFieldsetContext.js +15 -0
- package/dist/esm/utils/useFileContext.js +14 -0
- package/dist/esm/utils/useInputContext.js +14 -0
- package/dist/esm/utils/useInputGroupContext.js +14 -0
- package/dist/esm/utils/useTilesContext.js +14 -0
- package/dist/index.cjs.js +91 -97
- package/package.json +5 -5
- package/dist/index.esm.js +0 -2720
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
10
|
+
import { InputContext } from '../utils/useInputContext.js';
|
|
11
|
+
import '../styled/common/StyledField.js';
|
|
12
|
+
import '../styled/common/StyledFieldset.js';
|
|
13
|
+
import '../styled/common/StyledLegend.js';
|
|
14
|
+
import '../styled/common/StyledHint.js';
|
|
15
|
+
import '../styled/common/StyledLabel.js';
|
|
16
|
+
import '../styled/common/StyledMessage.js';
|
|
17
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
18
|
+
import '../styled/text/StyledTextInput.js';
|
|
19
|
+
import '../styled/text/StyledTextarea.js';
|
|
20
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
21
|
+
import '../styled/text/StyledTextMediaInput.js';
|
|
22
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
23
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
24
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
25
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
26
|
+
import { StyledCheckInput } from '../styled/checkbox/StyledCheckInput.js';
|
|
27
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
28
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
29
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
30
|
+
import '../styled/file-upload/StyledFileUpload.js';
|
|
31
|
+
import '../styled/file-list/StyledFile.js';
|
|
32
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
33
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
34
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
35
|
+
import '../styled/file-list/StyledFileList.js';
|
|
36
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
37
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
38
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
39
|
+
import '../styled/radio/StyledRadioInput.js';
|
|
40
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
41
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
42
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
43
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
45
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
46
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
47
|
+
import '../styled/select/StyledSelect.js';
|
|
48
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
49
|
+
import '../styled/range/StyledRangeInput.js';
|
|
50
|
+
import '../styled/tiles/StyledTile.js';
|
|
51
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
52
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
53
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
54
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
55
|
+
import useFieldsetContext from '../utils/useFieldsetContext.js';
|
|
56
|
+
|
|
57
|
+
const Checkbox = React__default.forwardRef((_ref, ref) => {
|
|
58
|
+
let {
|
|
59
|
+
indeterminate,
|
|
60
|
+
children,
|
|
61
|
+
...props
|
|
62
|
+
} = _ref;
|
|
63
|
+
const fieldsetContext = useFieldsetContext();
|
|
64
|
+
const fieldContext = useFieldContext();
|
|
65
|
+
const inputRef = inputElement => {
|
|
66
|
+
inputElement && (inputElement.indeterminate = indeterminate);
|
|
67
|
+
};
|
|
68
|
+
const combinedRef = inputElement => {
|
|
69
|
+
[inputRef, ref].forEach(targetRef => {
|
|
70
|
+
if (targetRef) {
|
|
71
|
+
if (typeof targetRef === 'function') {
|
|
72
|
+
targetRef(inputElement);
|
|
73
|
+
} else {
|
|
74
|
+
targetRef.current = inputElement;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
let combinedProps = {
|
|
80
|
+
ref: combinedRef,
|
|
81
|
+
...props,
|
|
82
|
+
...fieldsetContext
|
|
83
|
+
};
|
|
84
|
+
if (fieldContext) {
|
|
85
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
86
|
+
}
|
|
87
|
+
return React__default.createElement(InputContext.Provider, {
|
|
88
|
+
value: "checkbox"
|
|
89
|
+
}, React__default.createElement(StyledCheckInput, combinedProps), children);
|
|
90
|
+
});
|
|
91
|
+
Checkbox.displayName = 'Checkbox';
|
|
92
|
+
Checkbox.propTypes = {
|
|
93
|
+
isCompact: PropTypes.bool,
|
|
94
|
+
indeterminate: PropTypes.bool
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export { Checkbox };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import '../styled/common/StyledField.js';
|
|
10
|
+
import '../styled/common/StyledFieldset.js';
|
|
11
|
+
import '../styled/common/StyledLegend.js';
|
|
12
|
+
import '../styled/common/StyledHint.js';
|
|
13
|
+
import '../styled/common/StyledLabel.js';
|
|
14
|
+
import '../styled/common/StyledMessage.js';
|
|
15
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
16
|
+
import '../styled/text/StyledTextInput.js';
|
|
17
|
+
import '../styled/text/StyledTextarea.js';
|
|
18
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
19
|
+
import '../styled/text/StyledTextMediaInput.js';
|
|
20
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
21
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
22
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
23
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
24
|
+
import '../styled/checkbox/StyledCheckInput.js';
|
|
25
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
26
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
27
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
28
|
+
import { StyledFileUpload } from '../styled/file-upload/StyledFileUpload.js';
|
|
29
|
+
import '../styled/file-list/StyledFile.js';
|
|
30
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
31
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
32
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
33
|
+
import '../styled/file-list/StyledFileList.js';
|
|
34
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
35
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
36
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
37
|
+
import '../styled/radio/StyledRadioInput.js';
|
|
38
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
39
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
40
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
41
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
42
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
43
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
45
|
+
import '../styled/select/StyledSelect.js';
|
|
46
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
47
|
+
import '../styled/range/StyledRangeInput.js';
|
|
48
|
+
import '../styled/tiles/StyledTile.js';
|
|
49
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
50
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
51
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
52
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
53
|
+
|
|
54
|
+
const FileUpload = React__default.forwardRef((_ref, ref) => {
|
|
55
|
+
let {
|
|
56
|
+
disabled,
|
|
57
|
+
...props
|
|
58
|
+
} = _ref;
|
|
59
|
+
return (
|
|
60
|
+
React__default.createElement(StyledFileUpload, Object.assign({
|
|
61
|
+
ref: ref,
|
|
62
|
+
"aria-disabled": disabled
|
|
63
|
+
}, props, {
|
|
64
|
+
role: "button"
|
|
65
|
+
}))
|
|
66
|
+
);
|
|
67
|
+
});
|
|
68
|
+
FileUpload.propTypes = {
|
|
69
|
+
isDragging: PropTypes.bool,
|
|
70
|
+
isCompact: PropTypes.bool,
|
|
71
|
+
disabled: PropTypes.bool
|
|
72
|
+
};
|
|
73
|
+
FileUpload.displayName = 'FileUpload';
|
|
74
|
+
|
|
75
|
+
export { FileUpload };
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { composeEventHandlers } from '@zendeskgarden/container-utilities';
|
|
10
|
+
import { VALIDATION } from '../types/index.js';
|
|
11
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
12
|
+
import { useInputGroupContext } from '../utils/useInputGroupContext.js';
|
|
13
|
+
import '../styled/common/StyledField.js';
|
|
14
|
+
import '../styled/common/StyledFieldset.js';
|
|
15
|
+
import '../styled/common/StyledLegend.js';
|
|
16
|
+
import '../styled/common/StyledHint.js';
|
|
17
|
+
import '../styled/common/StyledLabel.js';
|
|
18
|
+
import '../styled/common/StyledMessage.js';
|
|
19
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
20
|
+
import { StyledTextInput } from '../styled/text/StyledTextInput.js';
|
|
21
|
+
import '../styled/text/StyledTextarea.js';
|
|
22
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
23
|
+
import '../styled/text/StyledTextMediaInput.js';
|
|
24
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
25
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
26
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
27
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
28
|
+
import '../styled/checkbox/StyledCheckInput.js';
|
|
29
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
30
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
31
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
32
|
+
import '../styled/file-upload/StyledFileUpload.js';
|
|
33
|
+
import '../styled/file-list/StyledFile.js';
|
|
34
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
35
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
36
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
37
|
+
import '../styled/file-list/StyledFileList.js';
|
|
38
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
39
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
40
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
41
|
+
import '../styled/radio/StyledRadioInput.js';
|
|
42
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
43
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
45
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
46
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
47
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
48
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
49
|
+
import '../styled/select/StyledSelect.js';
|
|
50
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
51
|
+
import '../styled/range/StyledRangeInput.js';
|
|
52
|
+
import '../styled/tiles/StyledTile.js';
|
|
53
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
54
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
55
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
56
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
57
|
+
|
|
58
|
+
const Input = React__default.forwardRef((_ref, ref) => {
|
|
59
|
+
let {
|
|
60
|
+
onSelect,
|
|
61
|
+
...props
|
|
62
|
+
} = _ref;
|
|
63
|
+
const fieldContext = useFieldContext();
|
|
64
|
+
const inputGroupContext = useInputGroupContext();
|
|
65
|
+
const onSelectHandler = props.readOnly ? composeEventHandlers(onSelect, event => {
|
|
66
|
+
event.currentTarget.select();
|
|
67
|
+
}) : onSelect;
|
|
68
|
+
let combinedProps = {
|
|
69
|
+
ref,
|
|
70
|
+
onSelect: onSelectHandler,
|
|
71
|
+
...props
|
|
72
|
+
};
|
|
73
|
+
if (inputGroupContext) {
|
|
74
|
+
combinedProps = {
|
|
75
|
+
...combinedProps,
|
|
76
|
+
isCompact: inputGroupContext.isCompact || combinedProps.isCompact,
|
|
77
|
+
focusInset: props.focusInset === undefined ? true : props.focusInset
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
if (fieldContext) {
|
|
81
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
82
|
+
}
|
|
83
|
+
return React__default.createElement(StyledTextInput, combinedProps);
|
|
84
|
+
});
|
|
85
|
+
Input.propTypes = {
|
|
86
|
+
isCompact: PropTypes.bool,
|
|
87
|
+
isBare: PropTypes.bool,
|
|
88
|
+
focusInset: PropTypes.bool,
|
|
89
|
+
validation: PropTypes.oneOf(VALIDATION)
|
|
90
|
+
};
|
|
91
|
+
Input.displayName = 'Input';
|
|
92
|
+
|
|
93
|
+
export { Input };
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default, { useRef, useState } from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { composeEventHandlers } from '@zendeskgarden/container-utilities';
|
|
10
|
+
import { mergeRefs } from 'react-merge-refs';
|
|
11
|
+
import { VALIDATION } from '../types/index.js';
|
|
12
|
+
import '../styled/common/StyledField.js';
|
|
13
|
+
import '../styled/common/StyledFieldset.js';
|
|
14
|
+
import '../styled/common/StyledLegend.js';
|
|
15
|
+
import '../styled/common/StyledHint.js';
|
|
16
|
+
import '../styled/common/StyledLabel.js';
|
|
17
|
+
import '../styled/common/StyledMessage.js';
|
|
18
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
19
|
+
import '../styled/text/StyledTextInput.js';
|
|
20
|
+
import '../styled/text/StyledTextarea.js';
|
|
21
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
22
|
+
import { StyledTextMediaInput } from '../styled/text/StyledTextMediaInput.js';
|
|
23
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
24
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
25
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
26
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
27
|
+
import '../styled/checkbox/StyledCheckInput.js';
|
|
28
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
29
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
30
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
31
|
+
import '../styled/file-upload/StyledFileUpload.js';
|
|
32
|
+
import '../styled/file-list/StyledFile.js';
|
|
33
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
34
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
35
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
36
|
+
import '../styled/file-list/StyledFileList.js';
|
|
37
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
38
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
39
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
40
|
+
import '../styled/radio/StyledRadioInput.js';
|
|
41
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
42
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
43
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
45
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
46
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
47
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
48
|
+
import '../styled/select/StyledSelect.js';
|
|
49
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
50
|
+
import '../styled/range/StyledRangeInput.js';
|
|
51
|
+
import '../styled/tiles/StyledTile.js';
|
|
52
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
53
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
54
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
55
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
56
|
+
import { FauxInput } from './faux-input/FauxInput.js';
|
|
57
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
58
|
+
|
|
59
|
+
const MediaInput = React__default.forwardRef((_ref, ref) => {
|
|
60
|
+
let {
|
|
61
|
+
start,
|
|
62
|
+
end,
|
|
63
|
+
disabled,
|
|
64
|
+
isCompact,
|
|
65
|
+
isBare,
|
|
66
|
+
focusInset,
|
|
67
|
+
readOnly,
|
|
68
|
+
validation,
|
|
69
|
+
wrapperProps = {},
|
|
70
|
+
wrapperRef,
|
|
71
|
+
onSelect,
|
|
72
|
+
...props
|
|
73
|
+
} = _ref;
|
|
74
|
+
const fieldContext = useFieldContext();
|
|
75
|
+
const inputRef = useRef();
|
|
76
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
77
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
78
|
+
const {
|
|
79
|
+
onClick,
|
|
80
|
+
onFocus,
|
|
81
|
+
onBlur,
|
|
82
|
+
onMouseOver,
|
|
83
|
+
onMouseOut,
|
|
84
|
+
...otherWrapperProps
|
|
85
|
+
} = wrapperProps;
|
|
86
|
+
const onFauxInputClickHandler = composeEventHandlers(onClick, () => {
|
|
87
|
+
inputRef.current && inputRef.current.focus();
|
|
88
|
+
});
|
|
89
|
+
const onFauxInputFocusHandler = composeEventHandlers(onFocus, () => {
|
|
90
|
+
setIsFocused(true);
|
|
91
|
+
});
|
|
92
|
+
const onFauxInputBlurHandler = composeEventHandlers(onBlur, () => {
|
|
93
|
+
setIsFocused(false);
|
|
94
|
+
});
|
|
95
|
+
const onFauxInputMouseOverHandler = composeEventHandlers(onMouseOver, () => {
|
|
96
|
+
setIsHovered(true);
|
|
97
|
+
});
|
|
98
|
+
const onFauxInputMouseOutHandler = composeEventHandlers(onMouseOut, () => {
|
|
99
|
+
setIsHovered(false);
|
|
100
|
+
});
|
|
101
|
+
const onSelectHandler = readOnly ? composeEventHandlers(onSelect, event => {
|
|
102
|
+
event.currentTarget.select();
|
|
103
|
+
}) : onSelect;
|
|
104
|
+
let combinedProps = {
|
|
105
|
+
disabled,
|
|
106
|
+
readOnly,
|
|
107
|
+
ref: mergeRefs([inputRef, ref]),
|
|
108
|
+
onSelect: onSelectHandler,
|
|
109
|
+
...props
|
|
110
|
+
};
|
|
111
|
+
let isLabelHovered;
|
|
112
|
+
if (fieldContext) {
|
|
113
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
114
|
+
isLabelHovered = fieldContext.isLabelHovered;
|
|
115
|
+
}
|
|
116
|
+
return React__default.createElement(FauxInput, Object.assign({
|
|
117
|
+
tabIndex: null,
|
|
118
|
+
onClick: onFauxInputClickHandler,
|
|
119
|
+
onFocus: onFauxInputFocusHandler,
|
|
120
|
+
onBlur: onFauxInputBlurHandler,
|
|
121
|
+
onMouseOver: onFauxInputMouseOverHandler,
|
|
122
|
+
onMouseOut: onFauxInputMouseOutHandler,
|
|
123
|
+
disabled: disabled,
|
|
124
|
+
isFocused: isFocused,
|
|
125
|
+
isHovered: isHovered || isLabelHovered,
|
|
126
|
+
isCompact: isCompact,
|
|
127
|
+
isBare: isBare,
|
|
128
|
+
focusInset: focusInset,
|
|
129
|
+
readOnly: readOnly,
|
|
130
|
+
validation: validation,
|
|
131
|
+
mediaLayout: true
|
|
132
|
+
}, otherWrapperProps, {
|
|
133
|
+
ref: wrapperRef
|
|
134
|
+
}), start && React__default.createElement(FauxInput.StartIcon, {
|
|
135
|
+
isDisabled: disabled,
|
|
136
|
+
isFocused: isFocused,
|
|
137
|
+
isHovered: isHovered || isLabelHovered
|
|
138
|
+
}, start), React__default.createElement(StyledTextMediaInput, combinedProps), end && React__default.createElement(FauxInput.EndIcon, {
|
|
139
|
+
isDisabled: disabled,
|
|
140
|
+
isFocused: isFocused,
|
|
141
|
+
isHovered: isHovered || isLabelHovered
|
|
142
|
+
}, end));
|
|
143
|
+
});
|
|
144
|
+
MediaInput.propTypes = {
|
|
145
|
+
isCompact: PropTypes.bool,
|
|
146
|
+
isBare: PropTypes.bool,
|
|
147
|
+
focusInset: PropTypes.bool,
|
|
148
|
+
validation: PropTypes.oneOf(VALIDATION),
|
|
149
|
+
start: PropTypes.any,
|
|
150
|
+
end: PropTypes.any,
|
|
151
|
+
wrapperProps: PropTypes.object,
|
|
152
|
+
wrapperRef: PropTypes.any
|
|
153
|
+
};
|
|
154
|
+
MediaInput.displayName = 'MediaInput';
|
|
155
|
+
|
|
156
|
+
export { MediaInput };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
10
|
+
import { InputContext } from '../utils/useInputContext.js';
|
|
11
|
+
import '../styled/common/StyledField.js';
|
|
12
|
+
import '../styled/common/StyledFieldset.js';
|
|
13
|
+
import '../styled/common/StyledLegend.js';
|
|
14
|
+
import '../styled/common/StyledHint.js';
|
|
15
|
+
import '../styled/common/StyledLabel.js';
|
|
16
|
+
import '../styled/common/StyledMessage.js';
|
|
17
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
18
|
+
import '../styled/text/StyledTextInput.js';
|
|
19
|
+
import '../styled/text/StyledTextarea.js';
|
|
20
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
21
|
+
import '../styled/text/StyledTextMediaInput.js';
|
|
22
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
23
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
24
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
25
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
26
|
+
import '../styled/checkbox/StyledCheckInput.js';
|
|
27
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
28
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
29
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
30
|
+
import '../styled/file-upload/StyledFileUpload.js';
|
|
31
|
+
import '../styled/file-list/StyledFile.js';
|
|
32
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
33
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
34
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
35
|
+
import '../styled/file-list/StyledFileList.js';
|
|
36
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
37
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
38
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
39
|
+
import { StyledRadioInput } from '../styled/radio/StyledRadioInput.js';
|
|
40
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
41
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
42
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
43
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
45
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
46
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
47
|
+
import '../styled/select/StyledSelect.js';
|
|
48
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
49
|
+
import '../styled/range/StyledRangeInput.js';
|
|
50
|
+
import '../styled/tiles/StyledTile.js';
|
|
51
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
52
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
53
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
54
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
55
|
+
import useFieldsetContext from '../utils/useFieldsetContext.js';
|
|
56
|
+
|
|
57
|
+
const Radio = React__default.forwardRef((_ref, ref) => {
|
|
58
|
+
let {
|
|
59
|
+
children,
|
|
60
|
+
...props
|
|
61
|
+
} = _ref;
|
|
62
|
+
const fieldsetContext = useFieldsetContext();
|
|
63
|
+
const fieldContext = useFieldContext();
|
|
64
|
+
let combinedProps = {
|
|
65
|
+
ref,
|
|
66
|
+
...props,
|
|
67
|
+
...fieldsetContext
|
|
68
|
+
};
|
|
69
|
+
if (fieldContext) {
|
|
70
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
71
|
+
}
|
|
72
|
+
return React__default.createElement(InputContext.Provider, {
|
|
73
|
+
value: "radio"
|
|
74
|
+
}, React__default.createElement(StyledRadioInput, combinedProps), children);
|
|
75
|
+
});
|
|
76
|
+
Radio.displayName = 'Radio';
|
|
77
|
+
Radio.propTypes = {
|
|
78
|
+
isCompact: PropTypes.bool
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export { Radio };
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Zendesk, Inc.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed under the Apache License, Version 2.0
|
|
5
|
+
* found at http://www.apache.org/licenses/LICENSE-2.0.
|
|
6
|
+
*/
|
|
7
|
+
import React__default, { useState, useRef, useCallback, useEffect } from 'react';
|
|
8
|
+
import { composeEventHandlers } from '@zendeskgarden/container-utilities';
|
|
9
|
+
import { mergeRefs } from 'react-merge-refs';
|
|
10
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
11
|
+
import '../styled/common/StyledField.js';
|
|
12
|
+
import '../styled/common/StyledFieldset.js';
|
|
13
|
+
import '../styled/common/StyledLegend.js';
|
|
14
|
+
import '../styled/common/StyledHint.js';
|
|
15
|
+
import '../styled/common/StyledLabel.js';
|
|
16
|
+
import '../styled/common/StyledMessage.js';
|
|
17
|
+
import '../styled/common/StyledMessageIcon.js';
|
|
18
|
+
import '../styled/text/StyledTextInput.js';
|
|
19
|
+
import '../styled/text/StyledTextarea.js';
|
|
20
|
+
import '../styled/text/StyledTextFauxInput.js';
|
|
21
|
+
import '../styled/text/StyledTextMediaInput.js';
|
|
22
|
+
import '../styled/text/StyledTextMediaFigure.js';
|
|
23
|
+
import '../styled/input-group/StyledInputGroup.js';
|
|
24
|
+
import '../styled/checkbox/StyledCheckLabel.js';
|
|
25
|
+
import '../styled/checkbox/StyledCheckHint.js';
|
|
26
|
+
import '../styled/checkbox/StyledCheckInput.js';
|
|
27
|
+
import '../styled/checkbox/StyledCheckMessage.js';
|
|
28
|
+
import '../styled/checkbox/StyledCheckSvg.js';
|
|
29
|
+
import '../styled/checkbox/StyledDashSvg.js';
|
|
30
|
+
import '../styled/file-upload/StyledFileUpload.js';
|
|
31
|
+
import '../styled/file-list/StyledFile.js';
|
|
32
|
+
import '../styled/file-list/StyledFileClose.js';
|
|
33
|
+
import '../styled/file-list/StyledFileDelete.js';
|
|
34
|
+
import '../styled/file-list/StyledFileIcon.js';
|
|
35
|
+
import '../styled/file-list/StyledFileList.js';
|
|
36
|
+
import '../styled/file-list/StyledFileListItem.js';
|
|
37
|
+
import '../styled/radio/StyledRadioLabel.js';
|
|
38
|
+
import '../styled/radio/StyledRadioHint.js';
|
|
39
|
+
import '../styled/radio/StyledRadioInput.js';
|
|
40
|
+
import '../styled/radio/StyledRadioMessage.js';
|
|
41
|
+
import '../styled/radio/StyledRadioSvg.js';
|
|
42
|
+
import '../styled/toggle/StyledToggleLabel.js';
|
|
43
|
+
import '../styled/toggle/StyledToggleHint.js';
|
|
44
|
+
import '../styled/toggle/StyledToggleInput.js';
|
|
45
|
+
import '../styled/toggle/StyledToggleMessage.js';
|
|
46
|
+
import '../styled/toggle/StyledToggleSvg.js';
|
|
47
|
+
import '../styled/select/StyledSelect.js';
|
|
48
|
+
import '../styled/select/StyledSelectWrapper.js';
|
|
49
|
+
import { StyledRangeInput } from '../styled/range/StyledRangeInput.js';
|
|
50
|
+
import '../styled/tiles/StyledTile.js';
|
|
51
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
52
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
53
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
54
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
55
|
+
|
|
56
|
+
const Range = React__default.forwardRef((_ref, ref) => {
|
|
57
|
+
let {
|
|
58
|
+
hasLowerTrack,
|
|
59
|
+
min,
|
|
60
|
+
max,
|
|
61
|
+
step,
|
|
62
|
+
...props
|
|
63
|
+
} = _ref;
|
|
64
|
+
const [backgroundSize, setBackgroundSize] = useState('0');
|
|
65
|
+
const rangeRef = useRef();
|
|
66
|
+
const fieldContext = useFieldContext();
|
|
67
|
+
const updateBackgroundWidthFromInput = useCallback(rangeTarget => {
|
|
68
|
+
let relativeMax = max;
|
|
69
|
+
const {
|
|
70
|
+
value
|
|
71
|
+
} = rangeTarget;
|
|
72
|
+
if (parseFloat(relativeMax) < parseFloat(min)) {
|
|
73
|
+
relativeMax = 100;
|
|
74
|
+
}
|
|
75
|
+
const percentage = 100 * (value - min) / (relativeMax - min);
|
|
76
|
+
setBackgroundSize(`${percentage}%`);
|
|
77
|
+
},
|
|
78
|
+
[max, min, step]);
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
updateBackgroundWidthFromInput(rangeRef.current);
|
|
81
|
+
}, [rangeRef, updateBackgroundWidthFromInput, props.value]);
|
|
82
|
+
const onChange = hasLowerTrack ? composeEventHandlers(props.onChange, event => {
|
|
83
|
+
updateBackgroundWidthFromInput(event.target);
|
|
84
|
+
}) : props.onChange;
|
|
85
|
+
let combinedProps = {
|
|
86
|
+
ref: mergeRefs([rangeRef, ref]),
|
|
87
|
+
hasLowerTrack,
|
|
88
|
+
min,
|
|
89
|
+
max,
|
|
90
|
+
step,
|
|
91
|
+
backgroundSize,
|
|
92
|
+
...props,
|
|
93
|
+
onChange
|
|
94
|
+
};
|
|
95
|
+
if (fieldContext) {
|
|
96
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
97
|
+
}
|
|
98
|
+
return React__default.createElement(StyledRangeInput, combinedProps);
|
|
99
|
+
});
|
|
100
|
+
Range.defaultProps = {
|
|
101
|
+
hasLowerTrack: true,
|
|
102
|
+
min: 0,
|
|
103
|
+
max: 100,
|
|
104
|
+
step: 1
|
|
105
|
+
};
|
|
106
|
+
Range.displayName = 'Range';
|
|
107
|
+
|
|
108
|
+
export { Range };
|