@instructure/ui-table 9.1.1-pr-snapshot-1720014507835 → 9.1.1-pr-snapshot-1720186232821
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/CHANGELOG.md +2 -5
- package/es/Table/Body/index.js +4 -3
- package/es/Table/Body/props.js +3 -1
- package/es/Table/Head/props.js +3 -1
- package/es/Table/Row/index.js +21 -6
- package/es/Table/Row/props.js +5 -1
- package/es/Table/index.js +27 -14
- package/es/Table/props.js +4 -1
- package/lib/Table/Body/index.js +4 -2
- package/lib/Table/Body/props.js +3 -1
- package/lib/Table/Head/props.js +3 -1
- package/lib/Table/Row/index.js +21 -5
- package/lib/Table/Row/props.js +5 -1
- package/lib/Table/index.js +27 -13
- package/lib/Table/props.js +4 -1
- package/package.json +16 -16
- package/src/Table/Body/index.tsx +14 -7
- package/src/Table/Body/props.ts +4 -1
- package/src/Table/Head/props.ts +5 -1
- package/src/Table/README.md +0 -112
- package/src/Table/Row/index.tsx +34 -8
- package/src/Table/Row/props.ts +6 -1
- package/src/Table/index.tsx +37 -15
- package/src/Table/props.ts +2 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/types/Table/Body/index.d.ts.map +1 -1
- package/types/Table/Body/props.d.ts.map +1 -1
- package/types/Table/Cell/index.d.ts +2 -2
- package/types/Table/ColHeader/index.d.ts +4 -4
- package/types/Table/Head/props.d.ts.map +1 -1
- package/types/Table/Row/index.d.ts.map +1 -1
- package/types/Table/Row/props.d.ts.map +1 -1
- package/types/Table/RowHeader/index.d.ts +2 -2
- package/types/Table/index.d.ts +1 -1
- package/types/Table/index.d.ts.map +1 -1
- package/types/Table/props.d.ts.map +1 -1
package/CHANGELOG.md
CHANGED
@@ -3,12 +3,9 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
-
## [9.1.1-pr-snapshot-
|
6
|
+
## [9.1.1-pr-snapshot-1720186232821](https://github.com/instructure/instructure-ui/compare/v9.1.0...v9.1.1-pr-snapshot-1720186232821) (2024-07-05)
|
7
7
|
|
8
|
-
|
9
|
-
### Features
|
10
|
-
|
11
|
-
* **ui-table:** remove restriction for children types and add documentation ([00e3026](https://github.com/instructure/instructure-ui/commit/00e30266d178c977fe828868b5dc000717dd8e1d))
|
8
|
+
**Note:** Version bump only for package @instructure/ui-table
|
12
9
|
|
13
10
|
|
14
11
|
|
package/es/Table/Body/index.js
CHANGED
@@ -25,11 +25,12 @@ var _dec, _class, _Body;
|
|
25
25
|
|
26
26
|
/** @jsx jsx */
|
27
27
|
import { Component, Children } from 'react';
|
28
|
-
import { safeCloneElement, omitProps } from '@instructure/ui-react-utils';
|
28
|
+
import { matchComponentTypes, safeCloneElement, omitProps } from '@instructure/ui-react-utils';
|
29
29
|
import { View } from '@instructure/ui-view';
|
30
30
|
import { withStyle, jsx } from '@instructure/emotion';
|
31
31
|
import generateStyle from './styles';
|
32
32
|
import generateComponentTheme from './theme';
|
33
|
+
import { Row } from '../Row';
|
33
34
|
import { allowedProps, propTypes } from './props';
|
34
35
|
|
35
36
|
/**
|
@@ -58,12 +59,12 @@ let Body = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class
|
|
58
59
|
as: isStacked ? 'div' : 'tbody',
|
59
60
|
css: styles === null || styles === void 0 ? void 0 : styles.body,
|
60
61
|
role: isStacked ? 'rowgroup' : void 0
|
61
|
-
}), Children.map(children, child => safeCloneElement(child, {
|
62
|
+
}), Children.map(children, child => matchComponentTypes(child, [Row]) ? safeCloneElement(child, {
|
62
63
|
key: child.props.name,
|
63
64
|
hover,
|
64
65
|
isStacked,
|
65
66
|
headers
|
66
|
-
})));
|
67
|
+
}) : null));
|
67
68
|
}
|
68
69
|
}, _Body.displayName = "Body", _Body.componentId = 'Table.Body', _Body.allowedProps = allowedProps, _Body.propTypes = propTypes, _Body.defaultProps = {
|
69
70
|
children: null
|
package/es/Table/Body/props.js
CHANGED
@@ -23,8 +23,10 @@
|
|
23
23
|
*/
|
24
24
|
|
25
25
|
import PropTypes from 'prop-types';
|
26
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types';
|
27
|
+
import { Row } from '../Row';
|
26
28
|
const propTypes = {
|
27
|
-
children:
|
29
|
+
children: ChildrenPropTypes.oneOf([Row]),
|
28
30
|
hover: PropTypes.bool,
|
29
31
|
isStacked: PropTypes.bool,
|
30
32
|
headers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.func]))
|
package/es/Table/Head/props.js
CHANGED
@@ -23,8 +23,10 @@
|
|
23
23
|
*/
|
24
24
|
|
25
25
|
import PropTypes from 'prop-types';
|
26
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types';
|
27
|
+
import { Row } from '../Row';
|
26
28
|
const propTypes = {
|
27
|
-
children:
|
29
|
+
children: ChildrenPropTypes.oneOf([Row]),
|
28
30
|
isStacked: PropTypes.bool,
|
29
31
|
renderSortLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
|
30
32
|
};
|
package/es/Table/Row/index.js
CHANGED
@@ -25,11 +25,14 @@ var _dec, _class, _Row;
|
|
25
25
|
|
26
26
|
/** @jsx jsx */
|
27
27
|
import { Component, Children } from 'react';
|
28
|
-
import { omitProps, safeCloneElement } from '@instructure/ui-react-utils';
|
28
|
+
import { omitProps, matchComponentTypes, safeCloneElement } from '@instructure/ui-react-utils';
|
29
29
|
import { View } from '@instructure/ui-view';
|
30
30
|
import { withStyle, jsx } from '@instructure/emotion';
|
31
31
|
import generateStyle from './styles';
|
32
32
|
import generateComponentTheme from './theme';
|
33
|
+
import { ColHeader } from '../ColHeader';
|
34
|
+
import { RowHeader } from '../RowHeader';
|
35
|
+
import { Cell } from '../Cell';
|
33
36
|
import { allowedProps, propTypes } from './props';
|
34
37
|
|
35
38
|
/**
|
@@ -58,11 +61,23 @@ let Row = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_class
|
|
58
61
|
css: styles === null || styles === void 0 ? void 0 : styles.row,
|
59
62
|
role: isStacked ? 'row' : void 0
|
60
63
|
}), Children.toArray(children).filter(Boolean).map((child, index) => {
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
64
|
+
if (matchComponentTypes(child, [ColHeader])) {
|
65
|
+
return child;
|
66
|
+
}
|
67
|
+
if (matchComponentTypes(child, [RowHeader])) {
|
68
|
+
return safeCloneElement(child, {
|
69
|
+
key: child.props.name,
|
70
|
+
isStacked
|
71
|
+
});
|
72
|
+
}
|
73
|
+
if (matchComponentTypes(child, [Cell])) {
|
74
|
+
return safeCloneElement(child, {
|
75
|
+
key: child.props.name,
|
76
|
+
isStacked,
|
77
|
+
header: headers && headers[index]
|
78
|
+
});
|
79
|
+
}
|
80
|
+
return null;
|
66
81
|
}));
|
67
82
|
}
|
68
83
|
}, _Row.displayName = "Row", _Row.componentId = 'Table.Row', _Row.allowedProps = allowedProps, _Row.propTypes = propTypes, _Row.defaultProps = {
|
package/es/Table/Row/props.js
CHANGED
@@ -23,8 +23,12 @@
|
|
23
23
|
*/
|
24
24
|
|
25
25
|
import PropTypes from 'prop-types';
|
26
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types';
|
27
|
+
import { ColHeader } from '../ColHeader';
|
28
|
+
import { RowHeader } from '../RowHeader';
|
29
|
+
import { Cell } from '../Cell';
|
26
30
|
const propTypes = {
|
27
|
-
children:
|
31
|
+
children: ChildrenPropTypes.oneOf([ColHeader, RowHeader, Cell]),
|
28
32
|
hover: PropTypes.bool,
|
29
33
|
isStacked: PropTypes.bool,
|
30
34
|
headers: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.node, PropTypes.func]))
|
package/es/Table/index.js
CHANGED
@@ -26,7 +26,7 @@ var _dec, _class, _Table;
|
|
26
26
|
|
27
27
|
/** @jsx jsx */
|
28
28
|
import { Component, Children } from 'react';
|
29
|
-
import { safeCloneElement, omitProps } from '@instructure/ui-react-utils';
|
29
|
+
import { matchComponentTypes, safeCloneElement, omitProps } from '@instructure/ui-react-utils';
|
30
30
|
import { View } from '@instructure/ui-view';
|
31
31
|
import { ScreenReaderContent } from '@instructure/ui-a11y-content';
|
32
32
|
import { withStyle, jsx } from '@instructure/emotion';
|
@@ -70,13 +70,17 @@ let Table = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_clas
|
|
70
70
|
const _ref = Children.toArray(children),
|
71
71
|
_ref2 = _slicedToArray(_ref, 1),
|
72
72
|
head = _ref2[0];
|
73
|
-
|
74
|
-
_Children$
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
73
|
+
if (matchComponentTypes(head, [Head])) {
|
74
|
+
const _Children$toArray = Children.toArray(head.props.children),
|
75
|
+
_Children$toArray2 = _slicedToArray(_Children$toArray, 1),
|
76
|
+
row = _Children$toArray2[0];
|
77
|
+
if (matchComponentTypes(row, [Row])) {
|
78
|
+
return Children.map(row.props.children, colHeader => {
|
79
|
+
return matchComponentTypes(colHeader, [ColHeader]) ? colHeader.props.children : void 0;
|
80
|
+
});
|
81
|
+
}
|
82
|
+
}
|
83
|
+
return void 0;
|
80
84
|
}
|
81
85
|
render() {
|
82
86
|
const _this$props3 = this.props,
|
@@ -96,12 +100,21 @@ let Table = (_dec = withStyle(generateStyle, generateComponentTheme), _dec(_clas
|
|
96
100
|
role: isStacked ? 'table' : void 0,
|
97
101
|
"aria-label": isStacked ? caption : void 0
|
98
102
|
}), !isStacked && jsx("caption", null, jsx(ScreenReaderContent, null, caption)), Children.map(children, child => {
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
}
|
103
|
+
if (matchComponentTypes(child, [Head])) {
|
104
|
+
return safeCloneElement(child, {
|
105
|
+
key: child.props.name,
|
106
|
+
isStacked
|
107
|
+
});
|
108
|
+
}
|
109
|
+
if (matchComponentTypes(child, [Body])) {
|
110
|
+
return safeCloneElement(child, {
|
111
|
+
key: child.props.name,
|
112
|
+
isStacked,
|
113
|
+
hover,
|
114
|
+
headers
|
115
|
+
});
|
116
|
+
}
|
117
|
+
return null;
|
105
118
|
}));
|
106
119
|
}
|
107
120
|
}, _Table.displayName = "Table", _Table.componentId = 'Table', _Table.allowedProps = allowedProps, _Table.propTypes = propTypes, _Table.defaultProps = {
|
package/es/Table/props.js
CHANGED
@@ -23,10 +23,13 @@
|
|
23
23
|
*/
|
24
24
|
|
25
25
|
import PropTypes from 'prop-types';
|
26
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types';
|
26
27
|
import { ThemeablePropTypes } from '@instructure/emotion';
|
28
|
+
import { Head } from './Head';
|
29
|
+
import { Body } from './Body';
|
27
30
|
const propTypes = {
|
28
31
|
caption: PropTypes.node.isRequired,
|
29
|
-
children:
|
32
|
+
children: ChildrenPropTypes.oneOf([Head, Body]),
|
30
33
|
margin: ThemeablePropTypes.spacing,
|
31
34
|
elementRef: PropTypes.func,
|
32
35
|
hover: PropTypes.bool,
|
package/lib/Table/Body/index.js
CHANGED
@@ -6,12 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.default = exports.Body = void 0;
|
8
8
|
var _react = require("react");
|
9
|
+
var _matchComponentTypes = require("@instructure/ui-react-utils/lib/matchComponentTypes.js");
|
9
10
|
var _safeCloneElement = require("@instructure/ui-react-utils/lib/safeCloneElement.js");
|
10
11
|
var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
11
12
|
var _View = require("@instructure/ui-view/lib/View");
|
12
13
|
var _emotion = require("@instructure/emotion");
|
13
14
|
var _styles = _interopRequireDefault(require("./styles"));
|
14
15
|
var _theme = _interopRequireDefault(require("./theme"));
|
16
|
+
var _Row = require("../Row");
|
15
17
|
var _props = require("./props");
|
16
18
|
var _dec, _class, _Body;
|
17
19
|
/*
|
@@ -64,12 +66,12 @@ let Body = exports.Body = (_dec = (0, _emotion.withStyle)(_styles.default, _them
|
|
64
66
|
as: isStacked ? 'div' : 'tbody',
|
65
67
|
css: styles === null || styles === void 0 ? void 0 : styles.body,
|
66
68
|
role: isStacked ? 'rowgroup' : void 0
|
67
|
-
}), _react.Children.map(children, child => (0, _safeCloneElement.safeCloneElement)(child, {
|
69
|
+
}), _react.Children.map(children, child => (0, _matchComponentTypes.matchComponentTypes)(child, [_Row.Row]) ? (0, _safeCloneElement.safeCloneElement)(child, {
|
68
70
|
key: child.props.name,
|
69
71
|
hover,
|
70
72
|
isStacked,
|
71
73
|
headers
|
72
|
-
})));
|
74
|
+
}) : null));
|
73
75
|
}
|
74
76
|
}, _Body.displayName = "Body", _Body.componentId = 'Table.Body', _Body.allowedProps = _props.allowedProps, _Body.propTypes = _props.propTypes, _Body.defaultProps = {
|
75
77
|
children: null
|
package/lib/Table/Body/props.js
CHANGED
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.propTypes = exports.allowedProps = void 0;
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
10
|
+
var _Row = require("../Row");
|
9
11
|
/*
|
10
12
|
* The MIT License (MIT)
|
11
13
|
*
|
@@ -31,7 +33,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
33
|
*/
|
32
34
|
|
33
35
|
const propTypes = exports.propTypes = {
|
34
|
-
children:
|
36
|
+
children: _Children.Children.oneOf([_Row.Row]),
|
35
37
|
hover: _propTypes.default.bool,
|
36
38
|
isStacked: _propTypes.default.bool,
|
37
39
|
headers: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]))
|
package/lib/Table/Head/props.js
CHANGED
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.propTypes = exports.allowedProps = void 0;
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
10
|
+
var _Row = require("../Row");
|
9
11
|
/*
|
10
12
|
* The MIT License (MIT)
|
11
13
|
*
|
@@ -31,7 +33,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
33
|
*/
|
32
34
|
|
33
35
|
const propTypes = exports.propTypes = {
|
34
|
-
children:
|
36
|
+
children: _Children.Children.oneOf([_Row.Row]),
|
35
37
|
isStacked: _propTypes.default.bool,
|
36
38
|
renderSortLabel: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func])
|
37
39
|
};
|
package/lib/Table/Row/index.js
CHANGED
@@ -7,11 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.default = exports.Row = void 0;
|
8
8
|
var _react = require("react");
|
9
9
|
var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
10
|
+
var _matchComponentTypes = require("@instructure/ui-react-utils/lib/matchComponentTypes.js");
|
10
11
|
var _safeCloneElement = require("@instructure/ui-react-utils/lib/safeCloneElement.js");
|
11
12
|
var _View = require("@instructure/ui-view/lib/View");
|
12
13
|
var _emotion = require("@instructure/emotion");
|
13
14
|
var _styles = _interopRequireDefault(require("./styles"));
|
14
15
|
var _theme = _interopRequireDefault(require("./theme"));
|
16
|
+
var _ColHeader = require("../ColHeader");
|
17
|
+
var _RowHeader = require("../RowHeader");
|
18
|
+
var _Cell = require("../Cell");
|
15
19
|
var _props = require("./props");
|
16
20
|
var _dec, _class, _Row;
|
17
21
|
/*
|
@@ -64,11 +68,23 @@ let Row = exports.Row = (_dec = (0, _emotion.withStyle)(_styles.default, _theme.
|
|
64
68
|
css: styles === null || styles === void 0 ? void 0 : styles.row,
|
65
69
|
role: isStacked ? 'row' : void 0
|
66
70
|
}), _react.Children.toArray(children).filter(Boolean).map((child, index) => {
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
71
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(child, [_ColHeader.ColHeader])) {
|
72
|
+
return child;
|
73
|
+
}
|
74
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(child, [_RowHeader.RowHeader])) {
|
75
|
+
return (0, _safeCloneElement.safeCloneElement)(child, {
|
76
|
+
key: child.props.name,
|
77
|
+
isStacked
|
78
|
+
});
|
79
|
+
}
|
80
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(child, [_Cell.Cell])) {
|
81
|
+
return (0, _safeCloneElement.safeCloneElement)(child, {
|
82
|
+
key: child.props.name,
|
83
|
+
isStacked,
|
84
|
+
header: headers && headers[index]
|
85
|
+
});
|
86
|
+
}
|
87
|
+
return null;
|
72
88
|
}));
|
73
89
|
}
|
74
90
|
}, _Row.displayName = "Row", _Row.componentId = 'Table.Row', _Row.allowedProps = _props.allowedProps, _Row.propTypes = _props.propTypes, _Row.defaultProps = {
|
package/lib/Table/Row/props.js
CHANGED
@@ -6,6 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.propTypes = exports.allowedProps = void 0;
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
10
|
+
var _ColHeader = require("../ColHeader");
|
11
|
+
var _RowHeader = require("../RowHeader");
|
12
|
+
var _Cell = require("../Cell");
|
9
13
|
/*
|
10
14
|
* The MIT License (MIT)
|
11
15
|
*
|
@@ -31,7 +35,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
35
|
*/
|
32
36
|
|
33
37
|
const propTypes = exports.propTypes = {
|
34
|
-
children:
|
38
|
+
children: _Children.Children.oneOf([_ColHeader.ColHeader, _RowHeader.RowHeader, _Cell.Cell]),
|
35
39
|
hover: _propTypes.default.bool,
|
36
40
|
isStacked: _propTypes.default.bool,
|
37
41
|
headers: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]))
|
package/lib/Table/index.js
CHANGED
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
7
7
|
exports.default = exports.Table = void 0;
|
8
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
9
9
|
var _react = require("react");
|
10
|
+
var _matchComponentTypes = require("@instructure/ui-react-utils/lib/matchComponentTypes.js");
|
10
11
|
var _safeCloneElement = require("@instructure/ui-react-utils/lib/safeCloneElement.js");
|
11
12
|
var _omitProps = require("@instructure/ui-react-utils/lib/omitProps.js");
|
12
13
|
var _View = require("@instructure/ui-view/lib/View");
|
@@ -76,13 +77,17 @@ let Table = exports.Table = (_dec = (0, _emotion.withStyle)(_styles.default, _th
|
|
76
77
|
const _ref = _react.Children.toArray(children),
|
77
78
|
_ref2 = (0, _slicedToArray2.default)(_ref, 1),
|
78
79
|
head = _ref2[0];
|
79
|
-
|
80
|
-
_Children$
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
80
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(head, [_Head.Head])) {
|
81
|
+
const _Children$toArray = _react.Children.toArray(head.props.children),
|
82
|
+
_Children$toArray2 = (0, _slicedToArray2.default)(_Children$toArray, 1),
|
83
|
+
row = _Children$toArray2[0];
|
84
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(row, [_Row.Row])) {
|
85
|
+
return _react.Children.map(row.props.children, colHeader => {
|
86
|
+
return (0, _matchComponentTypes.matchComponentTypes)(colHeader, [_ColHeader.ColHeader]) ? colHeader.props.children : void 0;
|
87
|
+
});
|
88
|
+
}
|
89
|
+
}
|
90
|
+
return void 0;
|
86
91
|
}
|
87
92
|
render() {
|
88
93
|
const _this$props3 = this.props,
|
@@ -102,12 +107,21 @@ let Table = exports.Table = (_dec = (0, _emotion.withStyle)(_styles.default, _th
|
|
102
107
|
role: isStacked ? 'table' : void 0,
|
103
108
|
"aria-label": isStacked ? caption : void 0
|
104
109
|
}), !isStacked && (0, _emotion.jsx)("caption", null, (0, _emotion.jsx)(_ScreenReaderContent.ScreenReaderContent, null, caption)), _react.Children.map(children, child => {
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
}
|
110
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(child, [_Head.Head])) {
|
111
|
+
return (0, _safeCloneElement.safeCloneElement)(child, {
|
112
|
+
key: child.props.name,
|
113
|
+
isStacked
|
114
|
+
});
|
115
|
+
}
|
116
|
+
if ((0, _matchComponentTypes.matchComponentTypes)(child, [_Body.Body])) {
|
117
|
+
return (0, _safeCloneElement.safeCloneElement)(child, {
|
118
|
+
key: child.props.name,
|
119
|
+
isStacked,
|
120
|
+
hover,
|
121
|
+
headers
|
122
|
+
});
|
123
|
+
}
|
124
|
+
return null;
|
111
125
|
}));
|
112
126
|
}
|
113
127
|
}, _Table.displayName = "Table", _Table.componentId = 'Table', _Table.allowedProps = _props.allowedProps, _Table.propTypes = _props.propTypes, _Table.defaultProps = {
|
package/lib/Table/props.js
CHANGED
@@ -6,7 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
});
|
7
7
|
exports.propTypes = exports.allowedProps = void 0;
|
8
8
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
9
|
+
var _Children = require("@instructure/ui-prop-types/lib/Children.js");
|
9
10
|
var _emotion = require("@instructure/emotion");
|
11
|
+
var _Head = require("./Head");
|
12
|
+
var _Body = require("./Body");
|
10
13
|
/*
|
11
14
|
* The MIT License (MIT)
|
12
15
|
*
|
@@ -33,7 +36,7 @@ var _emotion = require("@instructure/emotion");
|
|
33
36
|
|
34
37
|
const propTypes = exports.propTypes = {
|
35
38
|
caption: _propTypes.default.node.isRequired,
|
36
|
-
children:
|
39
|
+
children: _Children.Children.oneOf([_Head.Head, _Body.Body]),
|
37
40
|
margin: _emotion.ThemeablePropTypes.spacing,
|
38
41
|
elementRef: _propTypes.default.func,
|
39
42
|
hover: _propTypes.default.bool,
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@instructure/ui-table",
|
3
|
-
"version": "9.1.1-pr-snapshot-
|
3
|
+
"version": "9.1.1-pr-snapshot-1720186232821",
|
4
4
|
"description": "A styled HTML table component",
|
5
5
|
"author": "Instructure, Inc. Engineering and Product Design",
|
6
6
|
"module": "./es/index.js",
|
@@ -23,24 +23,24 @@
|
|
23
23
|
},
|
24
24
|
"license": "MIT",
|
25
25
|
"devDependencies": {
|
26
|
-
"@instructure/ui-babel-preset": "9.1.1-pr-snapshot-
|
27
|
-
"@instructure/ui-color-utils": "9.1.1-pr-snapshot-
|
28
|
-
"@instructure/ui-test-utils": "9.1.1-pr-snapshot-
|
29
|
-
"@instructure/ui-themes": "9.1.1-pr-snapshot-
|
26
|
+
"@instructure/ui-babel-preset": "9.1.1-pr-snapshot-1720186232821",
|
27
|
+
"@instructure/ui-color-utils": "9.1.1-pr-snapshot-1720186232821",
|
28
|
+
"@instructure/ui-test-utils": "9.1.1-pr-snapshot-1720186232821",
|
29
|
+
"@instructure/ui-themes": "9.1.1-pr-snapshot-1720186232821"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
32
|
"@babel/runtime": "^7.24.5",
|
33
|
-
"@instructure/console": "9.1.1-pr-snapshot-
|
34
|
-
"@instructure/emotion": "9.1.1-pr-snapshot-
|
35
|
-
"@instructure/shared-types": "9.1.1-pr-snapshot-
|
36
|
-
"@instructure/ui-a11y-content": "9.1.1-pr-snapshot-
|
37
|
-
"@instructure/ui-icons": "9.1.1-pr-snapshot-
|
38
|
-
"@instructure/ui-prop-types": "9.1.1-pr-snapshot-
|
39
|
-
"@instructure/ui-react-utils": "9.1.1-pr-snapshot-
|
40
|
-
"@instructure/ui-simple-select": "9.1.1-pr-snapshot-
|
41
|
-
"@instructure/ui-testable": "9.1.1-pr-snapshot-
|
42
|
-
"@instructure/ui-utils": "9.1.1-pr-snapshot-
|
43
|
-
"@instructure/ui-view": "9.1.1-pr-snapshot-
|
33
|
+
"@instructure/console": "9.1.1-pr-snapshot-1720186232821",
|
34
|
+
"@instructure/emotion": "9.1.1-pr-snapshot-1720186232821",
|
35
|
+
"@instructure/shared-types": "9.1.1-pr-snapshot-1720186232821",
|
36
|
+
"@instructure/ui-a11y-content": "9.1.1-pr-snapshot-1720186232821",
|
37
|
+
"@instructure/ui-icons": "9.1.1-pr-snapshot-1720186232821",
|
38
|
+
"@instructure/ui-prop-types": "9.1.1-pr-snapshot-1720186232821",
|
39
|
+
"@instructure/ui-react-utils": "9.1.1-pr-snapshot-1720186232821",
|
40
|
+
"@instructure/ui-simple-select": "9.1.1-pr-snapshot-1720186232821",
|
41
|
+
"@instructure/ui-testable": "9.1.1-pr-snapshot-1720186232821",
|
42
|
+
"@instructure/ui-utils": "9.1.1-pr-snapshot-1720186232821",
|
43
|
+
"@instructure/ui-view": "9.1.1-pr-snapshot-1720186232821",
|
44
44
|
"prop-types": "^15.8.1"
|
45
45
|
},
|
46
46
|
"peerDependencies": {
|
package/src/Table/Body/index.tsx
CHANGED
@@ -25,12 +25,17 @@
|
|
25
25
|
/** @jsx jsx */
|
26
26
|
import { Component, Children } from 'react'
|
27
27
|
|
28
|
-
import {
|
28
|
+
import {
|
29
|
+
matchComponentTypes,
|
30
|
+
safeCloneElement,
|
31
|
+
omitProps
|
32
|
+
} from '@instructure/ui-react-utils'
|
29
33
|
import { View } from '@instructure/ui-view'
|
30
34
|
import { withStyle, jsx } from '@instructure/emotion'
|
31
35
|
|
32
36
|
import generateStyle from './styles'
|
33
37
|
import generateComponentTheme from './theme'
|
38
|
+
import { Row } from '../Row'
|
34
39
|
import type { TableBodyProps } from './props'
|
35
40
|
import type { RowChild } from '../props'
|
36
41
|
import { allowedProps, propTypes } from './props'
|
@@ -71,12 +76,14 @@ class Body extends Component<TableBodyProps> {
|
|
71
76
|
role={isStacked ? 'rowgroup' : undefined}
|
72
77
|
>
|
73
78
|
{Children.map(children as RowChild[], (child) =>
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
79
|
+
matchComponentTypes(child, [Row])
|
80
|
+
? safeCloneElement(child, {
|
81
|
+
key: child.props.name,
|
82
|
+
hover,
|
83
|
+
isStacked,
|
84
|
+
headers
|
85
|
+
})
|
86
|
+
: null
|
80
87
|
)}
|
81
88
|
</View>
|
82
89
|
)
|
package/src/Table/Body/props.ts
CHANGED
@@ -24,6 +24,9 @@
|
|
24
24
|
import React from 'react'
|
25
25
|
import PropTypes from 'prop-types'
|
26
26
|
|
27
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types'
|
28
|
+
|
29
|
+
import { Row } from '../Row'
|
27
30
|
import type { TableRowProps } from '../Row/props'
|
28
31
|
|
29
32
|
import type {
|
@@ -54,7 +57,7 @@ type TableBodyProps = TableBodyOwnProps &
|
|
54
57
|
type TableBodyStyle = ComponentStyle<'body'>
|
55
58
|
|
56
59
|
const propTypes: PropValidators<PropKeys> = {
|
57
|
-
children:
|
60
|
+
children: ChildrenPropTypes.oneOf([Row]),
|
58
61
|
hover: PropTypes.bool,
|
59
62
|
isStacked: PropTypes.bool,
|
60
63
|
headers: PropTypes.arrayOf(
|
package/src/Table/Head/props.ts
CHANGED
@@ -25,6 +25,10 @@
|
|
25
25
|
import React from 'react'
|
26
26
|
import PropTypes from 'prop-types'
|
27
27
|
|
28
|
+
import { Children as ChildrenPropTypes } from '@instructure/ui-prop-types'
|
29
|
+
|
30
|
+
import { Row } from '../Row'
|
31
|
+
|
28
32
|
import type {
|
29
33
|
OtherHTMLAttributes,
|
30
34
|
PropValidators,
|
@@ -52,7 +56,7 @@ type TableHeadProps = TableHeadOwnProps &
|
|
52
56
|
type TableHeadStyle = ComponentStyle<'head'>
|
53
57
|
|
54
58
|
const propTypes: PropValidators<PropKeys> = {
|
55
|
-
children:
|
59
|
+
children: ChildrenPropTypes.oneOf([Row]),
|
56
60
|
isStacked: PropTypes.bool,
|
57
61
|
renderSortLabel: PropTypes.oneOfType([PropTypes.node, PropTypes.func])
|
58
62
|
}
|