@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,134 @@
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 useFieldContext from '../../utils/useFieldContext.js';
11
+ import useFieldsetContext from '../../utils/useFieldsetContext.js';
12
+ import useInputContext from '../../utils/useInputContext.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 { StyledLabel } from '../../styled/common/StyledLabel.js';
18
+ import '../../styled/common/StyledMessage.js';
19
+ import '../../styled/common/StyledMessageIcon.js';
20
+ import '../../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 { StyledCheckLabel } from '../../styled/checkbox/StyledCheckLabel.js';
27
+ import '../../styled/checkbox/StyledCheckHint.js';
28
+ import '../../styled/checkbox/StyledCheckInput.js';
29
+ import '../../styled/checkbox/StyledCheckMessage.js';
30
+ import { StyledCheckSvg } from '../../styled/checkbox/StyledCheckSvg.js';
31
+ import { StyledDashSvg } from '../../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 { StyledRadioLabel } from '../../styled/radio/StyledRadioLabel.js';
40
+ import '../../styled/radio/StyledRadioHint.js';
41
+ import '../../styled/radio/StyledRadioInput.js';
42
+ import '../../styled/radio/StyledRadioMessage.js';
43
+ import { StyledRadioSvg } from '../../styled/radio/StyledRadioSvg.js';
44
+ import { StyledToggleLabel } from '../../styled/toggle/StyledToggleLabel.js';
45
+ import '../../styled/toggle/StyledToggleHint.js';
46
+ import '../../styled/toggle/StyledToggleInput.js';
47
+ import '../../styled/toggle/StyledToggleMessage.js';
48
+ import { StyledToggleSvg } from '../../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 Label = React__default.forwardRef((props, ref) => {
59
+ const fieldContext = useFieldContext();
60
+ const fieldsetContext = useFieldsetContext();
61
+ const type = useInputContext();
62
+ let combinedProps = props;
63
+ if (fieldContext) {
64
+ combinedProps = fieldContext.getLabelProps(combinedProps);
65
+ if (type === undefined) {
66
+ const {
67
+ setIsLabelActive,
68
+ setIsLabelHovered
69
+ } = fieldContext;
70
+ combinedProps = {
71
+ ...combinedProps,
72
+ onMouseUp: composeEventHandlers(props.onMouseUp, () => {
73
+ setIsLabelActive(false);
74
+ }),
75
+ onMouseDown: composeEventHandlers(props.onMouseDown, () => {
76
+ setIsLabelActive(true);
77
+ }),
78
+ onMouseEnter: composeEventHandlers(props.onMouseEnter, () => {
79
+ setIsLabelHovered(true);
80
+ }),
81
+ onMouseLeave: composeEventHandlers(props.onMouseLeave, () => {
82
+ setIsLabelHovered(false);
83
+ })
84
+ };
85
+ }
86
+ }
87
+ if (fieldsetContext) {
88
+ combinedProps = {
89
+ ...combinedProps,
90
+ isRegular: combinedProps.isRegular === undefined ? true : combinedProps.isRegular
91
+ };
92
+ }
93
+ if (type === 'radio') {
94
+ return React__default.createElement(StyledRadioLabel, Object.assign({
95
+ ref: ref
96
+ }, combinedProps), React__default.createElement(StyledRadioSvg, null), props.children);
97
+ } else if (type === 'checkbox') {
98
+ const onLabelSelect = e => {
99
+ const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
100
+ if (fieldContext && isFirefox && e.target instanceof Element) {
101
+ const inputId = e.target.getAttribute('for');
102
+ if (!inputId) return;
103
+ const input = document.getElementById(inputId);
104
+ if (input && input.type === 'checkbox') {
105
+ if (e.shiftKey) {
106
+ input.click();
107
+ input.checked = true;
108
+ }
109
+ input.focus();
110
+ }
111
+ }
112
+ };
113
+ combinedProps = {
114
+ ...combinedProps,
115
+ onClick: composeEventHandlers(combinedProps.onClick, onLabelSelect)
116
+ };
117
+ return React__default.createElement(StyledCheckLabel, Object.assign({
118
+ ref: ref
119
+ }, combinedProps), React__default.createElement(StyledCheckSvg, null), React__default.createElement(StyledDashSvg, null), props.children);
120
+ } else if (type === 'toggle') {
121
+ return React__default.createElement(StyledToggleLabel, Object.assign({
122
+ ref: ref
123
+ }, combinedProps), React__default.createElement(StyledToggleSvg, null), props.children);
124
+ }
125
+ return React__default.createElement(StyledLabel, Object.assign({
126
+ ref: ref
127
+ }, combinedProps));
128
+ });
129
+ Label.displayName = 'Label';
130
+ Label.propTypes = {
131
+ isRegular: PropTypes.bool
132
+ };
133
+
134
+ export { Label };
@@ -0,0 +1,63 @@
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 } from 'react';
8
+ import '../../styled/common/StyledField.js';
9
+ import '../../styled/common/StyledFieldset.js';
10
+ import { StyledLegend } from '../../styled/common/StyledLegend.js';
11
+ import '../../styled/common/StyledHint.js';
12
+ import '../../styled/common/StyledLabel.js';
13
+ import '../../styled/common/StyledMessage.js';
14
+ import '../../styled/common/StyledMessageIcon.js';
15
+ import '../../styled/text/StyledTextInput.js';
16
+ import '../../styled/text/StyledTextarea.js';
17
+ import '../../styled/text/StyledTextFauxInput.js';
18
+ import '../../styled/text/StyledTextMediaInput.js';
19
+ import '../../styled/text/StyledTextMediaFigure.js';
20
+ import '../../styled/input-group/StyledInputGroup.js';
21
+ import '../../styled/checkbox/StyledCheckLabel.js';
22
+ import '../../styled/checkbox/StyledCheckHint.js';
23
+ import '../../styled/checkbox/StyledCheckInput.js';
24
+ import '../../styled/checkbox/StyledCheckMessage.js';
25
+ import '../../styled/checkbox/StyledCheckSvg.js';
26
+ import '../../styled/checkbox/StyledDashSvg.js';
27
+ import '../../styled/file-upload/StyledFileUpload.js';
28
+ import '../../styled/file-list/StyledFile.js';
29
+ import '../../styled/file-list/StyledFileClose.js';
30
+ import '../../styled/file-list/StyledFileDelete.js';
31
+ import '../../styled/file-list/StyledFileIcon.js';
32
+ import '../../styled/file-list/StyledFileList.js';
33
+ import '../../styled/file-list/StyledFileListItem.js';
34
+ import '../../styled/radio/StyledRadioLabel.js';
35
+ import '../../styled/radio/StyledRadioHint.js';
36
+ import '../../styled/radio/StyledRadioInput.js';
37
+ import '../../styled/radio/StyledRadioMessage.js';
38
+ import '../../styled/radio/StyledRadioSvg.js';
39
+ import '../../styled/toggle/StyledToggleLabel.js';
40
+ import '../../styled/toggle/StyledToggleHint.js';
41
+ import '../../styled/toggle/StyledToggleInput.js';
42
+ import '../../styled/toggle/StyledToggleMessage.js';
43
+ import '../../styled/toggle/StyledToggleSvg.js';
44
+ import '../../styled/select/StyledSelect.js';
45
+ import '../../styled/select/StyledSelectWrapper.js';
46
+ import '../../styled/range/StyledRangeInput.js';
47
+ import '../../styled/tiles/StyledTile.js';
48
+ import '../../styled/tiles/StyledTileDescription.js';
49
+ import '../../styled/tiles/StyledTileIcon.js';
50
+ import '../../styled/tiles/StyledTileInput.js';
51
+ import '../../styled/tiles/StyledTileLabel.js';
52
+ import useFieldsetContext from '../../utils/useFieldsetContext.js';
53
+
54
+ const LegendComponent = forwardRef((props, ref) => {
55
+ const fieldsetContext = useFieldsetContext();
56
+ return React__default.createElement(StyledLegend, Object.assign({}, props, fieldsetContext, {
57
+ ref: ref
58
+ }));
59
+ });
60
+ LegendComponent.displayName = 'Fieldset.Legend';
61
+ const Legend = LegendComponent;
62
+
63
+ export { Legend };
@@ -0,0 +1,113 @@
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, { useEffect } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { useText } from '@zendeskgarden/react-theming';
10
+ import { VALIDATION } from '../../types/index.js';
11
+ import useFieldContext from '../../utils/useFieldContext.js';
12
+ import useInputContext from '../../utils/useInputContext.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 { StyledMessage } from '../../styled/common/StyledMessage.js';
19
+ import { StyledMessageIcon } from '../../styled/common/StyledMessageIcon.js';
20
+ import '../../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 { StyledCheckMessage } from '../../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 { StyledRadioMessage } from '../../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 { StyledToggleMessage } from '../../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 Message = React__default.forwardRef((_ref, ref) => {
59
+ let {
60
+ validation,
61
+ validationLabel,
62
+ children,
63
+ ...props
64
+ } = _ref;
65
+ const {
66
+ hasMessage,
67
+ setHasMessage,
68
+ getMessageProps
69
+ } = useFieldContext() || {};
70
+ const type = useInputContext();
71
+ useEffect(() => {
72
+ if (!hasMessage && setHasMessage) {
73
+ setHasMessage(true);
74
+ }
75
+ return () => {
76
+ if (hasMessage && setHasMessage) {
77
+ setHasMessage(false);
78
+ }
79
+ };
80
+ }, [hasMessage, setHasMessage]);
81
+ let MessageComponent;
82
+ if (type === 'checkbox') {
83
+ MessageComponent = StyledCheckMessage;
84
+ } else if (type === 'radio') {
85
+ MessageComponent = StyledRadioMessage;
86
+ } else if (type === 'toggle') {
87
+ MessageComponent = StyledToggleMessage;
88
+ } else {
89
+ MessageComponent = StyledMessage;
90
+ }
91
+ let combinedProps = {
92
+ validation,
93
+ validationLabel,
94
+ ...props
95
+ };
96
+ if (getMessageProps) {
97
+ combinedProps = getMessageProps(combinedProps);
98
+ }
99
+ const ariaLabel = useText(Message, combinedProps, 'validationLabel', validation, validation !== undefined);
100
+ return React__default.createElement(MessageComponent, Object.assign({
101
+ ref: ref
102
+ }, combinedProps), validation && React__default.createElement(StyledMessageIcon, {
103
+ validation: validation,
104
+ "aria-label": ariaLabel
105
+ }), children);
106
+ });
107
+ Message.displayName = 'Message';
108
+ Message.propTypes = {
109
+ validation: PropTypes.oneOf(VALIDATION),
110
+ validationLabel: PropTypes.string
111
+ };
112
+
113
+ export { Message };
@@ -0,0 +1,100 @@
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, useState } from 'react';
8
+ import PropTypes from 'prop-types';
9
+ import { composeEventHandlers } from '@zendeskgarden/container-utilities';
10
+ import { VALIDATION } from '../../types/index.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 { StyledTextFauxInput } from '../../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 '../../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 { StartIcon } from './components/StartIcon.js';
56
+ import { EndIcon } from './components/EndIcon.js';
57
+
58
+ const FauxInputComponent = forwardRef((_ref, ref) => {
59
+ let {
60
+ onFocus,
61
+ onBlur,
62
+ disabled,
63
+ readOnly,
64
+ isFocused: controlledIsFocused,
65
+ ...props
66
+ } = _ref;
67
+ const [isFocused, setIsFocused] = useState(false);
68
+ const onFocusHandler = composeEventHandlers(onFocus, () => {
69
+ setIsFocused(true);
70
+ });
71
+ const onBlurHandler = composeEventHandlers(onBlur, () => {
72
+ setIsFocused(false);
73
+ });
74
+ return React__default.createElement(StyledTextFauxInput, Object.assign({
75
+ onFocus: onFocusHandler,
76
+ onBlur: onBlurHandler,
77
+ isFocused: controlledIsFocused === undefined ? isFocused : controlledIsFocused,
78
+ isReadOnly: readOnly,
79
+ isDisabled: disabled,
80
+ tabIndex: disabled ? undefined : 0
81
+ }, props, {
82
+ ref: ref
83
+ }));
84
+ });
85
+ FauxInputComponent.displayName = 'FauxInput';
86
+ FauxInputComponent.propTypes = {
87
+ isCompact: PropTypes.bool,
88
+ isBare: PropTypes.bool,
89
+ focusInset: PropTypes.bool,
90
+ disabled: PropTypes.bool,
91
+ readOnly: PropTypes.bool,
92
+ validation: PropTypes.oneOf(VALIDATION),
93
+ isFocused: PropTypes.bool,
94
+ isHovered: PropTypes.bool
95
+ };
96
+ const FauxInput = FauxInputComponent;
97
+ FauxInput.EndIcon = EndIcon;
98
+ FauxInput.StartIcon = StartIcon;
99
+
100
+ export { FauxInput };
@@ -0,0 +1,59 @@
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 '../../../styled/common/StyledField.js';
9
+ import '../../../styled/common/StyledFieldset.js';
10
+ import '../../../styled/common/StyledLegend.js';
11
+ import '../../../styled/common/StyledHint.js';
12
+ import '../../../styled/common/StyledLabel.js';
13
+ import '../../../styled/common/StyledMessage.js';
14
+ import '../../../styled/common/StyledMessageIcon.js';
15
+ import '../../../styled/text/StyledTextInput.js';
16
+ import '../../../styled/text/StyledTextarea.js';
17
+ import '../../../styled/text/StyledTextFauxInput.js';
18
+ import '../../../styled/text/StyledTextMediaInput.js';
19
+ import { StyledTextMediaFigure } from '../../../styled/text/StyledTextMediaFigure.js';
20
+ import '../../../styled/input-group/StyledInputGroup.js';
21
+ import '../../../styled/checkbox/StyledCheckLabel.js';
22
+ import '../../../styled/checkbox/StyledCheckHint.js';
23
+ import '../../../styled/checkbox/StyledCheckInput.js';
24
+ import '../../../styled/checkbox/StyledCheckMessage.js';
25
+ import '../../../styled/checkbox/StyledCheckSvg.js';
26
+ import '../../../styled/checkbox/StyledDashSvg.js';
27
+ import '../../../styled/file-upload/StyledFileUpload.js';
28
+ import '../../../styled/file-list/StyledFile.js';
29
+ import '../../../styled/file-list/StyledFileClose.js';
30
+ import '../../../styled/file-list/StyledFileDelete.js';
31
+ import '../../../styled/file-list/StyledFileIcon.js';
32
+ import '../../../styled/file-list/StyledFileList.js';
33
+ import '../../../styled/file-list/StyledFileListItem.js';
34
+ import '../../../styled/radio/StyledRadioLabel.js';
35
+ import '../../../styled/radio/StyledRadioHint.js';
36
+ import '../../../styled/radio/StyledRadioInput.js';
37
+ import '../../../styled/radio/StyledRadioMessage.js';
38
+ import '../../../styled/radio/StyledRadioSvg.js';
39
+ import '../../../styled/toggle/StyledToggleLabel.js';
40
+ import '../../../styled/toggle/StyledToggleHint.js';
41
+ import '../../../styled/toggle/StyledToggleInput.js';
42
+ import '../../../styled/toggle/StyledToggleMessage.js';
43
+ import '../../../styled/toggle/StyledToggleSvg.js';
44
+ import '../../../styled/select/StyledSelect.js';
45
+ import '../../../styled/select/StyledSelectWrapper.js';
46
+ import '../../../styled/range/StyledRangeInput.js';
47
+ import '../../../styled/tiles/StyledTile.js';
48
+ import '../../../styled/tiles/StyledTileDescription.js';
49
+ import '../../../styled/tiles/StyledTileIcon.js';
50
+ import '../../../styled/tiles/StyledTileInput.js';
51
+ import '../../../styled/tiles/StyledTileLabel.js';
52
+
53
+ const EndIconComponent = props => React__default.createElement(StyledTextMediaFigure, Object.assign({
54
+ position: "end"
55
+ }, props));
56
+ EndIconComponent.displayName = 'FauxInput.EndIcon';
57
+ const EndIcon = EndIconComponent;
58
+
59
+ export { EndIcon };
@@ -0,0 +1,59 @@
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 '../../../styled/common/StyledField.js';
9
+ import '../../../styled/common/StyledFieldset.js';
10
+ import '../../../styled/common/StyledLegend.js';
11
+ import '../../../styled/common/StyledHint.js';
12
+ import '../../../styled/common/StyledLabel.js';
13
+ import '../../../styled/common/StyledMessage.js';
14
+ import '../../../styled/common/StyledMessageIcon.js';
15
+ import '../../../styled/text/StyledTextInput.js';
16
+ import '../../../styled/text/StyledTextarea.js';
17
+ import '../../../styled/text/StyledTextFauxInput.js';
18
+ import '../../../styled/text/StyledTextMediaInput.js';
19
+ import { StyledTextMediaFigure } from '../../../styled/text/StyledTextMediaFigure.js';
20
+ import '../../../styled/input-group/StyledInputGroup.js';
21
+ import '../../../styled/checkbox/StyledCheckLabel.js';
22
+ import '../../../styled/checkbox/StyledCheckHint.js';
23
+ import '../../../styled/checkbox/StyledCheckInput.js';
24
+ import '../../../styled/checkbox/StyledCheckMessage.js';
25
+ import '../../../styled/checkbox/StyledCheckSvg.js';
26
+ import '../../../styled/checkbox/StyledDashSvg.js';
27
+ import '../../../styled/file-upload/StyledFileUpload.js';
28
+ import '../../../styled/file-list/StyledFile.js';
29
+ import '../../../styled/file-list/StyledFileClose.js';
30
+ import '../../../styled/file-list/StyledFileDelete.js';
31
+ import '../../../styled/file-list/StyledFileIcon.js';
32
+ import '../../../styled/file-list/StyledFileList.js';
33
+ import '../../../styled/file-list/StyledFileListItem.js';
34
+ import '../../../styled/radio/StyledRadioLabel.js';
35
+ import '../../../styled/radio/StyledRadioHint.js';
36
+ import '../../../styled/radio/StyledRadioInput.js';
37
+ import '../../../styled/radio/StyledRadioMessage.js';
38
+ import '../../../styled/radio/StyledRadioSvg.js';
39
+ import '../../../styled/toggle/StyledToggleLabel.js';
40
+ import '../../../styled/toggle/StyledToggleHint.js';
41
+ import '../../../styled/toggle/StyledToggleInput.js';
42
+ import '../../../styled/toggle/StyledToggleMessage.js';
43
+ import '../../../styled/toggle/StyledToggleSvg.js';
44
+ import '../../../styled/select/StyledSelect.js';
45
+ import '../../../styled/select/StyledSelectWrapper.js';
46
+ import '../../../styled/range/StyledRangeInput.js';
47
+ import '../../../styled/tiles/StyledTile.js';
48
+ import '../../../styled/tiles/StyledTileDescription.js';
49
+ import '../../../styled/tiles/StyledTileIcon.js';
50
+ import '../../../styled/tiles/StyledTileInput.js';
51
+ import '../../../styled/tiles/StyledTileLabel.js';
52
+
53
+ const StartIconComponent = props => React__default.createElement(StyledTextMediaFigure, Object.assign({
54
+ position: "start"
55
+ }, props));
56
+ StartIconComponent.displayName = 'FauxInput.StartIcon';
57
+ const StartIcon = StartIconComponent;
58
+
59
+ export { StartIcon };
@@ -0,0 +1,66 @@
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 } from 'react';
8
+ import { Item } from './components/Item.js';
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 '../../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 { StyledFileList } from '../../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 FileListComponent = forwardRef((_ref, ref) => {
55
+ let {
56
+ ...props
57
+ } = _ref;
58
+ return React__default.createElement(StyledFileList, Object.assign({}, props, {
59
+ ref: ref
60
+ }));
61
+ });
62
+ FileListComponent.displayName = 'FileList';
63
+ const FileList = FileListComponent;
64
+ FileList.Item = Item;
65
+
66
+ export { FileList };