@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.
- package/CONTRIBUTING.md +44 -25
- package/README.md +1 -1
- package/dist/lib.development.js +1598 -652
- package/dist/lib.js +1 -9
- package/package.json +49 -48
- package/src/lib/components/{ui/Alert → Alert}/Alert.jsx +17 -14
- package/src/lib/components/{ui/Alert → Alert}/Alert.scss +3 -3
- package/src/lib/components/{ui/Alert → Alert}/README.mdx +6 -6
- package/src/lib/components/{ui/Alert → Alert}/_settings.scss +1 -1
- package/src/lib/components/{ui/Alert → Alert}/_theme.scss +0 -0
- package/src/lib/components/{ui/Alert → Alert}/_tools.scss +0 -0
- package/src/lib/components/{ui/Alert → Alert}/index.js +0 -0
- package/src/lib/components/{ui/Badge → Badge}/Badge.jsx +2 -2
- package/src/lib/components/{ui/Badge → Badge}/Badge.scss +3 -3
- package/src/lib/components/{ui/Badge → Badge}/README.mdx +3 -3
- package/src/lib/components/{ui/Badge → Badge}/index.js +0 -0
- package/src/lib/components/Button/Button.jsx +198 -0
- package/src/lib/components/{ui/Button → Button}/Button.scss +0 -0
- package/src/lib/components/{ui/Button → Button}/README.mdx +160 -75
- package/src/lib/components/Button/_base.scss +148 -0
- package/src/lib/components/{ui/Button → Button}/_priorities.scss +0 -4
- package/src/lib/components/{ui/Button → Button}/_settings.scss +2 -3
- package/src/lib/components/{ui/Button → Button}/_theme.scss +3 -11
- package/src/lib/components/{ui/Button → Button}/_tools.scss +27 -44
- package/src/lib/components/Button/helpers/getRootLabelVisibilityClassName.js +33 -0
- package/src/lib/components/{ui/Button → Button}/helpers/getRootPriorityClassName.js +0 -4
- package/src/lib/components/{ui/Button → Button}/index.js +0 -0
- package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/ButtonGroup.jsx +9 -11
- package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/ButtonGroup.scss +0 -0
- package/src/lib/components/ButtonGroup/ButtonGroupContext.js +3 -0
- package/src/lib/components/{ui/ButtonGroup → ButtonGroup}/README.mdx +26 -2
- package/src/lib/components/ButtonGroup/index.js +2 -0
- package/src/lib/components/{layout/CTA → CTA}/CTA.jsx +5 -2
- package/src/lib/components/{layout/CTA → CTA}/CTA.scss +2 -2
- package/src/lib/components/{layout/CTA → CTA}/CTACenter.jsx +1 -1
- package/src/lib/components/{layout/CTA → CTA}/CTAEnd.jsx +1 -1
- package/src/lib/components/{layout/CTA → CTA}/CTAStart.jsx +1 -1
- package/src/lib/components/{layout/CTA → CTA}/README.mdx +3 -3
- package/src/lib/components/{layout/CTA → CTA}/index.js +0 -0
- package/src/lib/components/{ui/Card → Card}/Card.jsx +6 -4
- package/src/lib/components/{ui/Card → Card}/Card.scss +1 -1
- package/src/lib/components/{ui/Card → Card}/CardBody.jsx +1 -1
- package/src/lib/components/{ui/Card → Card}/CardFooter.jsx +1 -1
- package/src/lib/components/{ui/Card → Card}/README.mdx +2 -2
- package/src/lib/components/{ui/Card → Card}/_theme.scss +0 -0
- package/src/lib/components/{ui/Card → Card}/_tools.scss +0 -0
- package/src/lib/components/{ui/Card → Card}/index.js +0 -0
- package/src/lib/components/{layout/Center → Center}/Center.jsx +1 -1
- package/src/lib/components/{layout/Center → Center}/Center.scss +0 -0
- package/src/lib/components/{layout/Center → Center}/README.mdx +2 -2
- package/src/lib/components/{layout/Center → Center}/index.js +0 -0
- package/src/lib/components/CheckboxField/CheckboxField.jsx +164 -0
- package/src/lib/components/{ui/CheckboxField → CheckboxField}/CheckboxField.scss +5 -5
- package/src/lib/components/{ui/CheckboxField → CheckboxField}/README.mdx +15 -12
- package/src/lib/components/{ui/CheckboxField → CheckboxField}/index.js +0 -0
- package/src/lib/components/FileInputField/FileInputField.jsx +162 -0
- package/src/lib/components/{ui/FileInputField → FileInputField}/FileInputField.scss +5 -5
- package/src/lib/components/{ui/FileInputField → FileInputField}/README.mdx +8 -6
- package/src/lib/components/{ui/FileInputField → FileInputField}/index.js +0 -0
- package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayout.jsx +16 -18
- package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayout.scss +3 -3
- package/src/lib/components/FormLayout/FormLayoutContext.js +3 -0
- package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayoutCustomField.jsx +33 -30
- package/src/lib/components/{layout/FormLayout → FormLayout}/FormLayoutCustomField.scss +4 -4
- package/src/lib/components/{layout/FormLayout → FormLayout}/README.mdx +30 -40
- package/src/lib/components/{layout/FormLayout → FormLayout}/_theme.scss +0 -0
- package/src/lib/components/{layout/FormLayout → FormLayout}/index.js +1 -0
- package/src/lib/components/{layout/Grid → Grid}/Grid.jsx +23 -5
- package/src/lib/components/{layout/Grid → Grid}/Grid.scss +2 -4
- package/src/lib/components/{layout/Grid → Grid}/GridSpan.jsx +10 -3
- package/src/lib/components/{layout/Grid → Grid}/README.mdx +42 -38
- package/src/lib/components/{layout/Grid → Grid}/_theme.scss +1 -2
- package/src/lib/components/{layout/Grid → Grid}/_tools.scss +2 -2
- package/src/lib/components/{layout/Grid → Grid}/helpers/generateResponsiveCustomProperties.js +0 -0
- package/src/lib/components/{layout/Grid → Grid}/index.js +0 -0
- package/src/lib/components/Link/Link.jsx +45 -0
- package/src/lib/components/Link/Link.scss +11 -0
- package/src/lib/components/Link/README.mdx +85 -0
- package/src/lib/components/Link/_theme.scss +4 -0
- package/src/lib/components/Link/index.js +1 -0
- package/src/lib/components/{layout/List → List}/List.jsx +1 -1
- package/src/lib/components/{layout/List → List}/List.scss +2 -2
- package/src/lib/components/{layout/List → List}/ListItem.jsx +1 -1
- package/src/lib/components/{layout/List → List}/README.mdx +2 -2
- package/src/lib/components/{layout/List → List}/_theme.scss +0 -0
- package/src/lib/components/{layout/List → List}/index.js +0 -0
- package/src/lib/components/{layout/Media → Media}/Media.jsx +4 -2
- package/src/lib/components/{layout/Media → Media}/Media.scss +1 -1
- package/src/lib/components/{layout/Media → Media}/MediaBody.jsx +1 -1
- package/src/lib/components/{layout/Media → Media}/MediaObject.jsx +1 -1
- package/src/lib/components/{layout/Media → Media}/README.mdx +2 -2
- package/src/lib/components/{layout/Media → Media}/index.js +0 -0
- package/src/lib/components/{ui/Modal → Modal}/Modal.jsx +28 -27
- package/src/lib/components/{ui/Modal → Modal}/Modal.scss +5 -5
- package/src/lib/components/{ui/Modal → Modal}/README.mdx +40 -40
- package/src/lib/components/{ui/Modal → Modal}/_settings.scss +4 -4
- package/src/lib/components/{ui/Modal → Modal}/_theme.scss +0 -0
- package/src/lib/components/{ui/Modal → Modal}/index.js +0 -0
- package/src/lib/components/{ui/Paper → Paper}/Paper.jsx +8 -1
- package/src/lib/components/{ui/Paper → Paper}/Paper.scss +5 -0
- package/src/lib/components/{ui/Paper → Paper}/README.mdx +14 -2
- package/src/lib/components/{ui/Paper → Paper}/_theme.scss +2 -0
- package/src/lib/components/{ui/Paper → Paper}/index.js +0 -0
- package/src/lib/components/{ui/Radio → Radio}/README.mdx +17 -14
- package/src/lib/components/Radio/Radio.jsx +188 -0
- package/src/lib/components/{ui/Radio → Radio}/Radio.scss +9 -9
- package/src/lib/components/{ui/Radio → Radio}/index.js +0 -0
- package/src/lib/components/{ui/ScrollView → ScrollView}/README.mdx +10 -10
- package/src/lib/components/{ui/ScrollView → ScrollView}/ScrollView.jsx +9 -10
- package/src/lib/components/{ui/ScrollView → ScrollView}/ScrollView.scss +6 -6
- package/src/lib/components/{ui/ScrollView → ScrollView}/_theme.scss +0 -0
- package/src/lib/components/{ui/ScrollView → ScrollView}/index.js +0 -0
- package/src/lib/components/{ui/SelectField → SelectField}/README.mdx +44 -41
- package/src/lib/components/SelectField/SelectField.jsx +219 -0
- package/src/lib/components/{ui/SelectField → SelectField}/SelectField.scss +6 -6
- package/src/lib/components/{ui/SelectField → SelectField}/index.js +0 -0
- package/src/lib/components/{ui/Table → Table}/README.mdx +7 -7
- package/src/lib/components/{ui/Table → Table}/Table.jsx +9 -13
- package/src/lib/components/{ui/Table → Table}/Table.scss +1 -1
- package/src/lib/components/{ui/Table → Table}/_settings.scss +4 -4
- package/src/lib/components/{ui/Table → Table}/index.js +0 -0
- package/src/lib/components/{ui/Tabs → Tabs}/README.mdx +3 -3
- package/src/lib/components/{ui/Tabs → Tabs}/Tabs.jsx +4 -4
- package/src/lib/components/{ui/Tabs → Tabs}/Tabs.scss +1 -1
- package/src/lib/components/{ui/Tabs → Tabs}/TabsItem.jsx +4 -3
- package/src/lib/components/{ui/Tabs → Tabs}/TabsItem.scss +3 -3
- package/src/lib/components/{ui/Tabs → Tabs}/_theme.scss +0 -0
- package/src/lib/components/{ui/Tabs → Tabs}/index.js +0 -0
- package/src/lib/components/{ui/Text → Text}/README.mdx +19 -19
- package/src/lib/components/{ui/Text → Text}/Text.jsx +1 -1
- package/src/lib/components/{ui/Text → Text}/Text.scss +0 -0
- package/src/lib/components/{ui/Text → Text}/helpers/getRootHyphensClassName.js +0 -0
- package/src/lib/components/{ui/Text → Text}/helpers/getRootWordWrappingClassName.js +0 -0
- package/src/lib/components/{ui/Text → Text}/index.js +0 -0
- package/src/lib/components/{ui/TextArea → TextArea}/README.mdx +8 -6
- package/src/lib/components/{ui/TextArea → TextArea}/TextArea.jsx +78 -78
- package/src/lib/components/{ui/TextArea → TextArea}/TextArea.scss +6 -6
- package/src/lib/components/{ui/TextArea → TextArea}/index.js +0 -0
- package/src/lib/components/{ui/TextField → TextField}/README.mdx +7 -6
- package/src/lib/components/{ui/TextField → TextField}/TextField.jsx +20 -23
- package/src/lib/components/{ui/TextField → TextField}/TextField.scss +6 -6
- package/src/lib/components/{ui/TextField → TextField}/index.js +0 -0
- package/src/lib/components/{ui/Toggle → Toggle}/README.mdx +15 -12
- package/src/lib/components/Toggle/Toggle.jsx +163 -0
- package/src/lib/components/{ui/Toggle → Toggle}/Toggle.scss +5 -5
- package/src/lib/components/{ui/Toggle → Toggle}/index.js +0 -0
- package/src/lib/components/{layout/Toolbar → Toolbar}/README.mdx +26 -26
- package/src/lib/components/{layout/Toolbar → Toolbar}/Toolbar.jsx +1 -1
- package/src/lib/components/{layout/Toolbar → Toolbar}/Toolbar.scss +1 -1
- package/src/lib/components/{layout/Toolbar → Toolbar}/ToolbarGroup.jsx +1 -1
- package/src/lib/components/{layout/Toolbar → Toolbar}/ToolbarItem.jsx +1 -1
- package/src/lib/components/{layout/Toolbar → Toolbar}/_theme.scss +0 -0
- package/src/lib/components/{layout/Toolbar → Toolbar}/index.js +0 -0
- package/src/lib/components/{ui/withForwardedRef.jsx → withForwardedRef.jsx} +0 -0
- package/src/lib/helpers/resolveContextOrProp.js +7 -0
- package/src/lib/index.js +34 -35
- package/src/lib/styles/tools/_accessibility.scss +9 -0
- package/src/lib/theme.scss +25 -7
- package/src/lib/components/ui/Button/Button.jsx +0 -191
- package/src/lib/components/ui/Button/_base.scss +0 -154
- package/src/lib/components/ui/Button/helpers/getRootLabelVisibilityClassName.js +0 -11
- package/src/lib/components/ui/ButtonGroup/index.js +0 -1
- package/src/lib/components/ui/CheckboxField/CheckboxField.jsx +0 -173
- package/src/lib/components/ui/FileInputField/FileInputField.jsx +0 -158
- package/src/lib/components/ui/Radio/Radio.jsx +0 -179
- package/src/lib/components/ui/SelectField/SelectField.jsx +0 -214
- package/src/lib/components/ui/Toggle/Toggle.jsx +0 -174
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { withProviderContext } from '
|
|
3
|
+
import { withProviderContext } from '../../provider';
|
|
4
4
|
import { generateResponsiveCustomProperties } from './helpers/generateResponsiveCustomProperties';
|
|
5
5
|
import styles from './Grid.scss';
|
|
6
6
|
|
|
@@ -16,6 +16,7 @@ export const Grid = ({
|
|
|
16
16
|
justifyItems,
|
|
17
17
|
rowGap,
|
|
18
18
|
rows,
|
|
19
|
+
tag: Tag,
|
|
19
20
|
...other
|
|
20
21
|
}) => {
|
|
21
22
|
if (!children) {
|
|
@@ -23,15 +24,15 @@ export const Grid = ({
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
return (
|
|
26
|
-
<
|
|
27
|
+
<Tag
|
|
27
28
|
id={id}
|
|
28
29
|
className={styles.root}
|
|
29
30
|
style={{
|
|
30
|
-
...(typeof autoFlow !== 'undefined' ? { '--rui-local-auto-flow': autoFlow } : {}),
|
|
31
31
|
...generateResponsiveCustomProperties(columns, 'columns'),
|
|
32
32
|
...generateResponsiveCustomProperties(columnGap, 'column-gap'),
|
|
33
33
|
...generateResponsiveCustomProperties(rows, 'rows'),
|
|
34
34
|
...generateResponsiveCustomProperties(rowGap, 'row-gap'),
|
|
35
|
+
...generateResponsiveCustomProperties(autoFlow, 'auto-flow'),
|
|
35
36
|
...generateResponsiveCustomProperties(alignContent, 'align-content'),
|
|
36
37
|
...generateResponsiveCustomProperties(alignItems, 'align-items'),
|
|
37
38
|
...generateResponsiveCustomProperties(justifyContent, 'justify-content'),
|
|
@@ -40,7 +41,7 @@ export const Grid = ({
|
|
|
40
41
|
{...other}
|
|
41
42
|
>
|
|
42
43
|
{children}
|
|
43
|
-
</
|
|
44
|
+
</Tag>
|
|
44
45
|
);
|
|
45
46
|
};
|
|
46
47
|
|
|
@@ -59,6 +60,7 @@ Grid.defaultProps = {
|
|
|
59
60
|
justifyItems: undefined,
|
|
60
61
|
rowGap: undefined,
|
|
61
62
|
rows: undefined,
|
|
63
|
+
tag: 'div',
|
|
62
64
|
};
|
|
63
65
|
|
|
64
66
|
Grid.propTypes = {
|
|
@@ -98,7 +100,18 @@ Grid.propTypes = {
|
|
|
98
100
|
* Grid auto-flow algorithm to be used. Accepts any valid value of `grid-auto-flow` CSS property.
|
|
99
101
|
* See [MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow) for more.
|
|
100
102
|
*/
|
|
101
|
-
autoFlow: PropTypes.
|
|
103
|
+
autoFlow: PropTypes.oneOfType([
|
|
104
|
+
PropTypes.string,
|
|
105
|
+
PropTypes.shape({
|
|
106
|
+
xs: PropTypes.string,
|
|
107
|
+
sm: PropTypes.string,
|
|
108
|
+
md: PropTypes.string,
|
|
109
|
+
lg: PropTypes.string,
|
|
110
|
+
xl: PropTypes.string,
|
|
111
|
+
xxl: PropTypes.string,
|
|
112
|
+
xxxl: PropTypes.string,
|
|
113
|
+
}),
|
|
114
|
+
]),
|
|
102
115
|
/**
|
|
103
116
|
* Items to be aligned in the grid.
|
|
104
117
|
*/
|
|
@@ -203,6 +216,11 @@ Grid.propTypes = {
|
|
|
203
216
|
xxxl: PropTypes.string,
|
|
204
217
|
}),
|
|
205
218
|
]),
|
|
219
|
+
/**
|
|
220
|
+
* HTML tag to render. Can be any valid HTML tag of your choice, usually a
|
|
221
|
+
* [block-level element](https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements).
|
|
222
|
+
*/
|
|
223
|
+
tag: PropTypes.string,
|
|
206
224
|
};
|
|
207
225
|
|
|
208
226
|
export const GridWithContext = withProviderContext(Grid, 'Grid');
|
|
@@ -19,11 +19,9 @@
|
|
|
19
19
|
// `--rui-local-<PROPERTY>: var(--rui-local-<PROPERTY>-sm, var(--rui-local-<PROPERTY>-xs, <INITIAL FALLBACK>))`
|
|
20
20
|
//
|
|
21
21
|
// 2. Apply custom property value that is defined within current breakpoint, see 1.
|
|
22
|
-
//
|
|
23
|
-
// 3. Any valid auto-flow algorithm can be used. It's applied globally for all breakpoints.
|
|
24
22
|
|
|
25
23
|
@use 'sass:map';
|
|
26
|
-
@use '
|
|
24
|
+
@use '../../styles/tools/spacing';
|
|
27
25
|
@use 'theme';
|
|
28
26
|
@use 'tools';
|
|
29
27
|
|
|
@@ -34,7 +32,7 @@
|
|
|
34
32
|
display: grid;
|
|
35
33
|
grid-template-columns: var(--rui-local-columns); // 2.
|
|
36
34
|
grid-template-rows: var(--rui-local-rows); // 2.
|
|
37
|
-
grid-auto-flow: var(--rui-local-auto-flow, theme.$auto-flow); //
|
|
35
|
+
grid-auto-flow: var(--rui-local-auto-flow, #{map.get(theme.$responsive-properties, auto-flow)}); // 2.
|
|
38
36
|
grid-gap: var(--rui-local-row-gap) var(--rui-local-column-gap); // 2.
|
|
39
37
|
align-content: var(--rui-local-align-content, #{map.get(theme.$responsive-properties, align-content)}); // 2.
|
|
40
38
|
align-items: var(--rui-local-align-items, #{map.get(theme.$responsive-properties, align-items)}); // 2.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { withProviderContext } from '
|
|
3
|
+
import { withProviderContext } from '../../provider';
|
|
4
4
|
import { generateResponsiveCustomProperties } from './helpers/generateResponsiveCustomProperties';
|
|
5
5
|
import styles from './Grid.scss';
|
|
6
6
|
|
|
@@ -9,6 +9,7 @@ export const GridSpan = ({
|
|
|
9
9
|
columns,
|
|
10
10
|
id,
|
|
11
11
|
rows,
|
|
12
|
+
tag: Tag,
|
|
12
13
|
...other
|
|
13
14
|
}) => {
|
|
14
15
|
if (!children) {
|
|
@@ -16,7 +17,7 @@ export const GridSpan = ({
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
return (
|
|
19
|
-
<
|
|
20
|
+
<Tag
|
|
20
21
|
id={id}
|
|
21
22
|
className={styles.span}
|
|
22
23
|
style={{
|
|
@@ -26,7 +27,7 @@ export const GridSpan = ({
|
|
|
26
27
|
{...other}
|
|
27
28
|
>
|
|
28
29
|
{children}
|
|
29
|
-
</
|
|
30
|
+
</Tag>
|
|
30
31
|
);
|
|
31
32
|
};
|
|
32
33
|
|
|
@@ -38,6 +39,7 @@ GridSpan.defaultProps = {
|
|
|
38
39
|
columns: undefined,
|
|
39
40
|
id: undefined,
|
|
40
41
|
rows: undefined,
|
|
42
|
+
tag: 'div',
|
|
41
43
|
};
|
|
42
44
|
|
|
43
45
|
GridSpan.propTypes = {
|
|
@@ -79,6 +81,11 @@ GridSpan.propTypes = {
|
|
|
79
81
|
xxxl: PropTypes.number,
|
|
80
82
|
}),
|
|
81
83
|
]),
|
|
84
|
+
/**
|
|
85
|
+
* HTML tag to render. Can be any valid HTML tag of your choice, usually a
|
|
86
|
+
* [block-level element](https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements).
|
|
87
|
+
*/
|
|
88
|
+
tag: PropTypes.string,
|
|
82
89
|
};
|
|
83
90
|
|
|
84
91
|
export const GridSpanWithContext = withProviderContext(GridSpan, 'GridSpan');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Grid
|
|
3
3
|
menu: 'Layouts'
|
|
4
|
-
route: /components/
|
|
4
|
+
route: /components/grid
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Grid
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Playground,
|
|
11
11
|
Props,
|
|
12
12
|
} from 'docz'
|
|
13
|
-
import { Placeholder } from '
|
|
13
|
+
import { Placeholder } from '../../../docs/_components/Placeholder/Placeholder'
|
|
14
14
|
import { Grid } from './Grid'
|
|
15
15
|
import { GridSpan } from './GridSpan'
|
|
16
16
|
|
|
@@ -41,20 +41,12 @@ See [API](#api) for all available options.
|
|
|
41
41
|
|
|
42
42
|
## General Guidelines
|
|
43
43
|
|
|
44
|
-
- This component implements native
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
[
|
|
49
|
-
|
|
50
|
-
[grid-column-gap](https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap),
|
|
51
|
-
[grid-row-gap](https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap),
|
|
52
|
-
[grid-auto-flow](https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow),
|
|
53
|
-
[align-content](https://developer.mozilla.org/en-US/docs/Web/CSS/align-content),
|
|
54
|
-
[align-items](https://developer.mozilla.org/en-US/docs/Web/CSS/align-items),
|
|
55
|
-
[justify-content](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content),
|
|
56
|
-
[justify-items](https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items)
|
|
57
|
-
and CSS properties in corresponding API options of the component.
|
|
44
|
+
- This component implements native [CSS grid layout][grid-layout], the right CSS
|
|
45
|
+
tool for two-dimensional layouts. You may use any value accepted by
|
|
46
|
+
[grid-template-columns], [grid-template-rows], [grid-column-gap],
|
|
47
|
+
[grid-row-gap], [grid-auto-flow], [align-content], [align-items],
|
|
48
|
+
[justify-content], [justify-items], and CSS properties in corresponding API
|
|
49
|
+
options of the component.
|
|
58
50
|
|
|
59
51
|
- To align your items in the grid, **simply wrap** them with the Grid
|
|
60
52
|
component. Unlike other grid frameworks and UI libraries, **no additional
|
|
@@ -84,9 +76,7 @@ Use `columns` and `rows` to specify your grid layout.
|
|
|
84
76
|
</Grid>
|
|
85
77
|
</Playground>
|
|
86
78
|
|
|
87
|
-
You can use the
|
|
88
|
-
[`repeat()`](https://developer.mozilla.org/en-US/docs/Web/CSS/repeat) function
|
|
89
|
-
to specify a recurring pattern.
|
|
79
|
+
You can use the [`repeat()`][repeat] function to specify a recurring pattern.
|
|
90
80
|
|
|
91
81
|
<Playground>
|
|
92
82
|
<Grid columns="repeat(3, 1fr)">
|
|
@@ -99,9 +89,8 @@ to specify a recurring pattern.
|
|
|
99
89
|
</Grid>
|
|
100
90
|
</Playground>
|
|
101
91
|
|
|
102
|
-
Combine `repeat()` with `auto-fit` and
|
|
103
|
-
|
|
104
|
-
automatic responsive layouts. Resize the playground to see it in action.
|
|
92
|
+
Combine `repeat()` with `auto-fit` and [`minmax()`][minmax] to build automatic
|
|
93
|
+
responsive layouts. Resize the playground to see it in action.
|
|
105
94
|
|
|
106
95
|
<Playground>
|
|
107
96
|
<Grid columns="repeat(auto-fit, minmax(200px, auto))">
|
|
@@ -198,7 +187,10 @@ responsive columns and rows.
|
|
|
198
187
|
|
|
199
188
|
<Playground>
|
|
200
189
|
<Grid
|
|
201
|
-
autoFlow=
|
|
190
|
+
autoFlow={{
|
|
191
|
+
xs: 'row dense',
|
|
192
|
+
sm: 'column',
|
|
193
|
+
}}
|
|
202
194
|
columns={{
|
|
203
195
|
xs: 'repeat(2, 1fr)',
|
|
204
196
|
sm: 'repeat(4, 1fr)',
|
|
@@ -208,29 +200,28 @@ responsive columns and rows.
|
|
|
208
200
|
sm: 'auto 100px auto auto',
|
|
209
201
|
}}
|
|
210
202
|
>
|
|
211
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
212
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
213
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
214
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
215
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
203
|
+
<Placeholder bordered>Grid item 1</Placeholder>
|
|
204
|
+
<Placeholder bordered>Grid item 2</Placeholder>
|
|
205
|
+
<Placeholder bordered>Grid item 3</Placeholder>
|
|
206
|
+
<Placeholder bordered>Grid item 4</Placeholder>
|
|
207
|
+
<Placeholder bordered>Grid item 5</Placeholder>
|
|
216
208
|
<GridSpan columns={2} rows={2}>
|
|
217
209
|
<Placeholder bordered height="100%">
|
|
218
210
|
Grid item spanning over two lines and two rows
|
|
219
211
|
</Placeholder>
|
|
220
212
|
</GridSpan>
|
|
221
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
222
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
223
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
224
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
225
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
226
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
227
|
-
<Placeholder bordered>Grid item</Placeholder>
|
|
213
|
+
<Placeholder bordered>Grid item 6</Placeholder>
|
|
214
|
+
<Placeholder bordered>Grid item 7</Placeholder>
|
|
215
|
+
<Placeholder bordered>Grid item 8</Placeholder>
|
|
216
|
+
<Placeholder bordered>Grid item 9</Placeholder>
|
|
217
|
+
<Placeholder bordered>Grid item 10</Placeholder>
|
|
218
|
+
<Placeholder bordered>Grid item 11</Placeholder>
|
|
219
|
+
<Placeholder bordered>Grid item 12</Placeholder>
|
|
228
220
|
</Grid>
|
|
229
221
|
</Playground>
|
|
230
222
|
|
|
231
|
-
👉 `autoFlow` implements the `grid-auto-flow` CSS
|
|
232
|
-
[MDN]
|
|
233
|
-
understand available options.
|
|
223
|
+
👉 `autoFlow` (used in the example above) implements the `grid-auto-flow` CSS
|
|
224
|
+
property. Check [MDN][grid-auto-flow] to fully understand available options.
|
|
234
225
|
|
|
235
226
|
## API
|
|
236
227
|
|
|
@@ -255,3 +246,16 @@ Wrapper for content that should span multiple rows or columns.
|
|
|
255
246
|
| `--rui-Grid__justify-content` | Default horizontal alignment of the layout |
|
|
256
247
|
| `--rui-Grid__justify-items` | Default horizontal alignment of grid items |
|
|
257
248
|
| `--rui-Grid__auto-flow` | Default auto-flow algorithm |
|
|
249
|
+
|
|
250
|
+
[grid-layout]: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout
|
|
251
|
+
[grid-template-columns]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-columns
|
|
252
|
+
[grid-template-rows]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-template-rows
|
|
253
|
+
[grid-column-gap]: https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap
|
|
254
|
+
[grid-row-gap]: https://developer.mozilla.org/en-US/docs/Web/CSS/row-gap
|
|
255
|
+
[grid-auto-flow]: https://developer.mozilla.org/en-US/docs/Web/CSS/grid-auto-flow
|
|
256
|
+
[aling-content]: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
|
|
257
|
+
[align-items]: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
|
|
258
|
+
[justify-content]: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
|
|
259
|
+
[justify-items]: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items
|
|
260
|
+
[repeat]: https://developer.mozilla.org/en-US/docs/Web/CSS/repeat
|
|
261
|
+
[minmax]: https://developer.mozilla.org/en-US/docs/Web/CSS/minmax
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
$auto-flow: var(--rui-Grid__auto-flow);
|
|
2
|
-
|
|
3
1
|
$responsive-properties: (
|
|
4
2
|
columns: var(--rui-Grid__columns),
|
|
5
3
|
column-gap: var(--rui-Grid__column-gap),
|
|
6
4
|
rows: var(--rui-Grid__rows),
|
|
7
5
|
row-gap: var(--rui-Grid__row-gap),
|
|
6
|
+
auto-flow: var(--rui-Grid__auto-flow),
|
|
8
7
|
align-content: var(--rui-Grid__align-content),
|
|
9
8
|
align-items: var(--rui-Grid__align-items),
|
|
10
9
|
justify-content: var(--rui-Grid__justify-content),
|
package/src/lib/components/{layout/Grid → Grid}/helpers/generateResponsiveCustomProperties.js
RENAMED
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import transferProps from '../../utils/transferProps';
|
|
4
|
+
import { withProviderContext } from '../../provider';
|
|
5
|
+
import styles from './Link.scss';
|
|
6
|
+
|
|
7
|
+
export const Link = ({
|
|
8
|
+
children,
|
|
9
|
+
href,
|
|
10
|
+
id,
|
|
11
|
+
...restProps
|
|
12
|
+
}) => (
|
|
13
|
+
<a
|
|
14
|
+
{...transferProps(restProps)}
|
|
15
|
+
href={href}
|
|
16
|
+
className={styles.root}
|
|
17
|
+
id={id}
|
|
18
|
+
>
|
|
19
|
+
{children}
|
|
20
|
+
</a>
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
Link.defaultProps = {
|
|
24
|
+
children: null,
|
|
25
|
+
id: undefined,
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
Link.propTypes = {
|
|
29
|
+
/**
|
|
30
|
+
* Content of the link.
|
|
31
|
+
*/
|
|
32
|
+
children: PropTypes.node,
|
|
33
|
+
/**
|
|
34
|
+
* Link's `href` attribute.
|
|
35
|
+
*/
|
|
36
|
+
href: PropTypes.string.isRequired,
|
|
37
|
+
/**
|
|
38
|
+
* ID of the root HTML element.
|
|
39
|
+
*/
|
|
40
|
+
id: PropTypes.string,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export const LinkWithContext = withProviderContext(Link, 'Link');
|
|
44
|
+
|
|
45
|
+
export default LinkWithContext;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Link
|
|
3
|
+
menu: 'Actions'
|
|
4
|
+
route: /components/link
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Link
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
Playground,
|
|
11
|
+
Props,
|
|
12
|
+
} from 'docz'
|
|
13
|
+
import Placeholder from '../../../docs/_components/Placeholder'
|
|
14
|
+
import { Link } from './Link'
|
|
15
|
+
|
|
16
|
+
Link allow users to follow navigation.
|
|
17
|
+
|
|
18
|
+
## Basic Usage
|
|
19
|
+
|
|
20
|
+
To implement the Link component, you need to import it first:
|
|
21
|
+
|
|
22
|
+
```js
|
|
23
|
+
import { Link } from '@react-ui-org/react-ui';
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
And use it:
|
|
27
|
+
|
|
28
|
+
<Playground>
|
|
29
|
+
<Link href="/contribute/guidelines">How can I contribute to React UI?</Link>
|
|
30
|
+
</Playground>
|
|
31
|
+
|
|
32
|
+
See [API](#api) for all available options.
|
|
33
|
+
|
|
34
|
+
## General Guidelines
|
|
35
|
+
|
|
36
|
+
**Avoid using links for actions**, use a [Button](/components/ui/button)
|
|
37
|
+
instead. This is because users expect navigation to happen when clicking on
|
|
38
|
+
something what looks like a link.
|
|
39
|
+
|
|
40
|
+
## Block-Level Content
|
|
41
|
+
|
|
42
|
+
Besides text, link can contain block-level elements too.
|
|
43
|
+
|
|
44
|
+
<Playground>
|
|
45
|
+
<Link href="/contribute/guidelines">
|
|
46
|
+
<Placeholder>Block-level element wrapped with link</Placeholder>
|
|
47
|
+
</Link>
|
|
48
|
+
</Playground>
|
|
49
|
+
|
|
50
|
+
## Custom Routing
|
|
51
|
+
|
|
52
|
+
It's common to use custom function for routing within SPAs. Use the
|
|
53
|
+
`onClick` option to provide such function.
|
|
54
|
+
|
|
55
|
+
<Playground>
|
|
56
|
+
<Link
|
|
57
|
+
href="/contribute/guidelines"
|
|
58
|
+
onClick={(event) => {
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
window.location = event.currentTarget.getAttribute('href');
|
|
61
|
+
}}
|
|
62
|
+
>
|
|
63
|
+
This link is controlled by custom function
|
|
64
|
+
</Link>
|
|
65
|
+
</Playground>
|
|
66
|
+
|
|
67
|
+
## API
|
|
68
|
+
|
|
69
|
+
In addition to the options below, you can specify [React synthetic events] or
|
|
70
|
+
any custom HTML attributes that do not interfere with the API, and they will be
|
|
71
|
+
passed to the `a` HTML element. This enables making the component interactive
|
|
72
|
+
and helps improve its accessibility.
|
|
73
|
+
|
|
74
|
+
<Props table of={Link} />
|
|
75
|
+
|
|
76
|
+
## Theming
|
|
77
|
+
|
|
78
|
+
| Custom Property | Description |
|
|
79
|
+
|--------------------------------------|----------------------------------------------|
|
|
80
|
+
| `--rui-Link__color` | Text color |
|
|
81
|
+
| `--rui-Link__text-decoration` | Text decoration, e.g. underline |
|
|
82
|
+
| `--rui-Link--hover__color` | Text color on hover |
|
|
83
|
+
| `--rui-Link--hover__text-decoration` | Text decoration on hover |
|
|
84
|
+
|
|
85
|
+
[React synthetic events]: https://reactjs.org/docs/events.html
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Link';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: List
|
|
3
3
|
menu: 'Layouts'
|
|
4
|
-
route: /components/
|
|
4
|
+
route: /components/list
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# List
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Playground,
|
|
11
11
|
Props,
|
|
12
12
|
} from 'docz'
|
|
13
|
-
import { Placeholder } from '
|
|
13
|
+
import { Placeholder } from '../../../docs/_components/Placeholder/Placeholder'
|
|
14
14
|
import { List } from './List'
|
|
15
15
|
import { ListItem } from './ListItem'
|
|
16
16
|
|
|
File without changes
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import PropTypes from 'prop-types';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import { withProviderContext } from '
|
|
3
|
+
import { withProviderContext } from '../../provider';
|
|
4
4
|
import styles from './Media.scss';
|
|
5
5
|
|
|
6
6
|
export const Media = (props) => {
|
|
@@ -17,7 +17,9 @@ export const Media = (props) => {
|
|
|
17
17
|
|
|
18
18
|
Media.propTypes = {
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Nested elements. Supported types are:
|
|
21
|
+
* * `MediaBody`
|
|
22
|
+
* * `MediaObject`
|
|
21
23
|
*/
|
|
22
24
|
children: PropTypes.node.isRequired,
|
|
23
25
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Media
|
|
3
3
|
menu: 'Layouts'
|
|
4
|
-
route: /components/
|
|
4
|
+
route: /components/media
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Media
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Playground,
|
|
11
11
|
Props,
|
|
12
12
|
} from 'docz'
|
|
13
|
-
import { Placeholder } from '
|
|
13
|
+
import { Placeholder } from '../../../docs/_components/Placeholder/Placeholder'
|
|
14
14
|
import { Media } from './Media'
|
|
15
15
|
import { MediaBody } from './MediaBody'
|
|
16
16
|
import { MediaObject } from './MediaObject'
|
|
File without changes
|