@atlaskit/table 0.1.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 (108) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE.md +13 -0
  3. package/README.md +83 -0
  4. package/constellation/index/examples.mdx +19 -0
  5. package/constellation/index/props.mdx +32 -0
  6. package/dist/cjs/body.js +105 -0
  7. package/dist/cjs/head-cell.js +42 -0
  8. package/dist/cjs/hooks/selection-provider.js +52 -0
  9. package/dist/cjs/hooks/use-row-id.js +26 -0
  10. package/dist/cjs/hooks/use-selectable.js +183 -0
  11. package/dist/cjs/hooks/use-sorting.js +59 -0
  12. package/dist/cjs/hooks/use-table-body.js +28 -0
  13. package/dist/cjs/hooks/use-table.js +56 -0
  14. package/dist/cjs/index.js +63 -0
  15. package/dist/cjs/row.js +70 -0
  16. package/dist/cjs/selectable-cell.js +53 -0
  17. package/dist/cjs/sortable-column.js +129 -0
  18. package/dist/cjs/table.js +60 -0
  19. package/dist/cjs/thead.js +73 -0
  20. package/dist/cjs/ui/base-cell.js +72 -0
  21. package/dist/cjs/ui/bulk-action-overlay.js +39 -0
  22. package/dist/cjs/ui/index.js +69 -0
  23. package/dist/cjs/ui/selectable-cell.js +39 -0
  24. package/dist/cjs/ui/table.js +31 -0
  25. package/dist/cjs/ui/tbody.js +38 -0
  26. package/dist/cjs/ui/td.js +38 -0
  27. package/dist/cjs/ui/th.js +40 -0
  28. package/dist/cjs/ui/thead.js +40 -0
  29. package/dist/cjs/ui/tr.js +68 -0
  30. package/dist/cjs/version.json +5 -0
  31. package/dist/es2019/body.js +66 -0
  32. package/dist/es2019/head-cell.js +31 -0
  33. package/dist/es2019/hooks/selection-provider.js +33 -0
  34. package/dist/es2019/hooks/use-row-id.js +13 -0
  35. package/dist/es2019/hooks/use-selectable.js +158 -0
  36. package/dist/es2019/hooks/use-sorting.js +37 -0
  37. package/dist/es2019/hooks/use-table-body.js +13 -0
  38. package/dist/es2019/hooks/use-table.js +34 -0
  39. package/dist/es2019/index.js +7 -0
  40. package/dist/es2019/row.js +41 -0
  41. package/dist/es2019/selectable-cell.js +25 -0
  42. package/dist/es2019/sortable-column.js +109 -0
  43. package/dist/es2019/table.js +38 -0
  44. package/dist/es2019/thead.js +46 -0
  45. package/dist/es2019/ui/base-cell.js +54 -0
  46. package/dist/es2019/ui/bulk-action-overlay.js +27 -0
  47. package/dist/es2019/ui/index.js +11 -0
  48. package/dist/es2019/ui/selectable-cell.js +28 -0
  49. package/dist/es2019/ui/table.js +22 -0
  50. package/dist/es2019/ui/tbody.js +26 -0
  51. package/dist/es2019/ui/td.js +21 -0
  52. package/dist/es2019/ui/th.js +26 -0
  53. package/dist/es2019/ui/thead.js +31 -0
  54. package/dist/es2019/ui/tr.js +55 -0
  55. package/dist/es2019/version.json +5 -0
  56. package/dist/esm/body.js +84 -0
  57. package/dist/esm/head-cell.js +31 -0
  58. package/dist/esm/hooks/selection-provider.js +32 -0
  59. package/dist/esm/hooks/use-row-id.js +15 -0
  60. package/dist/esm/hooks/use-selectable.js +171 -0
  61. package/dist/esm/hooks/use-sorting.js +46 -0
  62. package/dist/esm/hooks/use-table-body.js +13 -0
  63. package/dist/esm/hooks/use-table.js +36 -0
  64. package/dist/esm/index.js +7 -0
  65. package/dist/esm/row.js +46 -0
  66. package/dist/esm/selectable-cell.js +31 -0
  67. package/dist/esm/sortable-column.js +114 -0
  68. package/dist/esm/table.js +39 -0
  69. package/dist/esm/thead.js +51 -0
  70. package/dist/esm/ui/base-cell.js +58 -0
  71. package/dist/esm/ui/bulk-action-overlay.js +28 -0
  72. package/dist/esm/ui/index.js +11 -0
  73. package/dist/esm/ui/selectable-cell.js +28 -0
  74. package/dist/esm/ui/table.js +21 -0
  75. package/dist/esm/ui/tbody.js +27 -0
  76. package/dist/esm/ui/td.js +26 -0
  77. package/dist/esm/ui/th.js +28 -0
  78. package/dist/esm/ui/thead.js +30 -0
  79. package/dist/esm/ui/tr.js +55 -0
  80. package/dist/esm/version.json +5 -0
  81. package/dist/types/body.d.ts +15 -0
  82. package/dist/types/head-cell.d.ts +10 -0
  83. package/dist/types/hooks/selection-provider.d.ts +25 -0
  84. package/dist/types/hooks/use-row-id.d.ts +10 -0
  85. package/dist/types/hooks/use-selectable.d.ts +14 -0
  86. package/dist/types/hooks/use-sorting.d.ts +6 -0
  87. package/dist/types/hooks/use-table-body.d.ts +7 -0
  88. package/dist/types/hooks/use-table.d.ts +21 -0
  89. package/dist/types/index.d.ts +7 -0
  90. package/dist/types/row.d.ts +14 -0
  91. package/dist/types/selectable-cell.d.ts +3 -0
  92. package/dist/types/sortable-column.d.ts +17 -0
  93. package/dist/types/table.d.ts +26 -0
  94. package/dist/types/thead.d.ts +7 -0
  95. package/dist/types/ui/base-cell.d.ts +30 -0
  96. package/dist/types/ui/bulk-action-overlay.d.ts +8 -0
  97. package/dist/types/ui/index.d.ts +11 -0
  98. package/dist/types/ui/selectable-cell.d.ts +10 -0
  99. package/dist/types/ui/table.d.ts +23 -0
  100. package/dist/types/ui/tbody.d.ts +8 -0
  101. package/dist/types/ui/td.d.ts +11 -0
  102. package/dist/types/ui/th.d.ts +11 -0
  103. package/dist/types/ui/thead.d.ts +10 -0
  104. package/dist/types/ui/tr.d.ts +16 -0
  105. package/package.json +101 -0
  106. package/primitives/package.json +15 -0
  107. package/report.api.md +139 -0
  108. package/tmp/api-report-tmp.d.ts +99 -0
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.TableProvider = TableProvider;
11
+ exports.useTable = void 0;
12
+
13
+ var _react = _interopRequireWildcard(require("react"));
14
+
15
+ var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
16
+
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+
21
+ function generateContext() {
22
+ return /*#__PURE__*/(0, _react.createContext)({
23
+ isSelectable: false,
24
+ sortKey: 'unset',
25
+ setSortState: _noop.default
26
+ });
27
+ }
28
+
29
+ var TableContext = generateContext();
30
+ /**
31
+ * __Table state provider__
32
+ *
33
+ * The table context provides the data required for more complex functionality.
34
+ *
35
+ * - [Examples](https://atlassian.design/components/table/examples)
36
+ */
37
+
38
+ function TableProvider(_ref) {
39
+ var children = _ref.children,
40
+ state = _ref.state;
41
+ return (
42
+ /*#__PURE__*/
43
+ // @ts-expect-error
44
+ _react.default.createElement(TableContext.Provider, {
45
+ value: state
46
+ }, children)
47
+ );
48
+ }
49
+
50
+ var useTable = function useTable() {
51
+ return (// @ts-expect-error
52
+ (0, _react.useContext)(TableContext)
53
+ );
54
+ };
55
+
56
+ exports.useTable = useTable;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "Cell", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _ui.TD;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "HeadCell", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _headCell.default;
18
+ }
19
+ });
20
+ Object.defineProperty(exports, "Row", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _row.default;
24
+ }
25
+ });
26
+ Object.defineProperty(exports, "SortableColumn", {
27
+ enumerable: true,
28
+ get: function get() {
29
+ return _sortableColumn.default;
30
+ }
31
+ });
32
+ Object.defineProperty(exports, "TBody", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _body.default;
36
+ }
37
+ });
38
+ Object.defineProperty(exports, "THead", {
39
+ enumerable: true,
40
+ get: function get() {
41
+ return _thead.default;
42
+ }
43
+ });
44
+ Object.defineProperty(exports, "default", {
45
+ enumerable: true,
46
+ get: function get() {
47
+ return _table.default;
48
+ }
49
+ });
50
+
51
+ var _table = _interopRequireDefault(require("./table"));
52
+
53
+ var _body = _interopRequireDefault(require("./body"));
54
+
55
+ var _row = _interopRequireDefault(require("./row"));
56
+
57
+ var _ui = require("./ui");
58
+
59
+ var _headCell = _interopRequireDefault(require("./head-cell"));
60
+
61
+ var _sortableColumn = _interopRequireDefault(require("./sortable-column"));
62
+
63
+ var _thead = _interopRequireDefault(require("./thead"));
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _react2 = require("@emotion/react");
17
+
18
+ var _selectionProvider = require("./hooks/selection-provider");
19
+
20
+ var _useRowId = require("./hooks/use-row-id");
21
+
22
+ var _useTable = require("./hooks/use-table");
23
+
24
+ var _useTableBody = require("./hooks/use-table-body");
25
+
26
+ var _selectableCell = _interopRequireDefault(require("./selectable-cell"));
27
+
28
+ var Primitives = _interopRequireWildcard(require("./ui"));
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
34
+ /** @jsx jsx */
35
+
36
+ /**
37
+ * __Row__
38
+ *
39
+ * A table row.
40
+ *
41
+ * - [Examples](https://atlassian.design/components/table/examples)
42
+ */
43
+ var Row = /*#__PURE__*/(0, _react.memo)(function (_ref) {
44
+ var children = _ref.children,
45
+ testId = _ref.testId;
46
+ // To ensure valid nesting
47
+ (0, _useTableBody.useTableBody)(); // to access table state
48
+
49
+ var table = (0, _useTable.useTable)();
50
+
51
+ var _useSelection = (0, _selectionProvider.useSelection)(),
52
+ _useSelection2 = (0, _slicedToArray2.default)(_useSelection, 1),
53
+ selectionState = _useSelection2[0];
54
+
55
+ var rowId = (0, _useRowId.useRowId)();
56
+
57
+ if (!table.isSelectable) {
58
+ return (0, _react2.jsx)(Primitives.TR, {
59
+ testId: testId
60
+ }, children);
61
+ }
62
+
63
+ var isChecked = selectionState.allChecked || selectionState.checked.includes(rowId);
64
+ return (0, _react2.jsx)(Primitives.TR, {
65
+ isSelected: !!isChecked,
66
+ testId: testId
67
+ }, (0, _react2.jsx)(_selectableCell.default, null), children);
68
+ });
69
+ var _default = Row;
70
+ exports.default = _default;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = require("react");
15
+
16
+ var _react2 = require("@emotion/react");
17
+
18
+ var _checkbox = _interopRequireDefault(require("@atlaskit/checkbox"));
19
+
20
+ var _selectionProvider = require("./hooks/selection-provider");
21
+
22
+ var _useRowId = require("./hooks/use-row-id");
23
+
24
+ var Primitives = _interopRequireWildcard(require("./ui"));
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ /** @jsx jsx */
31
+ var SelectableCell = function SelectableCell() {
32
+ var _useSelection = (0, _selectionProvider.useSelection)(),
33
+ _useSelection2 = (0, _slicedToArray2.default)(_useSelection, 2),
34
+ state = _useSelection2[0],
35
+ toggleSelection = _useSelection2[1].toggleSelection;
36
+
37
+ var idx = (0, _useRowId.useRowId)();
38
+ var isChecked = state.allChecked || state.checked.includes(idx);
39
+ var onChange = (0, _react.useCallback)(function (e) {
40
+ return toggleSelection(idx, e.nativeEvent.shiftKey);
41
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
42
+ [idx]);
43
+ return (0, _react2.jsx)(Primitives.SelectableCell, {
44
+ as: "td"
45
+ }, (0, _react2.jsx)(_checkbox.default, {
46
+ isChecked: isChecked,
47
+ onChange: onChange
48
+ }));
49
+ };
50
+
51
+ var _default = /*#__PURE__*/(0, _react.memo)(SelectableCell);
52
+
53
+ exports.default = _default;
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _react = require("@emotion/react");
15
+
16
+ var _button = _interopRequireDefault(require("@atlaskit/button"));
17
+
18
+ var _arrowDown = _interopRequireDefault(require("@atlaskit/icon/glyph/arrow-down"));
19
+
20
+ var _arrowUp = _interopRequireDefault(require("@atlaskit/icon/glyph/arrow-up"));
21
+
22
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
23
+
24
+ var _useTable2 = require("./hooks/use-table");
25
+
26
+ var _ui = require("./ui");
27
+
28
+ var _excluded = ["name", "testId", "onClick", "children"];
29
+
30
+ /**
31
+ * TODO these need to be i18n supported
32
+ */
33
+ var sortingMessages = {
34
+ unsorted: {
35
+ string: 'Sort from A to Z',
36
+ number: 'Sort from 0 to 9'
37
+ },
38
+ ascending: {
39
+ string: 'Sort from A to Z',
40
+ number: 'Sort from 0 to 9'
41
+ },
42
+ descending: {
43
+ string: 'Sort from Z to A',
44
+ number: 'Sort from 9 to 0'
45
+ }
46
+ };
47
+ var overrideStyles = (0, _react.css)({
48
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
49
+ margin: '0 -2px !important',
50
+ gap: "var(--ds-space-050, 4px)",
51
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
52
+ paddingInline: "2px !important"
53
+ });
54
+ /**
55
+ * __SortableColumn__
56
+ *
57
+ * SortableColumn is used in place of the default Column when sorting is desired.
58
+ */
59
+
60
+ var SortableColumn = function SortableColumn(_ref) {
61
+ var name = _ref.name,
62
+ testId = _ref.testId,
63
+ onClick = _ref.onClick,
64
+ children = _ref.children,
65
+ other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
66
+
67
+ var _useTable = (0, _useTable2.useTable)(),
68
+ sortKey = _useTable.sortKey,
69
+ sortDirection = _useTable.sortDirection,
70
+ setSortState = _useTable.setSortState;
71
+
72
+ var getSortMessage = function getSortMessage() {
73
+ if (sortKey === name) {
74
+ // TODO: Change message depending on data type (string/number)
75
+ return sortingMessages[sortDirection || 'unsorted'].string;
76
+ }
77
+
78
+ return sortingMessages.unsorted.string;
79
+ };
80
+
81
+ var getSortIcon = function getSortIcon() {
82
+ if (sortKey === name) {
83
+ switch (sortDirection) {
84
+ case undefined:
85
+ return undefined;
86
+
87
+ case 'ascending':
88
+ return (0, _react.jsx)(_arrowUp.default, {
89
+ size: "small",
90
+ label: "",
91
+ primaryColor: "inherit"
92
+ });
93
+
94
+ case 'descending':
95
+ return (0, _react.jsx)(_arrowDown.default, {
96
+ size: "small",
97
+ label: "",
98
+ primaryColor: "inherit"
99
+ });
100
+ }
101
+ }
102
+
103
+ return undefined;
104
+ };
105
+
106
+ return (// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
107
+ (0, _react.jsx)(_ui.TH, (0, _extends2.default)({
108
+ testId: testId
109
+ }, other), (0, _react.jsx)(_tooltip.default, {
110
+ content: getSortMessage(),
111
+ position: "top"
112
+ }, function (tooltipProps) {
113
+ return (0, _react.jsx)(_button.default, (0, _extends2.default)({
114
+ spacing: "compact",
115
+ appearance: "subtle",
116
+ iconAfter: getSortIcon()
117
+ }, tooltipProps, {
118
+ // @ts-expect-error
119
+ onClick: function onClick() {
120
+ return setSortState(name);
121
+ },
122
+ css: overrideStyles
123
+ }), children);
124
+ }))
125
+ );
126
+ };
127
+
128
+ var _default = SortableColumn;
129
+ exports.default = _default;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _react = require("@emotion/react");
13
+
14
+ var _selectionProvider = _interopRequireDefault(require("./hooks/selection-provider"));
15
+
16
+ var _useSorting2 = require("./hooks/use-sorting");
17
+
18
+ var _useTable = require("./hooks/use-table");
19
+
20
+ var Primitives = _interopRequireWildcard(require("./ui"));
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ /** @jsx jsx */
27
+
28
+ /**
29
+ * __Table__
30
+ *
31
+ * A data table is used to display dynamic data.
32
+ *
33
+ * - [Examples](https://atlassian.design/components/table/examples)
34
+ */
35
+ function Table(_ref) {
36
+ var children = _ref.children,
37
+ isSelectable = _ref.isSelectable,
38
+ _ref$sortKey = _ref.sortKey,
39
+ sortKey = _ref$sortKey === void 0 ? 'unset' : _ref$sortKey,
40
+ testId = _ref.testId;
41
+
42
+ var _useSorting = (0, _useSorting2.useSorting)(sortKey),
43
+ localSortKey = _useSorting.sortKey,
44
+ sortDirection = _useSorting.sortDirection,
45
+ setSortState = _useSorting.setSortState;
46
+
47
+ return (0, _react.jsx)(_useTable.TableProvider, {
48
+ state: {
49
+ isSelectable: isSelectable,
50
+ sortKey: localSortKey,
51
+ sortDirection: sortDirection,
52
+ setSortState: setSortState
53
+ }
54
+ }, (0, _react.jsx)(Primitives.Table, {
55
+ testId: testId
56
+ }, isSelectable ? (0, _react.jsx)(_selectionProvider.default, null, children) : children));
57
+ }
58
+
59
+ var _default = Table;
60
+ exports.default = _default;
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = require("@emotion/react");
15
+
16
+ var _checkbox = _interopRequireDefault(require("@atlaskit/checkbox"));
17
+
18
+ var _dsExplorations = require("@atlaskit/ds-explorations");
19
+
20
+ var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
21
+
22
+ var _selectionProvider = require("./hooks/selection-provider");
23
+
24
+ var _useTable = require("./hooks/use-table");
25
+
26
+ var Primitives = _interopRequireWildcard(require("./ui"));
27
+
28
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
29
+
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+
32
+ /** @jsx jsx */
33
+ var THead = function THead(_ref) {
34
+ var actions = _ref.actions,
35
+ children = _ref.children;
36
+ var table = (0, _useTable.useTable)();
37
+
38
+ var _useSelection = (0, _selectionProvider.useSelection)(),
39
+ _useSelection2 = (0, _slicedToArray2.default)(_useSelection, 2),
40
+ state = _useSelection2[0],
41
+ _useSelection2$ = _useSelection2[1],
42
+ setAll = _useSelection2$.setAll,
43
+ removeAll = _useSelection2$.removeAll;
44
+
45
+ var isChecked = state.allChecked || state.anyChecked;
46
+
47
+ if (!table.isSelectable) {
48
+ return (0, _react.jsx)(Primitives.THead, null, (0, _react.jsx)(Primitives.TR, {
49
+ isBodyRow: false
50
+ }, children));
51
+ }
52
+
53
+ return (0, _react.jsx)(Primitives.THead, null, (0, _react.jsx)(Primitives.TR, {
54
+ isBodyRow: false
55
+ }, (0, _react.jsx)(Primitives.SelectableCell, {
56
+ as: "th"
57
+ }, (0, _react.jsx)(_checkbox.default, {
58
+ "aria-labelledby": "select-all",
59
+ onChange: isChecked ? removeAll : setAll,
60
+ isChecked: isChecked,
61
+ isIndeterminate: state.anyChecked && !state.allChecked
62
+ }), (0, _react.jsx)(_visuallyHidden.default, {
63
+ id: "select-all"
64
+ }, "Select all rows")), children, isChecked && (0, _react.jsx)(Primitives.BulkActionOverlay, null, (0, _react.jsx)(_dsExplorations.UNSAFE_Text, {
65
+ color: "color.text",
66
+ fontWeight: "500"
67
+ }, state.checked.length, " selected"), actions && (0, _react.jsx)(_dsExplorations.UNSAFE_Inline, {
68
+ gap: "scale.100"
69
+ }, actions(state.checked)))));
70
+ };
71
+
72
+ var _default = THead;
73
+ exports.default = _default;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.BaseCell = void 0;
9
+
10
+ var _react = require("react");
11
+
12
+ var _react2 = require("@emotion/react");
13
+
14
+ var _box = _interopRequireDefault(require("@atlaskit/ds-explorations/box"));
15
+
16
+ var _inline = _interopRequireDefault(require("@atlaskit/ds-explorations/inline"));
17
+
18
+ /* eslint-disable @atlassian/tangerine/import/entry-points */
19
+
20
+ /** @jsx jsx */
21
+ var alignMap = {
22
+ text: 'flexStart',
23
+ number: 'flexEnd',
24
+ icon: 'center'
25
+ };
26
+ var baseResetStyles = (0, _react2.css)({
27
+ display: 'table-cell',
28
+ verticalAlign: 'middle',
29
+ '&:first-of-type': {
30
+ paddingLeft: "var(--ds-space-100, 8px)"
31
+ },
32
+ '&:last-of-type': {
33
+ paddingRight: "var(--ds-space-100, 8px)"
34
+ }
35
+ });
36
+ /**
37
+ * __BaseCell__
38
+ *
39
+ * @internal
40
+ *
41
+ * Basic cell element.
42
+ */
43
+
44
+ var BaseCell = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
45
+ var testId = _ref.testId,
46
+ as = _ref.as,
47
+ children = _ref.children,
48
+ _ref$align = _ref.align,
49
+ align = _ref$align === void 0 ? 'text' : _ref$align,
50
+ _ref$paddingBlock = _ref.paddingBlock,
51
+ paddingBlock = _ref$paddingBlock === void 0 ? 'scale.100' : _ref$paddingBlock,
52
+ _ref$paddingInline = _ref.paddingInline,
53
+ paddingInline = _ref$paddingInline === void 0 ? 'scale.200' : _ref$paddingInline,
54
+ backgroundColor = _ref.backgroundColor,
55
+ scope = _ref.scope,
56
+ className = _ref.className;
57
+ return (0, _react2.jsx)(_box.default, {
58
+ css: baseResetStyles,
59
+ ref: ref,
60
+ scope: scope,
61
+ backgroundColor: backgroundColor,
62
+ paddingBlock: paddingBlock,
63
+ paddingInline: paddingInline,
64
+ as: as,
65
+ testId: testId,
66
+ className: className
67
+ }, (0, _react2.jsx)(_inline.default, {
68
+ justifyContent: alignMap[align],
69
+ gap: "scale.0"
70
+ }, children));
71
+ });
72
+ exports.BaseCell = BaseCell;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BulkActionOverlay = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _dsExplorations = require("@atlaskit/ds-explorations");
11
+
12
+ /** @jsx jsx */
13
+ var overlayStyles = (0, _react.css)({
14
+ top: 0,
15
+ right: 0,
16
+ bottom: 0,
17
+ left: 32
18
+ });
19
+ /**
20
+ * __Bulk action overlay__
21
+ *
22
+ * A bulk action overlay is used to conditionally render when a user makes a row selection
23
+ */
24
+
25
+ var BulkActionOverlay = function BulkActionOverlay(_ref) {
26
+ var children = _ref.children;
27
+ return (0, _react.jsx)(_dsExplorations.UNSAFE_Box, {
28
+ as: "th",
29
+ position: "absolute",
30
+ paddingInline: "scale.100",
31
+ backgroundColor: "elevation.surface",
32
+ css: overlayStyles
33
+ }, (0, _react.jsx)(_dsExplorations.UNSAFE_Inline, {
34
+ gap: "scale.300",
35
+ alignItems: "center"
36
+ }, children));
37
+ };
38
+
39
+ exports.BulkActionOverlay = BulkActionOverlay;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "BulkActionOverlay", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _bulkActionOverlay.BulkActionOverlay;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "SelectableCell", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _selectableCell.SelectableCell;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "TBody", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _tbody.TBody;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "TD", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _td.TD;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "TH", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _th.TH;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "THead", {
37
+ enumerable: true,
38
+ get: function get() {
39
+ return _thead.THead;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "TR", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _tr.TR;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "Table", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _table.Table;
52
+ }
53
+ });
54
+
55
+ var _table = require("./table");
56
+
57
+ var _tbody = require("./tbody");
58
+
59
+ var _tr = require("./tr");
60
+
61
+ var _td = require("./td");
62
+
63
+ var _th = require("./th");
64
+
65
+ var _selectableCell = require("./selectable-cell");
66
+
67
+ var _thead = require("./thead");
68
+
69
+ var _bulkActionOverlay = require("./bulk-action-overlay");