@react-ui-org/react-ui 0.55.1 → 0.56.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.
- package/.nvmrc +1 -1
- package/dist/react-ui.css +16 -21
- package/dist/react-ui.development.css +18 -37
- package/dist/react-ui.development.js +101 -91
- package/dist/react-ui.js +1 -1
- package/package.json +41 -39
- package/src/components/Alert/Alert.jsx +1 -1
- package/src/components/Alert/README.md +5 -4
- package/src/components/Badge/Badge.jsx +1 -1
- package/src/components/Badge/README.md +5 -4
- package/src/components/Button/Button.jsx +1 -1
- package/src/components/Button/README.md +20 -18
- package/src/components/Button/_base.scss +1 -4
- package/src/components/ButtonGroup/ButtonGroup.jsx +1 -1
- package/src/components/ButtonGroup/README.md +5 -4
- package/src/components/Card/Card.jsx +1 -1
- package/src/components/Card/CardBody.jsx +1 -1
- package/src/components/Card/CardFooter.jsx +1 -1
- package/src/components/Card/README.md +5 -4
- package/src/components/CheckboxField/CheckboxField.jsx +2 -2
- package/src/components/CheckboxField/README.md +8 -4
- package/src/components/FileInputField/FileInputField.jsx +3 -3
- package/src/components/FileInputField/README.md +8 -4
- package/src/components/FormLayout/FormLayout.jsx +1 -1
- package/src/components/FormLayout/FormLayoutCustomField.jsx +1 -1
- package/src/components/FormLayout/README.md +5 -4
- package/src/components/Grid/Grid.jsx +1 -1
- package/src/components/Grid/Grid.module.scss +2 -4
- package/src/components/Grid/GridSpan.jsx +1 -1
- package/src/components/Grid/README.md +6 -4
- package/src/components/Grid/_settings.scss +2 -2
- package/src/components/InputGroup/InputGroup.jsx +2 -2
- package/src/components/InputGroup/README.md +5 -4
- package/src/components/Modal/Modal.jsx +1 -1
- package/src/components/Modal/Modal.module.scss +1 -1
- package/src/components/Modal/ModalBody.jsx +1 -1
- package/src/components/Modal/ModalCloseButton.jsx +1 -1
- package/src/components/Modal/ModalContent.jsx +1 -1
- package/src/components/Modal/ModalFooter.jsx +1 -1
- package/src/components/Modal/ModalHeader.jsx +2 -4
- package/src/components/Modal/ModalTitle.jsx +2 -4
- package/src/components/Modal/README.md +3 -2
- package/src/components/Paper/Paper.jsx +1 -1
- package/src/components/Paper/README.md +5 -4
- package/src/components/Popover/Popover.jsx +1 -1
- package/src/components/Popover/PopoverWrapper.jsx +1 -1
- package/src/components/Popover/README.md +5 -4
- package/src/components/Radio/README.md +8 -4
- package/src/components/Radio/Radio.jsx +2 -2
- package/src/components/ScrollView/README.md +5 -4
- package/src/components/ScrollView/ScrollView.jsx +1 -1
- package/src/components/ScrollView/ScrollView.module.scss +2 -4
- package/src/components/SelectField/README.md +8 -4
- package/src/components/SelectField/SelectField.jsx +2 -2
- package/src/components/Table/README.md +5 -4
- package/src/components/Table/Table.jsx +1 -1
- package/src/components/Tabs/README.md +3 -2
- package/src/components/Tabs/Tabs.jsx +1 -1
- package/src/components/Tabs/TabsItem.jsx +1 -1
- package/src/components/Text/README.md +3 -2
- package/src/components/Text/Text.jsx +1 -1
- package/src/components/TextArea/README.md +8 -4
- package/src/components/TextArea/TextArea.jsx +2 -2
- package/src/components/TextField/README.md +8 -4
- package/src/components/TextField/TextField.jsx +2 -2
- package/src/components/TextLink/README.md +5 -4
- package/src/components/TextLink/TextLink.jsx +1 -1
- package/src/components/Toggle/README.md +8 -4
- package/src/components/Toggle/Toggle.jsx +2 -2
- package/src/components/Toolbar/README.md +5 -4
- package/src/components/Toolbar/Toolbar.jsx +1 -1
- package/src/components/Toolbar/ToolbarGroup.jsx +1 -1
- package/src/components/Toolbar/ToolbarItem.jsx +1 -1
- package/src/index.js +1 -0
- package/src/provider/RUIProvider.jsx +6 -3
- package/src/styles/tools/form-fields/_box-field-layout.scss +1 -2
- package/src/styles/tools/form-fields/_inline-field-layout.scss +1 -0
- package/src/utils/mergeDeep.js +28 -0
- package/src/{components/_helpers → utils}/transferProps.js +0 -8
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
7
7
|
import { getScrollingClassName } from './_helpers/getScrollingClassName';
|
8
8
|
import styles from './ModalBody.module.scss';
|
@@ -4,7 +4,7 @@ import {
|
|
4
4
|
RUIContext,
|
5
5
|
withGlobalProps,
|
6
6
|
} from '../../provider';
|
7
|
-
import { transferProps } from '
|
7
|
+
import { transferProps } from '../../utils/transferProps';
|
8
8
|
import styles from './ModalCloseButton.module.scss';
|
9
9
|
|
10
10
|
export const ModalCloseButton = React.forwardRef((props, ref) => {
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
4
5
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
5
|
-
import { transferProps } from '../_helpers/transferProps';
|
6
6
|
import styles from './ModalContent.module.scss';
|
7
7
|
|
8
8
|
export const ModalContent = ({
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import { getJustifyClassName } from './_helpers/getJustifyClassName';
|
7
7
|
import styles from './ModalFooter.module.scss';
|
8
8
|
|
@@ -1,10 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
|
-
import {
|
4
|
-
withGlobalProps,
|
5
|
-
} from '../../provider';
|
6
|
-
import { transferProps } from '../_helpers/transferProps';
|
3
|
+
import { withGlobalProps } from '../../provider';
|
7
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
8
6
|
import { getJustifyClassName } from './_helpers/getJustifyClassName';
|
9
7
|
import styles from './ModalHeader.module.scss';
|
10
8
|
|
@@ -1,9 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
|
-
import {
|
4
|
-
|
5
|
-
} from '../../provider';
|
6
|
-
import { transferProps } from '../_helpers/transferProps';
|
3
|
+
import { withGlobalProps } from '../../provider';
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
7
5
|
import styles from './ModalTitle.module.scss';
|
8
6
|
|
9
7
|
export const ModalTitle = ({
|
@@ -1015,8 +1015,9 @@ opened.
|
|
1015
1015
|
## Forwarding HTML Attributes
|
1016
1016
|
|
1017
1017
|
In addition to the options below in the [component's API](#api) section, you
|
1018
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
1019
|
-
with the API of the React component
|
1018
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
1019
|
+
interfere with the API of the React component and that aren't filtered out by
|
1020
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to:
|
1020
1021
|
|
1021
1022
|
- the `<div>` HTML element in case of the `Modal` component. This `<div>` is not
|
1022
1023
|
the root, but its first child which represents the modal window.
|
@@ -2,7 +2,7 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
-
import { transferProps } from '
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import styles from './Paper.module.scss';
|
7
7
|
|
8
8
|
export const Paper = ({
|
@@ -54,10 +54,11 @@ Dim background and add transparency to visually suppress the Paper.
|
|
54
54
|
## Forwarding HTML Attributes
|
55
55
|
|
56
56
|
In addition to the options below in the [component's API](#api) section, you
|
57
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
58
|
-
with the API of the React component
|
59
|
-
|
60
|
-
|
57
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
58
|
+
interfere with the API of the React component and that aren't filtered out by
|
59
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
60
|
+
root `<div>` HTML element. This enables making the component interactive and
|
61
|
+
helps to improve its accessibility.
|
61
62
|
|
62
63
|
👉 For the full list of supported attributes refer to:
|
63
64
|
|
@@ -3,7 +3,7 @@ import React from 'react';
|
|
3
3
|
import { createPortal } from 'react-dom';
|
4
4
|
import { withGlobalProps } from '../../provider';
|
5
5
|
import { classNames } from '../../utils/classNames';
|
6
|
-
import { transferProps } from '
|
6
|
+
import { transferProps } from '../../utils/transferProps';
|
7
7
|
import getRootSideClassName from './_helpers/getRootSideClassName';
|
8
8
|
import getRootAlignmentClassName from './_helpers/getRootAlignmentClassName';
|
9
9
|
import styles from './Popover.module.scss';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
5
5
|
import styles from './PopoverWrapper.module.scss';
|
6
6
|
|
7
7
|
export const PopoverWrapper = ({
|
@@ -287,10 +287,11 @@ React.createElement(() => {
|
|
287
287
|
## Forwarding HTML Attributes
|
288
288
|
|
289
289
|
In addition to the options below in the [component's API](#api) section, you
|
290
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
291
|
-
with the API of the React component
|
292
|
-
|
293
|
-
|
290
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
291
|
+
interfere with the API of the React component and that aren't filtered out by
|
292
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
293
|
+
root `<div>` HTML element. This enables making the component interactive and
|
294
|
+
helps to improve its accessibility.
|
294
295
|
|
295
296
|
👉 For the full list of supported attributes refer to:
|
296
297
|
|
@@ -56,6 +56,9 @@ See [API](#api) for all available options.
|
|
56
56
|
polite phrases like _Please select your favourite fruit_. Short labels will
|
57
57
|
help your users accomplish their task faster.
|
58
58
|
|
59
|
+
- **Use text labels** unless it is necessary to wrap text label into
|
60
|
+
Popover-like to component to provide additional info about the field.
|
61
|
+
|
59
62
|
- Only make the Radio's label invisible when there is **another visual
|
60
63
|
clue** to guide users through filling the input.
|
61
64
|
|
@@ -279,10 +282,11 @@ It's possible to disable just some options or the whole set.
|
|
279
282
|
## Forwarding HTML Attributes
|
280
283
|
|
281
284
|
In addition to the options below in the [component's API](#api) section, you
|
282
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
283
|
-
with the API of the React component
|
284
|
-
|
285
|
-
|
285
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
286
|
+
interfere with the API of the React component and that aren't filtered out by
|
287
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
288
|
+
`<input>` HTML element. This enables making the component interactive and helps
|
289
|
+
to improve its accessibility.
|
286
290
|
|
287
291
|
👉 For the full list of supported attributes refer to:
|
288
292
|
|
@@ -2,9 +2,9 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React, { useContext } from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
5
6
|
import { getRootValidationStateClassName } from '../_helpers/getRootValidationStateClassName';
|
6
7
|
import { resolveContextOrProp } from '../_helpers/resolveContextOrProp';
|
7
|
-
import { transferProps } from '../_helpers/transferProps';
|
8
8
|
import { FormLayoutContext } from '../FormLayout';
|
9
9
|
import styles from './Radio.module.scss';
|
10
10
|
|
@@ -157,7 +157,7 @@ Radio.propTypes = {
|
|
157
157
|
/**
|
158
158
|
* Label of the group of options.
|
159
159
|
*/
|
160
|
-
label: PropTypes.
|
160
|
+
label: PropTypes.node.isRequired,
|
161
161
|
/**
|
162
162
|
* Layout of the field.
|
163
163
|
*
|
@@ -480,10 +480,11 @@ React.createElement(() => {
|
|
480
480
|
## Forwarding HTML Attributes
|
481
481
|
|
482
482
|
In addition to the options below in the [component's API](#api) section, you
|
483
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
484
|
-
with the API of the React component
|
485
|
-
|
486
|
-
|
483
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
484
|
+
interfere with the API of the React component and that aren't filtered out by
|
485
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
486
|
+
root `<div>` HTML element. This enables making the component interactive and
|
487
|
+
helps to improve its accessibility.
|
487
488
|
|
488
489
|
👉 For the full list of supported attributes refer to:
|
489
490
|
|
@@ -11,7 +11,7 @@ import {
|
|
11
11
|
withGlobalProps,
|
12
12
|
} from '../../provider';
|
13
13
|
import { classNames } from '../../utils/classNames';
|
14
|
-
import { transferProps } from '
|
14
|
+
import { transferProps } from '../../utils/transferProps';
|
15
15
|
import { getElementsPositionDifference } from './_helpers/getElementsPositionDifference';
|
16
16
|
import { useLoadResize } from './_hooks/useLoadResizeHook';
|
17
17
|
import { useScrollPosition } from './_hooks/useScrollPositionHook';
|
@@ -103,8 +103,7 @@ $_arrow-outer-spacing: spacing.of(4);
|
|
103
103
|
|
104
104
|
.isRootVertical .viewport {
|
105
105
|
height: 100%;
|
106
|
-
overflow
|
107
|
-
overflow-y: auto; // 2.
|
106
|
+
overflow: clip auto; // 7., 8. / 2.
|
108
107
|
}
|
109
108
|
|
110
109
|
.isRootVertical .arrowPrev {
|
@@ -183,8 +182,7 @@ $_arrow-outer-spacing: spacing.of(4);
|
|
183
182
|
}
|
184
183
|
|
185
184
|
.isRootHorizontal .viewport {
|
186
|
-
overflow
|
187
|
-
overflow-y: clip; // 5., 7., 8.
|
185
|
+
overflow: auto clip; // 2. / 5., 7., 8.
|
188
186
|
}
|
189
187
|
|
190
188
|
.isRootHorizontal .content {
|
@@ -56,6 +56,9 @@ See [API](#api) for all available options.
|
|
56
56
|
polite phrases like _Please select your favourite fruit_. Short labels will
|
57
57
|
help your users accomplish their task faster.
|
58
58
|
|
59
|
+
- **Use text labels** unless it is necessary to wrap text label into
|
60
|
+
Popover-like to component to provide additional info about the field.
|
61
|
+
|
59
62
|
- Only make the SelectField's label invisible when there is **another visual
|
60
63
|
clue** to guide users through filling the input. Using the first option as
|
61
64
|
label is not recommended either — it disappears once user makes their choice.
|
@@ -649,10 +652,11 @@ React.createElement(() => {
|
|
649
652
|
## Forwarding HTML Attributes
|
650
653
|
|
651
654
|
In addition to the options below in the [component's API](#api) section, you
|
652
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
653
|
-
with the API of the React component
|
654
|
-
|
655
|
-
|
655
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
656
|
+
interfere with the API of the React component and that aren't filtered out by
|
657
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
658
|
+
`<select>` HTML element. This enables making the component interactive and
|
659
|
+
helps to improve its accessibility.
|
656
660
|
|
657
661
|
👉 For the full list of supported attributes refer to:
|
658
662
|
|
@@ -2,10 +2,10 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React, { useContext } from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
5
6
|
import { getRootSizeClassName } from '../_helpers/getRootSizeClassName';
|
6
7
|
import { getRootValidationStateClassName } from '../_helpers/getRootValidationStateClassName';
|
7
8
|
import { resolveContextOrProp } from '../_helpers/resolveContextOrProp';
|
8
|
-
import { transferProps } from '../_helpers/transferProps';
|
9
9
|
import { FormLayoutContext } from '../FormLayout';
|
10
10
|
import { InputGroupContext } from '../InputGroup/InputGroupContext';
|
11
11
|
import { Option } from './_components/Option';
|
@@ -182,7 +182,7 @@ SelectField.propTypes = {
|
|
182
182
|
/**
|
183
183
|
* Select field label.
|
184
184
|
*/
|
185
|
-
label: PropTypes.
|
185
|
+
label: PropTypes.node.isRequired,
|
186
186
|
/**
|
187
187
|
* Layout of the field.
|
188
188
|
*
|
@@ -243,10 +243,11 @@ React.createElement(() => {
|
|
243
243
|
## Forwarding HTML Attributes
|
244
244
|
|
245
245
|
In addition to the options below in the [component's API](#api) section, you
|
246
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
247
|
-
with the API of the React component
|
248
|
-
|
249
|
-
|
246
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
247
|
+
interfere with the API of the React component and that aren't filtered out by
|
248
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
249
|
+
root `<table>` HTML element. This enables making the component interactive and
|
250
|
+
helps to improve its accessibility.
|
250
251
|
|
251
252
|
👉 For the full list of supported attributes refer to:
|
252
253
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
5
5
|
import { TableHeaderCell } from './_components/TableHeaderCell';
|
6
6
|
import { TableBodyCell } from './_components/TableBodyCell';
|
7
7
|
import styles from './Table.module.scss';
|
@@ -157,8 +157,9 @@ React.createElement(() => {
|
|
157
157
|
## Forwarding HTML Attributes
|
158
158
|
|
159
159
|
In addition to the options below in the [component's API](#api) section, you
|
160
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
161
|
-
with the API of the React component
|
160
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
161
|
+
interfere with the API of the React component and that aren't filtered out by
|
162
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to:
|
162
163
|
|
163
164
|
- the root `<nav>` HTML element in case of `Tabs` component
|
164
165
|
- the `<a>` HTML element in case of `TabsItem`
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
5
5
|
import styles from './Tabs.module.scss';
|
6
6
|
|
7
7
|
export const Tabs = ({
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import styles from './TabsItem.module.scss';
|
7
7
|
|
8
8
|
export const TabsItem = ({
|
@@ -202,8 +202,9 @@ React.createElement(() => {
|
|
202
202
|
## Forwarding HTML Attributes
|
203
203
|
|
204
204
|
In addition to the options below in the [component's API](#api) section, you
|
205
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
206
|
-
with the API of the React component
|
205
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
206
|
+
interfere with the API of the React component and that aren't filtered out by
|
207
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to:
|
207
208
|
|
208
209
|
- `<span>` HTML element in case that `blockLevel` is set to `false`
|
209
210
|
- `<div>` HTML element in case that `blockLevel` is set to `true`
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
7
7
|
import { getRootClampClassName } from './_helpers/getRootClampClassName';
|
8
8
|
import { getRootHyphensClassName } from './_helpers/getRootHyphensClassName';
|
@@ -24,6 +24,9 @@ See [API](#api) for all available options.
|
|
24
24
|
polite phrases like _Please enter your message_. Short labels will help your
|
25
25
|
users accomplish their task faster.
|
26
26
|
|
27
|
+
- **Use text labels** unless it is necessary to wrap text label into
|
28
|
+
Popover-like to component to provide additional info about the field.
|
29
|
+
|
27
30
|
- Only make the TextArea's label invisible when there is **another visual
|
28
31
|
clue** to guide users through filling the input. Using the first option as
|
29
32
|
label is not recommended either — it disappears once user makes their choice.
|
@@ -317,10 +320,11 @@ It's possible to disable the whole input.
|
|
317
320
|
## Forwarding HTML Attributes
|
318
321
|
|
319
322
|
In addition to the options below in the [component's API](#api) section, you
|
320
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
321
|
-
with the API of the React component
|
322
|
-
|
323
|
-
|
323
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
324
|
+
interfere with the API of the React component and that aren't filtered out by
|
325
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
326
|
+
`<textarea>` HTML element. This enables making the component interactive and
|
327
|
+
helps to improve its accessibility.
|
324
328
|
|
325
329
|
```docoff-react-preview
|
326
330
|
<TextArea
|
@@ -2,10 +2,10 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React, { useContext } from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
5
6
|
import { getRootSizeClassName } from '../_helpers/getRootSizeClassName';
|
6
7
|
import { getRootValidationStateClassName } from '../_helpers/getRootValidationStateClassName';
|
7
8
|
import { resolveContextOrProp } from '../_helpers/resolveContextOrProp';
|
8
|
-
import { transferProps } from '../_helpers/transferProps';
|
9
9
|
import { FormLayoutContext } from '../FormLayout';
|
10
10
|
import styles from './TextArea.module.scss';
|
11
11
|
|
@@ -132,7 +132,7 @@ TextArea.propTypes = {
|
|
132
132
|
/**
|
133
133
|
* Text field label.
|
134
134
|
*/
|
135
|
-
label: PropTypes.
|
135
|
+
label: PropTypes.node.isRequired,
|
136
136
|
/**
|
137
137
|
* Layout of the field.
|
138
138
|
*
|
@@ -36,6 +36,9 @@ See [API](#api) for all available options.
|
|
36
36
|
polite phrases like _Please enter your first name_. Short labels will help
|
37
37
|
your users accomplish their task faster.
|
38
38
|
|
39
|
+
- **Use text labels** unless it is necessary to wrap text label into
|
40
|
+
Popover-like to component to provide additional info about the field.
|
41
|
+
|
39
42
|
- Only make the TextField's label invisible when there is **another visual
|
40
43
|
clue** to guide users through filling the input.
|
41
44
|
|
@@ -445,10 +448,11 @@ It's possible to disable the whole input.
|
|
445
448
|
## Forwarding HTML Attributes
|
446
449
|
|
447
450
|
In addition to the options below in the [component's API](#api) section, you
|
448
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
449
|
-
with the API of the React component
|
450
|
-
|
451
|
-
|
451
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
452
|
+
interfere with the API of the React component and that aren't filtered out by
|
453
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
454
|
+
`<input>` HTML element. This enables making the component interactive and helps
|
455
|
+
to improve its accessibility.
|
452
456
|
|
453
457
|
```docoff-react-preview
|
454
458
|
<TextField
|
@@ -2,10 +2,10 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React, { useContext } from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
5
6
|
import { getRootSizeClassName } from '../_helpers/getRootSizeClassName';
|
6
7
|
import { getRootValidationStateClassName } from '../_helpers/getRootValidationStateClassName';
|
7
8
|
import { resolveContextOrProp } from '../_helpers/resolveContextOrProp';
|
8
|
-
import { transferProps } from '../_helpers/transferProps';
|
9
9
|
import { FormLayoutContext } from '../FormLayout';
|
10
10
|
import { InputGroupContext } from '../InputGroup/InputGroupContext';
|
11
11
|
import styles from './TextField.module.scss';
|
@@ -156,7 +156,7 @@ TextField.propTypes = {
|
|
156
156
|
/**
|
157
157
|
* Text field label.
|
158
158
|
*/
|
159
|
-
label: PropTypes.
|
159
|
+
label: PropTypes.node.isRequired,
|
160
160
|
/**
|
161
161
|
* Layout of the field.
|
162
162
|
*
|
@@ -47,10 +47,11 @@ It's common to use custom function for routing within SPAs. Use the
|
|
47
47
|
## Forwarding HTML Attributes
|
48
48
|
|
49
49
|
In addition to the options below in the [component's API](#api) section, you
|
50
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
51
|
-
with the API of the React component
|
52
|
-
|
53
|
-
|
50
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
51
|
+
interfere with the API of the React component and that aren't filtered out by
|
52
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
53
|
+
root `<a>` HTML element. This enables making the component interactive and
|
54
|
+
helps to improve its accessibility.
|
54
55
|
|
55
56
|
👉 For the full list of supported attributes refer to:
|
56
57
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
5
5
|
import styles from './TextLink.module.scss';
|
6
6
|
|
7
7
|
export const TextLink = ({
|
@@ -39,6 +39,9 @@ See [API](#api) for all available options.
|
|
39
39
|
me any emails” which would mean that the user needs to turn the toggle **on**
|
40
40
|
in order for something **not** to happen.
|
41
41
|
|
42
|
+
- **Use text labels** unless it is necessary to wrap text label into
|
43
|
+
Popover-like to component to provide additional info about the field.
|
44
|
+
|
42
45
|
- Only make the Toggle's label invisible when there is **another visual clue**
|
43
46
|
to guide users through using the input.
|
44
47
|
|
@@ -168,10 +171,11 @@ Disabled state makes the input unavailable.
|
|
168
171
|
## Forwarding HTML Attributes
|
169
172
|
|
170
173
|
In addition to the options below in the [component's API](#api) section, you
|
171
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
172
|
-
with the API of the React component
|
173
|
-
|
174
|
-
|
174
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
175
|
+
interfere with the API of the React component and that aren't filtered out by
|
176
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
177
|
+
`<input>` HTML element. This enables making the component interactive and helps
|
178
|
+
to improve its accessibility.
|
175
179
|
|
176
180
|
👉 For the full list of supported attributes refer to:
|
177
181
|
|
@@ -2,8 +2,8 @@ import PropTypes from 'prop-types';
|
|
2
2
|
import React, { useContext } from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
5
6
|
import { getRootValidationStateClassName } from '../_helpers/getRootValidationStateClassName';
|
6
|
-
import { transferProps } from '../_helpers/transferProps';
|
7
7
|
import { FormLayoutContext } from '../FormLayout';
|
8
8
|
import styles from './Toggle.module.scss';
|
9
9
|
|
@@ -114,7 +114,7 @@ Toggle.propTypes = {
|
|
114
114
|
/**
|
115
115
|
* Toggle label.
|
116
116
|
*/
|
117
|
-
label: PropTypes.
|
117
|
+
label: PropTypes.node.isRequired,
|
118
118
|
/**
|
119
119
|
* Placement of the label relative to the input.
|
120
120
|
*/
|
@@ -322,10 +322,11 @@ Or to build a classic media layout with image on the left and text on the right:
|
|
322
322
|
## Forwarding HTML Attributes
|
323
323
|
|
324
324
|
In addition to the options below in the [component's API](#api) section, you
|
325
|
-
can specify **any HTML attribute you like.** All attributes that don't
|
326
|
-
with the API of the React component
|
327
|
-
|
328
|
-
|
325
|
+
can specify **any HTML attribute you like.** All attributes that don't
|
326
|
+
interfere with the API of the React component and that aren't filtered out by
|
327
|
+
[`transferProps`](/docs/js-helpers/transferProps) helper are forwarded to the
|
328
|
+
root `<div>` HTML element. This enables making the component interactive and
|
329
|
+
helps to improve its accessibility.
|
329
330
|
|
330
331
|
👉 For the full list of supported attributes refer to:
|
331
332
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
7
7
|
import { getAlignClassName } from './_helpers/getAlignClassName';
|
8
8
|
import { getJustifyClassName } from './_helpers/getJustifyClassName';
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
3
|
import { withGlobalProps } from '../../provider';
|
4
|
-
import { transferProps } from '../_helpers/transferProps';
|
5
4
|
import { classNames } from '../../utils/classNames';
|
5
|
+
import { transferProps } from '../../utils/transferProps';
|
6
6
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
7
7
|
import { getAlignClassName } from './_helpers/getAlignClassName';
|
8
8
|
import styles from './Toolbar.module.scss';
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import PropTypes from 'prop-types';
|
2
2
|
import React from 'react';
|
3
|
-
import { transferProps } from '../_helpers/transferProps';
|
4
3
|
import { classNames } from '../../utils/classNames';
|
4
|
+
import { transferProps } from '../../utils/transferProps';
|
5
5
|
import { withGlobalProps } from '../../provider';
|
6
6
|
import { isChildrenEmpty } from '../_helpers/isChildrenEmpty';
|
7
7
|
import styles from './Toolbar.module.scss';
|
package/src/index.js
CHANGED