@zendeskgarden/react-forms 8.75.1 → 8.76.1
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 +101 -0
- package/dist/esm/elements/FileUpload.js +79 -0
- package/dist/esm/elements/Input.js +97 -0
- package/dist/esm/elements/MediaInput.js +160 -0
- package/dist/esm/elements/MultiThumbRange.js +166 -0
- package/dist/esm/elements/Radio.js +85 -0
- package/dist/esm/elements/Range.js +112 -0
- package/dist/esm/elements/Select.js +101 -0
- package/dist/esm/elements/Textarea.js +174 -0
- package/dist/esm/elements/Toggle.js +85 -0
- package/dist/esm/elements/common/Field.js +96 -0
- package/dist/esm/elements/common/Fieldset.js +77 -0
- package/dist/esm/elements/common/Hint.js +96 -0
- package/dist/esm/elements/common/Label.js +142 -0
- package/dist/esm/elements/common/Legend.js +67 -0
- package/dist/esm/elements/common/Message.js +117 -0
- package/dist/esm/elements/faux-input/FauxInput.js +104 -0
- package/dist/esm/elements/faux-input/components/EndIcon.js +63 -0
- package/dist/esm/elements/faux-input/components/StartIcon.js +63 -0
- package/dist/esm/elements/file-list/FileList.js +70 -0
- package/dist/esm/elements/file-list/components/Close.js +79 -0
- package/dist/esm/elements/file-list/components/Delete.js +79 -0
- package/dist/esm/elements/file-list/components/File.js +98 -0
- package/dist/esm/elements/file-list/components/Item.js +68 -0
- package/dist/esm/elements/file-list/utils.js +50 -0
- package/dist/esm/elements/input-group/InputGroup.js +79 -0
- package/dist/esm/elements/tiles/Tiles.js +64 -0
- package/dist/esm/elements/tiles/components/Description.js +68 -0
- package/dist/esm/elements/tiles/components/Icon.js +68 -0
- package/dist/esm/elements/tiles/components/Label.js +77 -0
- package/dist/esm/elements/tiles/components/Tile.js +95 -0
- package/dist/esm/index.js +27 -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 +74 -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 +45 -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/range/StyledSlider.js +26 -0
- package/dist/esm/styled/range/StyledSliderThumb.js +45 -0
- package/dist/esm/styled/range/StyledSliderTrack.js +42 -0
- package/dist/esm/styled/range/StyledSliderTrackRail.js +28 -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 +59 -0
- package/dist/esm/styled/text/StyledTextInput.js +105 -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 +53 -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 +82 -98
- package/package.json +5 -5
- package/dist/index.esm.js +0 -2921
|
@@ -0,0 +1,101 @@
|
|
|
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/range/StyledSlider.js';
|
|
51
|
+
import '../styled/range/StyledSliderThumb.js';
|
|
52
|
+
import '../styled/range/StyledSliderTrack.js';
|
|
53
|
+
import '../styled/range/StyledSliderTrackRail.js';
|
|
54
|
+
import '../styled/tiles/StyledTile.js';
|
|
55
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
56
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
57
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
58
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
59
|
+
import useFieldsetContext from '../utils/useFieldsetContext.js';
|
|
60
|
+
|
|
61
|
+
const Checkbox = React__default.forwardRef((_ref, ref) => {
|
|
62
|
+
let {
|
|
63
|
+
indeterminate,
|
|
64
|
+
children,
|
|
65
|
+
...props
|
|
66
|
+
} = _ref;
|
|
67
|
+
const fieldsetContext = useFieldsetContext();
|
|
68
|
+
const fieldContext = useFieldContext();
|
|
69
|
+
const inputRef = inputElement => {
|
|
70
|
+
inputElement && (inputElement.indeterminate = indeterminate);
|
|
71
|
+
};
|
|
72
|
+
const combinedRef = inputElement => {
|
|
73
|
+
[inputRef, ref].forEach(targetRef => {
|
|
74
|
+
if (targetRef) {
|
|
75
|
+
if (typeof targetRef === 'function') {
|
|
76
|
+
targetRef(inputElement);
|
|
77
|
+
} else {
|
|
78
|
+
targetRef.current = inputElement;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
let combinedProps = {
|
|
84
|
+
ref: combinedRef,
|
|
85
|
+
...props,
|
|
86
|
+
...fieldsetContext
|
|
87
|
+
};
|
|
88
|
+
if (fieldContext) {
|
|
89
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
90
|
+
}
|
|
91
|
+
return React__default.createElement(InputContext.Provider, {
|
|
92
|
+
value: "checkbox"
|
|
93
|
+
}, React__default.createElement(StyledCheckInput, combinedProps), children);
|
|
94
|
+
});
|
|
95
|
+
Checkbox.displayName = 'Checkbox';
|
|
96
|
+
Checkbox.propTypes = {
|
|
97
|
+
isCompact: PropTypes.bool,
|
|
98
|
+
indeterminate: PropTypes.bool
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export { Checkbox };
|
|
@@ -0,0 +1,79 @@
|
|
|
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/range/StyledSlider.js';
|
|
49
|
+
import '../styled/range/StyledSliderThumb.js';
|
|
50
|
+
import '../styled/range/StyledSliderTrack.js';
|
|
51
|
+
import '../styled/range/StyledSliderTrackRail.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 FileUpload = React__default.forwardRef((_ref, ref) => {
|
|
59
|
+
let {
|
|
60
|
+
disabled,
|
|
61
|
+
...props
|
|
62
|
+
} = _ref;
|
|
63
|
+
return (
|
|
64
|
+
React__default.createElement(StyledFileUpload, Object.assign({
|
|
65
|
+
ref: ref,
|
|
66
|
+
"aria-disabled": disabled
|
|
67
|
+
}, props, {
|
|
68
|
+
role: "button"
|
|
69
|
+
}))
|
|
70
|
+
);
|
|
71
|
+
});
|
|
72
|
+
FileUpload.propTypes = {
|
|
73
|
+
isDragging: PropTypes.bool,
|
|
74
|
+
isCompact: PropTypes.bool,
|
|
75
|
+
disabled: PropTypes.bool
|
|
76
|
+
};
|
|
77
|
+
FileUpload.displayName = 'FileUpload';
|
|
78
|
+
|
|
79
|
+
export { FileUpload };
|
|
@@ -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 { 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/range/StyledSlider.js';
|
|
53
|
+
import '../styled/range/StyledSliderThumb.js';
|
|
54
|
+
import '../styled/range/StyledSliderTrack.js';
|
|
55
|
+
import '../styled/range/StyledSliderTrackRail.js';
|
|
56
|
+
import '../styled/tiles/StyledTile.js';
|
|
57
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
58
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
59
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
60
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
61
|
+
|
|
62
|
+
const Input = React__default.forwardRef((_ref, ref) => {
|
|
63
|
+
let {
|
|
64
|
+
onSelect,
|
|
65
|
+
...props
|
|
66
|
+
} = _ref;
|
|
67
|
+
const fieldContext = useFieldContext();
|
|
68
|
+
const inputGroupContext = useInputGroupContext();
|
|
69
|
+
const onSelectHandler = props.readOnly ? composeEventHandlers(onSelect, event => {
|
|
70
|
+
event.currentTarget.select();
|
|
71
|
+
}) : onSelect;
|
|
72
|
+
let combinedProps = {
|
|
73
|
+
ref,
|
|
74
|
+
onSelect: onSelectHandler,
|
|
75
|
+
...props
|
|
76
|
+
};
|
|
77
|
+
if (inputGroupContext) {
|
|
78
|
+
combinedProps = {
|
|
79
|
+
...combinedProps,
|
|
80
|
+
isCompact: inputGroupContext.isCompact || combinedProps.isCompact,
|
|
81
|
+
focusInset: props.focusInset === undefined ? true : props.focusInset
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (fieldContext) {
|
|
85
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
86
|
+
}
|
|
87
|
+
return React__default.createElement(StyledTextInput, combinedProps);
|
|
88
|
+
});
|
|
89
|
+
Input.propTypes = {
|
|
90
|
+
isCompact: PropTypes.bool,
|
|
91
|
+
isBare: PropTypes.bool,
|
|
92
|
+
focusInset: PropTypes.bool,
|
|
93
|
+
validation: PropTypes.oneOf(VALIDATION)
|
|
94
|
+
};
|
|
95
|
+
Input.displayName = 'Input';
|
|
96
|
+
|
|
97
|
+
export { Input };
|
|
@@ -0,0 +1,160 @@
|
|
|
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/range/StyledSlider.js';
|
|
52
|
+
import '../styled/range/StyledSliderThumb.js';
|
|
53
|
+
import '../styled/range/StyledSliderTrack.js';
|
|
54
|
+
import '../styled/range/StyledSliderTrackRail.js';
|
|
55
|
+
import '../styled/tiles/StyledTile.js';
|
|
56
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
57
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
58
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
59
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
60
|
+
import { FauxInput } from './faux-input/FauxInput.js';
|
|
61
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
62
|
+
|
|
63
|
+
const MediaInput = React__default.forwardRef((_ref, ref) => {
|
|
64
|
+
let {
|
|
65
|
+
start,
|
|
66
|
+
end,
|
|
67
|
+
disabled,
|
|
68
|
+
isCompact,
|
|
69
|
+
isBare,
|
|
70
|
+
focusInset,
|
|
71
|
+
readOnly,
|
|
72
|
+
validation,
|
|
73
|
+
wrapperProps = {},
|
|
74
|
+
wrapperRef,
|
|
75
|
+
onSelect,
|
|
76
|
+
...props
|
|
77
|
+
} = _ref;
|
|
78
|
+
const fieldContext = useFieldContext();
|
|
79
|
+
const inputRef = useRef();
|
|
80
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
81
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
82
|
+
const {
|
|
83
|
+
onClick,
|
|
84
|
+
onFocus,
|
|
85
|
+
onBlur,
|
|
86
|
+
onMouseOver,
|
|
87
|
+
onMouseOut,
|
|
88
|
+
...otherWrapperProps
|
|
89
|
+
} = wrapperProps;
|
|
90
|
+
const onFauxInputClickHandler = composeEventHandlers(onClick, () => {
|
|
91
|
+
inputRef.current && inputRef.current.focus();
|
|
92
|
+
});
|
|
93
|
+
const onFauxInputFocusHandler = composeEventHandlers(onFocus, () => {
|
|
94
|
+
setIsFocused(true);
|
|
95
|
+
});
|
|
96
|
+
const onFauxInputBlurHandler = composeEventHandlers(onBlur, () => {
|
|
97
|
+
setIsFocused(false);
|
|
98
|
+
});
|
|
99
|
+
const onFauxInputMouseOverHandler = composeEventHandlers(onMouseOver, () => {
|
|
100
|
+
setIsHovered(true);
|
|
101
|
+
});
|
|
102
|
+
const onFauxInputMouseOutHandler = composeEventHandlers(onMouseOut, () => {
|
|
103
|
+
setIsHovered(false);
|
|
104
|
+
});
|
|
105
|
+
const onSelectHandler = readOnly ? composeEventHandlers(onSelect, event => {
|
|
106
|
+
event.currentTarget.select();
|
|
107
|
+
}) : onSelect;
|
|
108
|
+
let combinedProps = {
|
|
109
|
+
disabled,
|
|
110
|
+
readOnly,
|
|
111
|
+
ref: mergeRefs([inputRef, ref]),
|
|
112
|
+
onSelect: onSelectHandler,
|
|
113
|
+
...props
|
|
114
|
+
};
|
|
115
|
+
let isLabelHovered;
|
|
116
|
+
if (fieldContext) {
|
|
117
|
+
combinedProps = fieldContext.getInputProps(combinedProps);
|
|
118
|
+
isLabelHovered = fieldContext.isLabelHovered;
|
|
119
|
+
}
|
|
120
|
+
return React__default.createElement(FauxInput, Object.assign({
|
|
121
|
+
tabIndex: null,
|
|
122
|
+
onClick: onFauxInputClickHandler,
|
|
123
|
+
onFocus: onFauxInputFocusHandler,
|
|
124
|
+
onBlur: onFauxInputBlurHandler,
|
|
125
|
+
onMouseOver: onFauxInputMouseOverHandler,
|
|
126
|
+
onMouseOut: onFauxInputMouseOutHandler,
|
|
127
|
+
disabled: disabled,
|
|
128
|
+
isFocused: isFocused,
|
|
129
|
+
isHovered: isHovered || isLabelHovered,
|
|
130
|
+
isCompact: isCompact,
|
|
131
|
+
isBare: isBare,
|
|
132
|
+
focusInset: focusInset,
|
|
133
|
+
readOnly: readOnly,
|
|
134
|
+
validation: validation,
|
|
135
|
+
mediaLayout: true
|
|
136
|
+
}, otherWrapperProps, {
|
|
137
|
+
ref: wrapperRef
|
|
138
|
+
}), start && React__default.createElement(FauxInput.StartIcon, {
|
|
139
|
+
isDisabled: disabled,
|
|
140
|
+
isFocused: isFocused,
|
|
141
|
+
isHovered: isHovered || isLabelHovered
|
|
142
|
+
}, start), React__default.createElement(StyledTextMediaInput, combinedProps), end && React__default.createElement(FauxInput.EndIcon, {
|
|
143
|
+
isDisabled: disabled,
|
|
144
|
+
isFocused: isFocused,
|
|
145
|
+
isHovered: isHovered || isLabelHovered
|
|
146
|
+
}, end));
|
|
147
|
+
});
|
|
148
|
+
MediaInput.propTypes = {
|
|
149
|
+
isCompact: PropTypes.bool,
|
|
150
|
+
isBare: PropTypes.bool,
|
|
151
|
+
focusInset: PropTypes.bool,
|
|
152
|
+
validation: PropTypes.oneOf(VALIDATION),
|
|
153
|
+
start: PropTypes.node,
|
|
154
|
+
end: PropTypes.node,
|
|
155
|
+
wrapperProps: PropTypes.object,
|
|
156
|
+
wrapperRef: PropTypes.any
|
|
157
|
+
};
|
|
158
|
+
MediaInput.displayName = 'MediaInput';
|
|
159
|
+
|
|
160
|
+
export { MediaInput };
|
|
@@ -0,0 +1,166 @@
|
|
|
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, { forwardRef, useContext, useRef, useEffect } from 'react';
|
|
8
|
+
import PropTypes from 'prop-types';
|
|
9
|
+
import { ThemeContext } from 'styled-components';
|
|
10
|
+
import { useSlider } from '@zendeskgarden/container-slider';
|
|
11
|
+
import { useDocument } from '@zendeskgarden/react-theming';
|
|
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 '../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 { StyledSlider } from '../styled/range/StyledSlider.js';
|
|
52
|
+
import { StyledSliderThumb } from '../styled/range/StyledSliderThumb.js';
|
|
53
|
+
import { StyledSliderTrack } from '../styled/range/StyledSliderTrack.js';
|
|
54
|
+
import { StyledSliderTrackRail } from '../styled/range/StyledSliderTrackRail.js';
|
|
55
|
+
import '../styled/tiles/StyledTile.js';
|
|
56
|
+
import '../styled/tiles/StyledTileDescription.js';
|
|
57
|
+
import '../styled/tiles/StyledTileIcon.js';
|
|
58
|
+
import '../styled/tiles/StyledTileInput.js';
|
|
59
|
+
import '../styled/tiles/StyledTileLabel.js';
|
|
60
|
+
import useFieldContext from '../utils/useFieldContext.js';
|
|
61
|
+
|
|
62
|
+
const MIN = 0;
|
|
63
|
+
const MAX = 100;
|
|
64
|
+
const MultiThumbRange = forwardRef((_ref, ref) => {
|
|
65
|
+
let {
|
|
66
|
+
min = MIN,
|
|
67
|
+
max = MAX,
|
|
68
|
+
minValue,
|
|
69
|
+
maxValue,
|
|
70
|
+
disabled,
|
|
71
|
+
step,
|
|
72
|
+
jump,
|
|
73
|
+
onChange,
|
|
74
|
+
onMouseDown,
|
|
75
|
+
...props
|
|
76
|
+
} = _ref;
|
|
77
|
+
const theme = useContext(ThemeContext);
|
|
78
|
+
const environment = useDocument(theme);
|
|
79
|
+
const trackRailRef = useRef(null);
|
|
80
|
+
const minThumbRef = useRef(null);
|
|
81
|
+
const maxThumbRef = useRef(null);
|
|
82
|
+
const {
|
|
83
|
+
getTrackProps,
|
|
84
|
+
getMinThumbProps,
|
|
85
|
+
getMaxThumbProps,
|
|
86
|
+
trackRect,
|
|
87
|
+
minValue: updatedMinValue,
|
|
88
|
+
maxValue: updatedMaxValue
|
|
89
|
+
} = useSlider({
|
|
90
|
+
trackRef: trackRailRef,
|
|
91
|
+
minThumbRef,
|
|
92
|
+
maxThumbRef,
|
|
93
|
+
min,
|
|
94
|
+
max,
|
|
95
|
+
minValue,
|
|
96
|
+
maxValue,
|
|
97
|
+
onChange,
|
|
98
|
+
step,
|
|
99
|
+
jump,
|
|
100
|
+
disabled,
|
|
101
|
+
rtl: theme.rtl,
|
|
102
|
+
environment
|
|
103
|
+
});
|
|
104
|
+
const {
|
|
105
|
+
onMouseDown: onSliderMouseDown,
|
|
106
|
+
...trackProps
|
|
107
|
+
} = getTrackProps({
|
|
108
|
+
onMouseDown
|
|
109
|
+
});
|
|
110
|
+
const fieldContext = useFieldContext();
|
|
111
|
+
const {
|
|
112
|
+
isLabelHovered,
|
|
113
|
+
isLabelActive,
|
|
114
|
+
multiThumbRangeRef
|
|
115
|
+
} = fieldContext || {};
|
|
116
|
+
useEffect(() => {
|
|
117
|
+
if (multiThumbRangeRef) {
|
|
118
|
+
multiThumbRangeRef.current = minThumbRef.current;
|
|
119
|
+
}
|
|
120
|
+
}, [multiThumbRangeRef]);
|
|
121
|
+
const minPosition = (updatedMinValue - min) / (max - min) * trackRect.width;
|
|
122
|
+
const maxPosition = (updatedMaxValue - min) / (max - min) * trackRect.width;
|
|
123
|
+
const sliderBackgroundSize = Math.abs(maxPosition) - Math.abs(minPosition);
|
|
124
|
+
return React__default.createElement(StyledSlider, Object.assign({
|
|
125
|
+
ref: ref,
|
|
126
|
+
onMouseDown: onSliderMouseDown
|
|
127
|
+
}, props), React__default.createElement(StyledSliderTrack, {
|
|
128
|
+
backgroundSize: sliderBackgroundSize,
|
|
129
|
+
backgroundPosition: theme.rtl ? trackRect.width - maxPosition : minPosition,
|
|
130
|
+
isDisabled: disabled
|
|
131
|
+
}, React__default.createElement(StyledSliderTrackRail, Object.assign({}, trackProps, {
|
|
132
|
+
ref: trackRailRef
|
|
133
|
+
}), React__default.createElement(StyledSliderThumb, Object.assign({}, getMinThumbProps({
|
|
134
|
+
'aria-label': updatedMinValue
|
|
135
|
+
}), {
|
|
136
|
+
isDisabled: disabled,
|
|
137
|
+
position: minPosition,
|
|
138
|
+
ref: minThumbRef,
|
|
139
|
+
"data-garden-active": isLabelActive,
|
|
140
|
+
"data-garden-hover": isLabelHovered
|
|
141
|
+
})), React__default.createElement(StyledSliderThumb, Object.assign({}, getMaxThumbProps({
|
|
142
|
+
'aria-label': updatedMaxValue
|
|
143
|
+
}), {
|
|
144
|
+
isDisabled: disabled,
|
|
145
|
+
position: maxPosition,
|
|
146
|
+
ref: maxThumbRef
|
|
147
|
+
})))));
|
|
148
|
+
});
|
|
149
|
+
MultiThumbRange.displayName = 'MultiThumbRange';
|
|
150
|
+
MultiThumbRange.propTypes = {
|
|
151
|
+
min: PropTypes.number,
|
|
152
|
+
max: PropTypes.number,
|
|
153
|
+
minValue: PropTypes.number,
|
|
154
|
+
maxValue: PropTypes.number,
|
|
155
|
+
step: PropTypes.number,
|
|
156
|
+
jump: PropTypes.number,
|
|
157
|
+
disabled: PropTypes.bool,
|
|
158
|
+
onChange: PropTypes.func
|
|
159
|
+
};
|
|
160
|
+
MultiThumbRange.defaultProps = {
|
|
161
|
+
min: MIN,
|
|
162
|
+
max: MAX,
|
|
163
|
+
step: 1
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
export { MultiThumbRange };
|