@react-ui-org/react-ui 0.42.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/CONTRIBUTING.md +44 -25
  2. package/README.md +1 -1
  3. package/dist/lib.development.js +1598 -652
  4. package/dist/lib.js +1 -9
  5. package/package.json +49 -48
  6. package/src/lib/components/{ui/Alert → Alert}/Alert.jsx +17 -14
  7. package/src/lib/components/{ui/Alert → Alert}/Alert.scss +3 -3
  8. package/src/lib/components/{ui/Alert → Alert}/README.mdx +6 -6
  9. package/src/lib/components/{ui/Alert → Alert}/_settings.scss +1 -1
  10. package/src/lib/components/{ui/Alert → Alert}/_theme.scss +0 -0
  11. package/src/lib/components/{ui/Alert → Alert}/_tools.scss +0 -0
  12. package/src/lib/components/{ui/Alert → Alert}/index.js +0 -0
  13. package/src/lib/components/{ui/Badge → Badge}/Badge.jsx +2 -2
  14. package/src/lib/components/{ui/Badge → Badge}/Badge.scss +3 -3
  15. package/src/lib/components/{ui/Badge → Badge}/README.mdx +3 -3
  16. package/src/lib/components/{ui/Badge → Badge}/index.js +0 -0
  17. package/src/lib/components/Button/Button.jsx +198 -0
  18. package/src/lib/components/{ui/Button → Button}/Button.scss +0 -0
  19. package/src/lib/components/{ui/Button → Button}/README.mdx +160 -75
  20. package/src/lib/components/Button/_base.scss +148 -0
  21. package/src/lib/components/{ui/Button → Button}/_priorities.scss +0 -4
  22. package/src/lib/components/{ui/Button → Button}/_settings.scss +2 -3
  23. package/src/lib/components/{ui/Button → Button}/_theme.scss +3 -11
  24. package/src/lib/components/{ui/Button → Button}/_tools.scss +27 -44
  25. package/src/lib/components/Button/helpers/getRootLabelVisibilityClassName.js +33 -0
  26. package/src/lib/components/{ui/Button → Button}/helpers/getRootPriorityClassName.js +0 -4
  27. package/src/lib/components/{ui/Button → Button}/index.js +0 -0
  28. package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/ButtonGroup.jsx +9 -11
  29. package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/ButtonGroup.scss +0 -0
  30. package/src/lib/components/ButtonGroup/ButtonGroupContext.js +3 -0
  31. package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/README.mdx +26 -2
  32. package/src/lib/components/ButtonGroup/index.js +2 -0
  33. package/src/lib/components/{layout/CTA → CTA}/CTA.jsx +5 -2
  34. package/src/lib/components/{layout/CTA → CTA}/CTA.scss +2 -2
  35. package/src/lib/components/{layout/CTA → CTA}/CTACenter.jsx +1 -1
  36. package/src/lib/components/{layout/CTA → CTA}/CTAEnd.jsx +1 -1
  37. package/src/lib/components/{layout/CTA → CTA}/CTAStart.jsx +1 -1
  38. package/src/lib/components/{layout/CTA → CTA}/README.mdx +3 -3
  39. package/src/lib/components/{layout/CTA → CTA}/index.js +0 -0
  40. package/src/lib/components/{ui/Card → Card}/Card.jsx +6 -4
  41. package/src/lib/components/{ui/Card → Card}/Card.scss +1 -1
  42. package/src/lib/components/{ui/Card → Card}/CardBody.jsx +1 -1
  43. package/src/lib/components/{ui/Card → Card}/CardFooter.jsx +1 -1
  44. package/src/lib/components/{ui/Card → Card}/README.mdx +2 -2
  45. package/src/lib/components/{ui/Card → Card}/_theme.scss +0 -0
  46. package/src/lib/components/{ui/Card → Card}/_tools.scss +0 -0
  47. package/src/lib/components/{ui/Card → Card}/index.js +0 -0
  48. package/src/lib/components/{layout/Center → Center}/Center.jsx +1 -1
  49. package/src/lib/components/{layout/Center → Center}/Center.scss +0 -0
  50. package/src/lib/components/{layout/Center → Center}/README.mdx +2 -2
  51. package/src/lib/components/{layout/Center → Center}/index.js +0 -0
  52. package/src/lib/components/CheckboxField/CheckboxField.jsx +164 -0
  53. package/src/lib/components/{ui/CheckboxField → CheckboxField}/CheckboxField.scss +5 -5
  54. package/src/lib/components/{ui/CheckboxField → CheckboxField}/README.mdx +15 -12
  55. package/src/lib/components/{ui/CheckboxField → CheckboxField}/index.js +0 -0
  56. package/src/lib/components/FileInputField/FileInputField.jsx +162 -0
  57. package/src/lib/components/{ui/FileInputField → FileInputField}/FileInputField.scss +5 -5
  58. package/src/lib/components/{ui/FileInputField → FileInputField}/README.mdx +8 -6
  59. package/src/lib/components/{ui/FileInputField → FileInputField}/index.js +0 -0
  60. package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayout.jsx +16 -18
  61. package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayout.scss +3 -3
  62. package/src/lib/components/FormLayout/FormLayoutContext.js +3 -0
  63. package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayoutCustomField.jsx +33 -30
  64. package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayoutCustomField.scss +4 -4
  65. package/src/lib/components/{layout/FormLayout → FormLayout}/README.mdx +30 -40
  66. package/src/lib/components/{layout/FormLayout → FormLayout}/_theme.scss +0 -0
  67. package/src/lib/components/{layout/FormLayout → FormLayout}/index.js +1 -0
  68. package/src/lib/components/{layout/Grid → Grid}/Grid.jsx +23 -5
  69. package/src/lib/components/{layout/Grid → Grid}/Grid.scss +2 -4
  70. package/src/lib/components/{layout/Grid → Grid}/GridSpan.jsx +10 -3
  71. package/src/lib/components/{layout/Grid → Grid}/README.mdx +42 -38
  72. package/src/lib/components/{layout/Grid → Grid}/_theme.scss +1 -2
  73. package/src/lib/components/{layout/Grid → Grid}/_tools.scss +2 -2
  74. package/src/lib/components/{layout/Grid → Grid}/helpers/generateResponsiveCustomProperties.js +0 -0
  75. package/src/lib/components/{layout/Grid → Grid}/index.js +0 -0
  76. package/src/lib/components/Link/Link.jsx +45 -0
  77. package/src/lib/components/Link/Link.scss +11 -0
  78. package/src/lib/components/Link/README.mdx +85 -0
  79. package/src/lib/components/Link/_theme.scss +4 -0
  80. package/src/lib/components/Link/index.js +1 -0
  81. package/src/lib/components/{layout/List → List}/List.jsx +1 -1
  82. package/src/lib/components/{layout/List → List}/List.scss +2 -2
  83. package/src/lib/components/{layout/List → List}/ListItem.jsx +1 -1
  84. package/src/lib/components/{layout/List → List}/README.mdx +2 -2
  85. package/src/lib/components/{layout/List → List}/_theme.scss +0 -0
  86. package/src/lib/components/{layout/List → List}/index.js +0 -0
  87. package/src/lib/components/{layout/Media → Media}/Media.jsx +4 -2
  88. package/src/lib/components/{layout/Media → Media}/Media.scss +1 -1
  89. package/src/lib/components/{layout/Media → Media}/MediaBody.jsx +1 -1
  90. package/src/lib/components/{layout/Media → Media}/MediaObject.jsx +1 -1
  91. package/src/lib/components/{layout/Media → Media}/README.mdx +2 -2
  92. package/src/lib/components/{layout/Media → Media}/index.js +0 -0
  93. package/src/lib/components/{ui/Modal → Modal}/Modal.jsx +28 -27
  94. package/src/lib/components/{ui/Modal → Modal}/Modal.scss +5 -5
  95. package/src/lib/components/{ui/Modal → Modal}/README.mdx +40 -40
  96. package/src/lib/components/{ui/Modal → Modal}/_settings.scss +4 -4
  97. package/src/lib/components/{ui/Modal → Modal}/_theme.scss +0 -0
  98. package/src/lib/components/{ui/Modal → Modal}/index.js +0 -0
  99. package/src/lib/components/{ui/Paper → Paper}/Paper.jsx +8 -1
  100. package/src/lib/components/{ui/Paper → Paper}/Paper.scss +5 -0
  101. package/src/lib/components/{ui/Paper → Paper}/README.mdx +14 -2
  102. package/src/lib/components/{ui/Paper → Paper}/_theme.scss +2 -0
  103. package/src/lib/components/{ui/Paper → Paper}/index.js +0 -0
  104. package/src/lib/components/{ui/Radio → Radio}/README.mdx +17 -14
  105. package/src/lib/components/Radio/Radio.jsx +188 -0
  106. package/src/lib/components/{ui/Radio → Radio}/Radio.scss +9 -9
  107. package/src/lib/components/{ui/Radio → Radio}/index.js +0 -0
  108. package/src/lib/components/{ui/ScrollView → ScrollView}/README.mdx +10 -10
  109. package/src/lib/components/{ui/ScrollView → ScrollView}/ScrollView.jsx +9 -10
  110. package/src/lib/components/{ui/ScrollView → ScrollView}/ScrollView.scss +6 -6
  111. package/src/lib/components/{ui/ScrollView → ScrollView}/_theme.scss +0 -0
  112. package/src/lib/components/{ui/ScrollView → ScrollView}/index.js +0 -0
  113. package/src/lib/components/{ui/SelectField → SelectField}/README.mdx +44 -41
  114. package/src/lib/components/SelectField/SelectField.jsx +219 -0
  115. package/src/lib/components/{ui/SelectField → SelectField}/SelectField.scss +6 -6
  116. package/src/lib/components/{ui/SelectField → SelectField}/index.js +0 -0
  117. package/src/lib/components/{ui/Table → Table}/README.mdx +7 -7
  118. package/src/lib/components/{ui/Table → Table}/Table.jsx +9 -13
  119. package/src/lib/components/{ui/Table → Table}/Table.scss +1 -1
  120. package/src/lib/components/{ui/Table → Table}/_settings.scss +4 -4
  121. package/src/lib/components/{ui/Table → Table}/index.js +0 -0
  122. package/src/lib/components/{ui/Tabs → Tabs}/README.mdx +3 -3
  123. package/src/lib/components/{ui/Tabs → Tabs}/Tabs.jsx +4 -4
  124. package/src/lib/components/{ui/Tabs → Tabs}/Tabs.scss +1 -1
  125. package/src/lib/components/{ui/Tabs → Tabs}/TabsItem.jsx +4 -3
  126. package/src/lib/components/{ui/Tabs → Tabs}/TabsItem.scss +3 -3
  127. package/src/lib/components/{ui/Tabs → Tabs}/_theme.scss +0 -0
  128. package/src/lib/components/{ui/Tabs → Tabs}/index.js +0 -0
  129. package/src/lib/components/{ui/Text → Text}/README.mdx +19 -19
  130. package/src/lib/components/{ui/Text → Text}/Text.jsx +1 -1
  131. package/src/lib/components/{ui/Text → Text}/Text.scss +0 -0
  132. package/src/lib/components/{ui/Text → Text}/helpers/getRootHyphensClassName.js +0 -0
  133. package/src/lib/components/{ui/Text → Text}/helpers/getRootWordWrappingClassName.js +0 -0
  134. package/src/lib/components/{ui/Text → Text}/index.js +0 -0
  135. package/src/lib/components/{ui/TextArea → TextArea}/README.mdx +8 -6
  136. package/src/lib/components/{ui/TextArea → TextArea}/TextArea.jsx +78 -78
  137. package/src/lib/components/{ui/TextArea → TextArea}/TextArea.scss +6 -6
  138. package/src/lib/components/{ui/TextArea → TextArea}/index.js +0 -0
  139. package/src/lib/components/{ui/TextField → TextField}/README.mdx +7 -6
  140. package/src/lib/components/{ui/TextField → TextField}/TextField.jsx +20 -23
  141. package/src/lib/components/{ui/TextField → TextField}/TextField.scss +6 -6
  142. package/src/lib/components/{ui/TextField → TextField}/index.js +0 -0
  143. package/src/lib/components/{ui/Toggle → Toggle}/README.mdx +15 -12
  144. package/src/lib/components/Toggle/Toggle.jsx +163 -0
  145. package/src/lib/components/{ui/Toggle → Toggle}/Toggle.scss +5 -5
  146. package/src/lib/components/{ui/Toggle → Toggle}/index.js +0 -0
  147. package/src/lib/components/{layout/Toolbar → Toolbar}/README.mdx +26 -26
  148. package/src/lib/components/{layout/Toolbar → Toolbar}/Toolbar.jsx +1 -1
  149. package/src/lib/components/{layout/Toolbar → Toolbar}/Toolbar.scss +1 -1
  150. package/src/lib/components/{layout/Toolbar → Toolbar}/ToolbarGroup.jsx +1 -1
  151. package/src/lib/components/{layout/Toolbar → Toolbar}/ToolbarItem.jsx +1 -1
  152. package/src/lib/components/{layout/Toolbar → Toolbar}/_theme.scss +0 -0
  153. package/src/lib/components/{layout/Toolbar → Toolbar}/index.js +0 -0
  154. package/src/lib/components/{ui/withForwardedRef.jsx → withForwardedRef.jsx} +0 -0
  155. package/src/lib/helpers/resolveContextOrProp.js +7 -0
  156. package/src/lib/index.js +34 -35
  157. package/src/lib/styles/tools/_accessibility.scss +9 -0
  158. package/src/lib/theme.scss +25 -7
  159. package/src/lib/components/ui/Button/Button.jsx +0 -191
  160. package/src/lib/components/ui/Button/_base.scss +0 -154
  161. package/src/lib/components/ui/Button/helpers/getRootLabelVisibilityClassName.js +0 -11
  162. package/src/lib/components/ui/ButtonGroup/index.js +0 -1
  163. package/src/lib/components/ui/CheckboxField/CheckboxField.jsx +0 -173
  164. package/src/lib/components/ui/FileInputField/FileInputField.jsx +0 -158
  165. package/src/lib/components/ui/Radio/Radio.jsx +0 -179
  166. package/src/lib/components/ui/SelectField/SelectField.jsx +0 -214
  167. package/src/lib/components/ui/Toggle/Toggle.jsx +0 -174
