@zendeskgarden/react-forms 9.0.0-next.6 → 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.
Files changed (114) hide show
  1. package/dist/esm/elements/Checkbox.js +97 -0
  2. package/dist/esm/elements/FileUpload.js +75 -0
  3. package/dist/esm/elements/Input.js +93 -0
  4. package/dist/esm/elements/MediaInput.js +156 -0
  5. package/dist/esm/elements/Radio.js +81 -0
  6. package/dist/esm/elements/Range.js +108 -0
  7. package/dist/esm/elements/Select.js +97 -0
  8. package/dist/esm/elements/Textarea.js +170 -0
  9. package/dist/esm/elements/Toggle.js +81 -0
  10. package/dist/esm/elements/common/Field.js +97 -0
  11. package/dist/esm/elements/common/Fieldset.js +73 -0
  12. package/dist/esm/elements/common/Hint.js +92 -0
  13. package/dist/esm/elements/common/Label.js +134 -0
  14. package/dist/esm/elements/common/Legend.js +63 -0
  15. package/dist/esm/elements/common/Message.js +113 -0
  16. package/dist/esm/elements/faux-input/FauxInput.js +100 -0
  17. package/dist/esm/elements/faux-input/components/EndIcon.js +59 -0
  18. package/dist/esm/elements/faux-input/components/StartIcon.js +59 -0
  19. package/dist/esm/elements/file-list/FileList.js +66 -0
  20. package/dist/esm/elements/file-list/components/Close.js +75 -0
  21. package/dist/esm/elements/file-list/components/Delete.js +75 -0
  22. package/dist/esm/elements/file-list/components/File.js +94 -0
  23. package/dist/esm/elements/file-list/components/Item.js +64 -0
  24. package/dist/esm/elements/file-list/utils.js +50 -0
  25. package/dist/esm/elements/input-group/InputGroup.js +75 -0
  26. package/dist/esm/elements/tiles/Tiles.js +64 -0
  27. package/dist/esm/elements/tiles/components/Description.js +64 -0
  28. package/dist/esm/elements/tiles/components/Icon.js +64 -0
  29. package/dist/esm/elements/tiles/components/Label.js +73 -0
  30. package/dist/esm/elements/tiles/components/Tile.js +91 -0
  31. package/dist/esm/index.js +26 -0
  32. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/check-circle-stroke.svg.js +33 -0
  33. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/check-sm-fill.svg.js +29 -0
  34. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/circle-sm-fill.svg.js +27 -0
  35. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/dash-fill.svg.js +27 -0
  36. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-document-stroke.svg.js +27 -0
  37. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-error-stroke.svg.js +27 -0
  38. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-generic-stroke.svg.js +26 -0
  39. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-image-stroke.svg.js +33 -0
  40. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-pdf-stroke.svg.js +35 -0
  41. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-presentation-stroke.svg.js +26 -0
  42. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-spreadsheet-stroke.svg.js +27 -0
  43. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/file-zip-stroke.svg.js +27 -0
  44. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/trash-stroke.svg.js +27 -0
  45. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/12/x-stroke.svg.js +26 -0
  46. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/alert-error-stroke.svg.js +37 -0
  47. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/alert-warning-stroke.svg.js +32 -0
  48. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/check-circle-stroke.svg.js +33 -0
  49. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/chevron-down-stroke.svg.js +25 -0
  50. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/circle-sm-fill.svg.js +27 -0
  51. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-document-stroke.svg.js +27 -0
  52. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-error-stroke.svg.js +27 -0
  53. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-generic-stroke.svg.js +26 -0
  54. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-image-stroke.svg.js +32 -0
  55. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-pdf-stroke.svg.js +35 -0
  56. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-presentation-stroke.svg.js +26 -0
  57. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-spreadsheet-stroke.svg.js +27 -0
  58. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/file-zip-stroke.svg.js +27 -0
  59. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/trash-stroke.svg.js +27 -0
  60. package/dist/esm/node_modules/@zendeskgarden/svg-icons/src/16/x-stroke.svg.js +26 -0
  61. package/dist/esm/styled/checkbox/StyledCheckHint.js +23 -0
  62. package/dist/esm/styled/checkbox/StyledCheckInput.js +34 -0
  63. package/dist/esm/styled/checkbox/StyledCheckLabel.js +23 -0
  64. package/dist/esm/styled/checkbox/StyledCheckMessage.js +23 -0
  65. package/dist/esm/styled/checkbox/StyledCheckSvg.js +25 -0
  66. package/dist/esm/styled/checkbox/StyledDashSvg.js +25 -0
  67. package/dist/esm/styled/common/StyledField.js +22 -0
  68. package/dist/esm/styled/common/StyledFieldset.js +24 -0
  69. package/dist/esm/styled/common/StyledHint.js +22 -0
  70. package/dist/esm/styled/common/StyledLabel.js +23 -0
  71. package/dist/esm/styled/common/StyledLegend.js +24 -0
  72. package/dist/esm/styled/common/StyledMessage.js +40 -0
  73. package/dist/esm/styled/common/StyledMessageIcon.js +45 -0
  74. package/dist/esm/styled/file-list/StyledFile.js +76 -0
  75. package/dist/esm/styled/file-list/StyledFileClose.js +22 -0
  76. package/dist/esm/styled/file-list/StyledFileDelete.js +23 -0
  77. package/dist/esm/styled/file-list/StyledFileIcon.js +31 -0
  78. package/dist/esm/styled/file-list/StyledFileList.js +22 -0
  79. package/dist/esm/styled/file-list/StyledFileListItem.js +24 -0
  80. package/dist/esm/styled/file-upload/StyledFileUpload.js +47 -0
  81. package/dist/esm/styled/input-group/StyledInputGroup.js +35 -0
  82. package/dist/esm/styled/radio/StyledRadioHint.js +24 -0
  83. package/dist/esm/styled/radio/StyledRadioInput.js +61 -0
  84. package/dist/esm/styled/radio/StyledRadioLabel.js +30 -0
  85. package/dist/esm/styled/radio/StyledRadioMessage.js +24 -0
  86. package/dist/esm/styled/radio/StyledRadioSvg.js +25 -0
  87. package/dist/esm/styled/range/StyledRangeInput.js +160 -0
  88. package/dist/esm/styled/select/StyledSelect.js +36 -0
  89. package/dist/esm/styled/select/StyledSelectWrapper.js +24 -0
  90. package/dist/esm/styled/text/StyledTextFauxInput.js +61 -0
  91. package/dist/esm/styled/text/StyledTextInput.js +107 -0
  92. package/dist/esm/styled/text/StyledTextMediaFigure.js +57 -0
  93. package/dist/esm/styled/text/StyledTextMediaInput.js +24 -0
  94. package/dist/esm/styled/text/StyledTextarea.js +33 -0
  95. package/dist/esm/styled/tiles/StyledTile.js +55 -0
  96. package/dist/esm/styled/tiles/StyledTileDescription.js +34 -0
  97. package/dist/esm/styled/tiles/StyledTileIcon.js +38 -0
  98. package/dist/esm/styled/tiles/StyledTileInput.js +18 -0
  99. package/dist/esm/styled/tiles/StyledTileLabel.js +36 -0
  100. package/dist/esm/styled/toggle/StyledToggleHint.js +24 -0
  101. package/dist/esm/styled/toggle/StyledToggleInput.js +40 -0
  102. package/dist/esm/styled/toggle/StyledToggleLabel.js +28 -0
  103. package/dist/esm/styled/toggle/StyledToggleMessage.js +25 -0
  104. package/dist/esm/styled/toggle/StyledToggleSvg.js +23 -0
  105. package/dist/esm/types/index.js +11 -0
  106. package/dist/esm/utils/useFieldContext.js +15 -0
  107. package/dist/esm/utils/useFieldsetContext.js +15 -0
  108. package/dist/esm/utils/useFileContext.js +14 -0
  109. package/dist/esm/utils/useInputContext.js +14 -0
  110. package/dist/esm/utils/useInputGroupContext.js +14 -0
  111. package/dist/esm/utils/useTilesContext.js +14 -0
  112. package/dist/index.cjs.js +95 -101
  113. package/package.json +5 -5
  114. 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 };