@@ -1,191 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import getRootSizeClassName from '../../../helpers/getRootSizeClassName';
4
- import getRootColorClassName from '../../../helpers/getRootColorClassName';
5
- import { withProviderContext } from '../../../provider';
6
- import transferProps from '../../../utils/transferProps';
7
- import withForwardedRef from '../withForwardedRef';
8
- import getRootLabelVisibilityClassName from './helpers/getRootLabelVisibilityClassName';
9
- import getRootPriorityClassName from './helpers/getRootPriorityClassName';
10
- import styles from './Button.scss';
11
-
12
- export const Button = ({
13
- afterLabel,
14
- beforeLabel,
15
- block,
16
- clickHandler,
17
- disabled,
18
- endCorner,
19
- forwardedRef,
20
- grouped,
21
- id,
22
- label,
23
- labelVisibility,
24
- loadingIcon,
25
- priority,
26
- size,
27
- startCorner,
28
- type,
29
- color,
30
- ...restProps
31
- }) => (
32
- /* No worries, `type` is always assigned correctly through props. */
33
- /* eslint-disable react/button-has-type */
34
- <button
35
- {...transferProps(restProps)}
36
- className={
37
- priority === 'link'
38
- ? [
39
- styles.root,
40
- getRootPriorityClassName(priority, styles),
41
- ].join(' ')
42
- : [
43
- styles.root,
44
- getRootPriorityClassName(priority, styles),
45
- getRootColorClassName(color, styles),
46
- getRootSizeClassName(size, styles),
47
- getRootLabelVisibilityClassName(labelVisibility, styles),
48
- block ? styles.rootBlock : '',
49
- grouped ? styles.rootGrouped : '',
50
- loadingIcon ? styles.isRootLoading : '',
51
- ].join(' ')
52
- }
53
- disabled={disabled || !!loadingIcon}
54
- id={id}
55
- onClick={clickHandler}
56
- ref={forwardedRef}
57
- type={type}
58
- >
59
- {priority !== 'link' && startCorner && (
60
- <span className={styles.startCorner}>
61
- {startCorner}
62
- </span>
63
- )}
64
- {beforeLabel && (
65
- <span className={styles.beforeLabel}>
66
- {beforeLabel}
67
- </span>
68
- )}
69
- <span
70
- className={styles.label}
71
- {...(id && { id: `${id}__labelText` })}
72
- >
73
- {label}
74
- </span>
75
- {afterLabel && (
76
- <span className={styles.afterLabel}>
77
- {afterLabel}
78
- </span>
79
- )}
80
- {priority !== 'link' && endCorner && (
81
- <span className={styles.endCorner}>
82
- {endCorner}
83
- </span>
84
- )}
85
- {priority !== 'link' && loadingIcon && (
86
- <span className={styles.loadingIcon}>
87
- {loadingIcon}
88
- </span>
89
- )}
90
- </button>
91
- /* eslint-enable react/button-has-type */
92
- );
93
-
94
- Button.defaultProps = {
95
- afterLabel: null,
96
- beforeLabel: null,
97
- block: false,
98
- clickHandler: null,
99
- color: 'primary',
100
- disabled: false,
101
- endCorner: null,
102
- forwardedRef: undefined,
103
- grouped: false,
104
- id: undefined,
105
- labelVisibility: 'all',
106
- loadingIcon: null,
107
- priority: 'filled',
108
- size: 'medium',
109
- startCorner: null,
110
- type: 'button',
111
- };
112
-
113
- Button.propTypes = {
114
- /**
115
- * Element to be displayed after label, eg. an icon.
116
- */
117
- afterLabel: PropTypes.node,
118
- /**
119
- * Element to be displayed before label, eg. an icon.
120
- */
121
- beforeLabel: PropTypes.node,
122
- /**
123
- * If `true`, the button will span the full width of its parent.
124
- */
125
- block: PropTypes.bool,
126
- /**
127
- * Function to call when the button is clicked.
128
- */
129
- clickHandler: PropTypes.func,
130
- /**
131
- * [Color variant](/foundation/colors#component-colors) to clarify importance and meaning of the button.
132
- */
133
- color: PropTypes.oneOf(['primary', 'secondary', 'success', 'warning', 'danger', 'help', 'info', 'note', 'light', 'dark']),
134
- /**
135
- * If `true`, the button will be disabled.
136
- */
137
- disabled: PropTypes.bool,
138
- /**
139
- * Element to be displayed in the top right corner.
140
- */
141
- endCorner: PropTypes.node,
142
- /**
143
- * Reference forwarded to the `button` element.
144
- */
145
- forwardedRef: PropTypes.oneOfType([
146
- PropTypes.func,
147
- // eslint-disable-next-line react/forbid-prop-types
148
- PropTypes.shape({ current: PropTypes.any }),
149
- ]),
150
- /**
151
- * Treat button differently when it's inside `ButtonGroup`. Do not set manually!
152
- */
153
- grouped: PropTypes.bool,
154
- /**
155
- * ID of the root HTML element.
156
- */
157
- id: PropTypes.string,
158
- /**
159
- * Button label.
160
- */
161
- label: PropTypes.string.isRequired,
162
- /**
163
- * Defines when the button label should be visible.
164
- */
165
- labelVisibility: PropTypes.oneOf(['all', 'desktop', 'none']),
166
- /**
167
- * Element to be displayed as a loading icon. When defined, it implies the button is in the
168
- * loading state.
169
- */
170
- loadingIcon: PropTypes.node,
171
- /**
172
- * Visual priority to highlight or suppress the button.
173
- */
174
- priority: PropTypes.oneOf(['filled', 'outline', 'flat', 'link']),
175
- /**
176
- * Size of the button.
177
- */
178
- size: PropTypes.oneOf(['small', 'medium', 'large']),
179
- /**
180
- * Element to be displayed in the top left corner.
181
- */
182
- startCorner: PropTypes.node,
183
- /**
184
- * Set the HTML `type` attribute of the `button` element.
185
- */
186
- type: PropTypes.oneOf(['button', 'submit']),
187
- };
188
-
189
- export const ButtonWithContext = withForwardedRef(withProviderContext(Button, 'Button'));
190
-
191
- export default ButtonWithContext;
@@ -1,154 +0,0 @@
1
- @use 'sass:map';
2
- @use '../../../styles/tools/accessibility';
3
- @use '../../../styles/tools/breakpoint';
4
- @use 'settings';
5
- @use 'theme';
6
- @use 'tools';
7
-
8
- .root {
9
- @include tools.button();
10
- }
11
-
12
- .label {
13
- display: block;
14
- }
15
-
16
- .beforeLabel,
17
- .afterLabel,
18
- .startCorner,
19
- .endCorner,
20
- .loadingIcon {
21
- display: flex;
22
- align-items: baseline;
23
- justify-content: center;
24
- }
25
-
26
- .beforeLabel {
27
- margin-right: settings.$icon-spacing;
28
- }
29
-
30
- .afterLabel,
31
- .loadingIcon {
32
- margin-left: settings.$icon-spacing;
33
- }
34
-
35
- .startCorner,
36
- .endCorner {
37
- position: absolute;
38
- top: -0.35rem;
39
- }
40
-
41
- .startCorner {
42
- left: 0;
43
- margin-left: -0.35rem;
44
- }
45
-
46
- .endCorner {
47
- right: 0;
48
- margin-right: -0.35rem;
49
- }
50
-
51
- .rootSizeSmall {
52
- @include tools.button-size(small);
53
- }
54
-
55
- .rootSizeMedium {
56
- @include tools.button-size(medium);
57
- }
58
-
59
- .rootSizeLarge {
60
- @include tools.button-size(large);
61
- }
62
-
63
- .rootBlock {
64
- width: 100%;
65
- }
66
-
67
- .rootBlock.withLabelHiddenMobile {
68
- @include breakpoint.up(settings.$breakpoint) {
69
- width: 100%;
70
- }
71
- }
72
-
73
- .rootGrouped {
74
- z-index: map.get(settings.$group-z-indexes, button);
75
-
76
- &:not(:first-child) {
77
- margin-left: var(--local-gap);
78
- border-top-left-radius: 0;
79
- border-bottom-left-radius: 0;
80
- }
81
-
82
- &:not(:last-child) {
83
- border-top-right-radius: 0;
84
- border-bottom-right-radius: 0;
85
- }
86
-
87
- &:focus,
88
- &:not(:disabled):hover {
89
- z-index: map.get(settings.$group-z-indexes, button-hover);
90
- }
91
- }
92
-
93
- .rootGrouped .startCorner,
94
- .rootGrouped .endCorner {
95
- z-index: map.get(settings.$group-z-indexes, button-overflowing-elements);
96
- }
97
-
98
- .withLabelHidden .label,
99
- .withLabelHiddenMobile .label {
100
- @include accessibility.hide-text();
101
- }
102
-
103
- .withLabelHiddenMobile .label {
104
- @include breakpoint.up(settings.$breakpoint) {
105
- position: relative;
106
- width: auto;
107
- height: auto;
108
- }
109
- }
110
-
111
- .withLabelHidden .beforeLabel,
112
- .withLabelHidden .afterLabel,
113
- .withLabelHiddenMobile .beforeLabel,
114
- .withLabelHiddenMobile .afterLabel {
115
- margin-right: 0;
116
- margin-left: 0;
117
- }
118
-
119
- .withLabelHiddenMobile .beforeLabel {
120
- @include breakpoint.up(settings.$breakpoint) {
121
- margin-right: settings.$icon-spacing;
122
- }
123
- }
124
-
125
- .withLabelHiddenMobile .afterLabel {
126
- @include breakpoint.up(settings.$breakpoint) {
127
- margin-left: settings.$icon-spacing;
128
- }
129
- }
130
-
131
- .withLabelHidden.isRootLoading .loadingIcon,
132
- .withLabelHiddenMobile.isRootLoading .loadingIcon {
133
- margin-left: 0;
134
- }
135
-
136
- .withLabelHidden.isRootLoading .beforeLabel,
137
- .withLabelHidden.isRootLoading .afterLabel,
138
- .withLabelHiddenMobile.isRootLoading .beforeLabel,
139
- .withLabelHiddenMobile.isRootLoading .afterLabel {
140
- display: none;
141
- }
142
-
143
- .withLabelHiddenMobile.isRootLoading .beforeLabel,
144
- .withLabelHiddenMobile.isRootLoading .afterLabel {
145
- @include breakpoint.up(settings.$breakpoint) {
146
- display: flex;
147
- }
148
- }
149
-
150
- .withLabelHiddenMobile.isRootLoading .loadingIcon {
151
- @include breakpoint.up(settings.$breakpoint) {
152
- margin-left: settings.$icon-spacing;
153
- }
154
- }
@@ -1,11 +0,0 @@
1
- export default (labelVisibility, styles) => {
2
- if (labelVisibility === 'desktop') {
3
- return styles.withLabelHiddenMobile;
4
- }
5
-
6
- if (labelVisibility === 'none') {
7
- return styles.withLabelHidden;
8
- }
9
-
10
- return null;
11
- };
@@ -1 +0,0 @@
1
- export { default } from './ButtonGroup';
@@ -1,173 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import getRootValidationStateClassName from '../../../helpers/getRootValidationStateClassName';
4
- import { withProviderContext } from '../../../provider';
5
- import transferProps from '../../../utils/transferProps';
6
- import withForwardedRef from '../withForwardedRef';
7
- import styles from './CheckboxField.scss';
8
-
9
- export const CheckboxField = ({
10
- changeHandler,
11
- checked,
12
- disabled,
13
- forwardedRef,
14
- helpText,
15
- id,
16
- inFormLayout,
17
- isLabelVisible,
18
- label,
19
- labelPosition,
20
- layout,
21
- required,
22
- validationState,
23
- validationText,
24
- value,
25
- ...restProps
26
- }) => (
27
- <label
28
- className={[
29
- styles.root,
30
- inFormLayout ? styles.isRootInFormLayout : '',
31
- labelPosition === 'before' ? styles.hasRootLabelBefore : '',
32
- layout === 'horizontal' ? styles.rootLayoutHorizontal : styles.rootLayoutVertical,
33
- disabled ? styles.isRootDisabled : '',
34
- required ? styles.isRootRequired : '',
35
- getRootValidationStateClassName(validationState, styles),
36
- ].join(' ')}
37
- htmlFor={id}
38
- id={id && `${id}__label`}
39
- >
40
- <div className={styles.field}>
41
- <input
42
- {...transferProps(restProps)}
43
- checked={checked}
44
- className={styles.input}
45
- disabled={disabled}
46
- id={id}
47
- onChange={changeHandler}
48
- ref={forwardedRef}
49
- required={required}
50
- type="checkbox"
51
- value={value}
52
- />
53
- <div
54
- className={[
55
- styles.label,
56
- isLabelVisible ? '' : styles.isLabelHidden,
57
- ].join(' ')}
58
- id={id && `${id}__labelText`}
59
- >
60
- {label}
61
- </div>
62
- </div>
63
- {helpText && (
64
- <div
65
- className={styles.helpText}
66
- id={id && `${id}__helpText`}
67
- >
68
- {helpText}
69
- </div>
70
- )}
71
- {validationText && (
72
- <div
73
- className={styles.validationText}
74
- id={id && `${id}__validationText`}
75
- >
76
- {validationText}
77
- </div>
78
- )}
79
- </label>
80
- );
81
-
82
- CheckboxField.defaultProps = {
83
- changeHandler: null,
84
- checked: false,
85
- disabled: false,
86
- forwardedRef: undefined,
87
- helpText: null,
88
- id: undefined,
89
- inFormLayout: false,
90
- isLabelVisible: true,
91
- labelPosition: 'after',
92
- layout: 'vertical',
93
- required: false,
94
- validationState: null,
95
- validationText: null,
96
- value: undefined,
97
- };
98
-
99
- CheckboxField.propTypes = {
100
- /**
101
- * Function to call when the input is toggled.
102
- */
103
- changeHandler: PropTypes.func,
104
- /**
105
- * If `true`, the input will be checked.
106
- */
107
- checked: PropTypes.bool,
108
- /**
109
- * If `true`, the input will be disabled.
110
- */
111
- disabled: PropTypes.bool,
112
- /**
113
- * Reference forwarded to the `input` element.
114
- */
115
- forwardedRef: PropTypes.oneOfType([
116
- PropTypes.func,
117
- // eslint-disable-next-line react/forbid-prop-types
118
- PropTypes.shape({ current: PropTypes.any }),
119
- ]),
120
- /**
121
- * Optional help text.
122
- */
123
- helpText: PropTypes.node,
124
- /**
125
- * ID of the input HTML element. It also serves as a prefix for important inner elements:
126
- * `<ID>__label`, `<ID>__labelText`, `<ID>__helpText`, and `<ID>__validationText`.
127
- */
128
- id: PropTypes.string,
129
- /**
130
- * Treat the field differently when it's inside a FormLayout. Do not set manually!
131
- */
132
- inFormLayout: PropTypes.bool,
133
- /**
134
- * If `false`, the label will be visually hidden (but remains accessible by assistive
135
- * technologies).
136
- */
137
- isLabelVisible: PropTypes.bool,
138
- /**
139
- * Checkbox field label.
140
- */
141
- label: PropTypes.string.isRequired,
142
- /**
143
- * Placement of the label relative to the input.
144
- */
145
- labelPosition: PropTypes.oneOf(['before', 'after']),
146
- /**
147
- * Layout of the field. It has impact only on CheckboxField inside a FormLayout.
148
- */
149
- layout: PropTypes.oneOf(['horizontal', 'vertical']),
150
- /**
151
- * If `true`, the input will be required.
152
- */
153
- required: PropTypes.bool,
154
- /**
155
- * Alter the field to provide feedback based on validation result.
156
- */
157
- validationState: PropTypes.oneOf(['invalid', 'valid', 'warning']),
158
- /**
159
- * Validation message to be displayed.
160
- */
161
- validationText: PropTypes.node,
162
- /**
163
- * Value of the input.
164
- */
165
- value: PropTypes.oneOfType([
166
- PropTypes.string,
167
- PropTypes.number,
168
- ]),
169
- };
170
-
171
- export const CheckboxFieldWithContext = withForwardedRef(withProviderContext(CheckboxField, 'CheckboxField'));
172
-
173
- export default CheckboxFieldWithContext;
@@ -1,158 +0,0 @@
1
- import PropTypes from 'prop-types';
2
- import React from 'react';
3
- import getRootValidationStateClassName from '../../../helpers/getRootValidationStateClassName';
4
- import { withProviderContext } from '../../../provider';
5
- import transferProps from '../../../utils/transferProps';
6
- import withForwardedRef from '../withForwardedRef';
7
- import styles from './FileInputField.scss';
8
-
9
- export const FileInputField = ({
10
- changeHandler,
11
- disabled,
12
- forwardedRef,
13
- fullWidth,
14
- helpText,
15
- id,
16
- inFormLayout,
17
- isLabelVisible,
18
- label,
19
- layout,
20
- required,
21
- validationState,
22
- validationText,
23
- ...restProps
24
- }) => (
25
- <label
26
- className={[
27
- styles.root,
28
- fullWidth ? styles.isRootFullWidth : '',
29
- inFormLayout ? styles.isRootInFormLayout : '',
30
- layout === 'horizontal' ? styles.rootLayoutHorizontal : styles.rootLayoutVertical,
31
- disabled ? styles.isRootDisabled : '',
32
- required ? styles.isRootRequired : '',
33
- getRootValidationStateClassName(validationState, styles),
34
- ].join(' ')}
35
- htmlFor={id}
36
- id={id && `${id}__label`}
37
- >
38
- <div
39
- className={[
40
- styles.label,
41
- isLabelVisible ? '' : styles.isLabelHidden,
42
- ].join(' ')}
43
- id={id && `${id}__labelText`}
44
- >
45
- {label}
46
- </div>
47
- <div className={styles.field}>
48
- <div className={styles.inputContainer}>
49
- <input
50
- {...transferProps(restProps)}
51
- className={styles.input}
52
- disabled={disabled}
53
- id={id}
54
- onChange={changeHandler}
55
- ref={forwardedRef}
56
- required={required}
57
- type="file"
58
- />
59
- </div>
60
- {helpText && (
61
- <div
62
- className={styles.helpText}
63
- id={id && `${id}__helpText`}
64
- >
65
- {helpText}
66
- </div>
67
- )}
68
- {validationText && (
69
- <div
70
- className={styles.validationText}
71
- id={id && `${id}__validationText`}
72
- >
73
- {validationText}
74
- </div>
75
- )}
76
- </div>
77
- </label>
78
- );
79
-
80
- FileInputField.defaultProps = {
81
- changeHandler: null,
82
- disabled: false,
83
- forwardedRef: undefined,
84
- fullWidth: false,
85
- helpText: null,
86
- id: undefined,
87
- inFormLayout: false,
88
- isLabelVisible: true,
89
- layout: 'vertical',
90
- required: false,
91
- validationState: null,
92
- validationText: null,
93
- };
94
-
95
- FileInputField.propTypes = {
96
- /**
97
- * Function to call when the input has changed.
98
- */
99
- changeHandler: PropTypes.func,
100
- /**
101
- * If `true`, the input will be disabled.
102
- */
103
- disabled: PropTypes.bool,
104
- /**
105
- * Reference forwarded to the `input` element.
106
- */
107
- forwardedRef: PropTypes.oneOfType([
108
- PropTypes.func,
109
- // eslint-disable-next-line react/forbid-prop-types
110
- PropTypes.shape({ current: PropTypes.any }),
111
- ]),
112
- /**
113
- * If `true`, the field will span the full width of its parent.
114
- */
115
- fullWidth: PropTypes.bool,
116
- /**
117
- * Optional help text.
118
- */
119
- helpText: PropTypes.node,
120
- /**
121
- * ID of the input HTML element. It also serves as a prefix for important inner elements:
122
- * `<ID>__label`, `<ID>__labelText`, `<ID>__helpText`, and `<ID>__validationText`.
123
- */
124
- id: PropTypes.string,
125
- /**
126
- * Treat the field differently when it's inside a FormLayout. Do not set manually!
127
- */
128
- inFormLayout: PropTypes.bool,
129
- /**
130
- * If `false`, the label will be visually hidden (but remains accessible by assistive
131
- * technologies).
132
- */
133
- isLabelVisible: PropTypes.bool,
134
- /**
135
- * Text field label.
136
- */
137
- label: PropTypes.string.isRequired,
138
- /**
139
- * Layout of the field.
140
- */
141
- layout: PropTypes.oneOf(['horizontal', 'vertical']),
142
- /**
143
- * If `true`, the input will be required.
144
- */
145
- required: PropTypes.bool,
146
- /**
147
- * Alter the field to provide feedback based on validation result.
148
- */
149
- validationState: PropTypes.oneOf(['invalid', 'valid', 'warning']),
150
- /**
151
- * Validation message to be displayed.
152
- */
153
- validationText: PropTypes.node,
154
- };
155
-
156
- export const FileInputFieldWithContext = withForwardedRef(withProviderContext(FileInputField, 'FileInputField'));
157
-
158
- export default FileInputFieldWithContext;