@atlaskit/table-tree 9.4.1 → 9.5.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 (35) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/components/internal/chevron.js +8 -3
  3. package/dist/cjs/components/row.js +19 -3
  4. package/dist/cjs/components/table-tree.js +4 -2
  5. package/dist/cjs/version.json +1 -1
  6. package/dist/es2019/components/internal/chevron.js +6 -3
  7. package/dist/es2019/components/row.js +19 -3
  8. package/dist/es2019/components/table-tree.js +17 -13
  9. package/dist/es2019/version.json +1 -1
  10. package/dist/esm/components/internal/chevron.js +8 -3
  11. package/dist/esm/components/row.js +19 -3
  12. package/dist/esm/components/table-tree.js +4 -2
  13. package/dist/esm/version.json +1 -1
  14. package/dist/types/components/internal/chevron.d.ts +2 -0
  15. package/dist/types/components/row.d.ts +1 -0
  16. package/dist/types-ts4.5/components/cell.d.ts +78 -0
  17. package/dist/types-ts4.5/components/header.d.ts +60 -0
  18. package/dist/types-ts4.5/components/headers.d.ts +6 -0
  19. package/dist/types-ts4.5/components/internal/chevron.d.ts +19 -0
  20. package/dist/types-ts4.5/components/internal/common-cell.d.ts +12 -0
  21. package/dist/types-ts4.5/components/internal/item.d.ts +13 -0
  22. package/dist/types-ts4.5/components/internal/items.d.ts +24 -0
  23. package/dist/types-ts4.5/components/internal/loader-item.d.ts +20 -0
  24. package/dist/types-ts4.5/components/internal/overflow-container.d.ts +11 -0
  25. package/dist/types-ts4.5/components/internal/styled.d.ts +36 -0
  26. package/dist/types-ts4.5/components/internal/with-column-width.d.ts +64 -0
  27. package/dist/types-ts4.5/components/row.d.ts +27 -0
  28. package/dist/types-ts4.5/components/rows.d.ts +12 -0
  29. package/dist/types-ts4.5/components/table-tree.d.ts +23 -0
  30. package/dist/types-ts4.5/index.d.ts +10 -0
  31. package/dist/types-ts4.5/utils/table-tree-data-helper.d.ts +25 -0
  32. package/dist/types-ts4.5/utils/to-item-id.d.ts +1 -0
  33. package/extract-react-types/table-tree-row.tsx +9 -0
  34. package/extract-react-types/table-tree.tsx +7 -0
  35. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/table-tree
2
2
 
3
+ ## 9.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`6e5546981a3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6e5546981a3) - Accessibility: Fix the chevron button label.
8
+ Add a new prop `mainColumnForExpandCollapseLabel` that allows you to show a chevron label with row contents instead of a row index.
9
+
10
+ ## 9.4.2
11
+
12
+ ### Patch Changes
13
+
14
+ - [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
15
+
3
16
  ## 9.4.1
4
17
 
5
18
  ### Patch Changes
@@ -47,20 +47,25 @@ var Chevron = /*#__PURE__*/function (_Component) {
47
47
  isExpanded = _this$props.isExpanded,
48
48
  ariaControls = _this$props.ariaControls,
49
49
  collapseLabel = _this$props.collapseLabel,
50
- expandLabel = _this$props.expandLabel;
50
+ expandLabel = _this$props.expandLabel,
51
+ rowId = _this$props.rowId,
52
+ extendedLabel = _this$props.extendedLabel;
51
53
  var iconProps = {
52
54
  size: 'medium',
53
55
  primaryColor: _styled.iconColor
54
56
  };
57
+ var getLabel = function getLabel(defaultLabel) {
58
+ return extendedLabel ? "".concat(defaultLabel, " ").concat(extendedLabel, " row") : "".concat(defaultLabel, " row ").concat(rowId);
59
+ };
55
60
  return /*#__PURE__*/_react.default.createElement(_styled.ChevronContainer, null, /*#__PURE__*/_react.default.createElement(_button.default, {
56
61
  spacing: "none",
57
62
  appearance: "subtle",
58
63
  "aria-controls": ariaControls,
59
64
  onClick: this.handleClick
60
65
  }, /*#__PURE__*/_react.default.createElement(_styled.ChevronIconContainer, null, isExpanded ? /*#__PURE__*/_react.default.createElement(_chevronDown.default, (0, _extends2.default)({
61
- label: collapseLabel
66
+ label: getLabel(collapseLabel)
62
67
  }, iconProps)) : /*#__PURE__*/_react.default.createElement(_chevronRight.default, (0, _extends2.default)({
63
- label: expandLabel
68
+ label: getLabel(expandLabel)
64
69
  }, iconProps)))));
65
70
  }
66
71
  }]);
@@ -28,7 +28,7 @@ var treeRowClickableStyles = (0, _react2.css)({
28
28
  cursor: 'pointer'
29
29
  });
30
30
  var packageName = "@atlaskit/table-tree";
31
- var packageVersion = "9.4.1";
31
+ var packageVersion = "9.5.0";
32
32
  var Row = /*#__PURE__*/function (_Component) {
33
33
  (0, _inherits2.default)(Row, _Component);
34
34
  var _super = _createSuper(Row);
@@ -64,6 +64,18 @@ var Row = /*#__PURE__*/function (_Component) {
64
64
  _this.onExpandStateChange(!_this.state.isExpanded);
65
65
  }
66
66
  });
67
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getExtendedLabel", function (cellContent, cellIndex, mainColumnForExpandCollapseLabel) {
68
+ /**
69
+ * First condition - when we pass data via `items` property in `<TableTree />`
70
+ * Second condition - when we pass data via `<Rows />` as children in `<TableTree />`.
71
+ */
72
+ if (cellContent.hasOwnProperty('props')) {
73
+ return cellContent === null || cellContent === void 0 ? void 0 : cellContent.props[mainColumnForExpandCollapseLabel === null || mainColumnForExpandCollapseLabel === void 0 ? void 0 : mainColumnForExpandCollapseLabel.toLowerCase()];
74
+ } else if (cellIndex === mainColumnForExpandCollapseLabel) {
75
+ return cellContent;
76
+ }
77
+ return undefined;
78
+ });
67
79
  return _this;
68
80
  }
69
81
  (0, _createClass2.default)(Row, [{
@@ -102,18 +114,22 @@ var Row = /*#__PURE__*/function (_Component) {
102
114
  var props = this.props;
103
115
  var isExpanded = this.isExpanded();
104
116
  var hasChildren = props.hasChildren,
105
- depth = props.depth;
117
+ depth = props.depth,
118
+ mainColumnForExpandCollapseLabel = props.mainColumnForExpandCollapseLabel;
106
119
  var isFirstCell = cellIndex === 0;
107
120
  var indentLevel = isFirstCell ? depth : 0;
108
121
  var cellContent = cell.props.children || [];
122
+ var extendedLabel = this.getExtendedLabel(cellContent, cellIndex, mainColumnForExpandCollapseLabel);
109
123
  if (isFirstCell && hasChildren) {
110
124
  cellContent = [(0, _react2.jsx)(_chevron.default, {
111
125
  key: "chevron",
112
126
  expandLabel: props.expandLabel,
113
127
  collapseLabel: props.collapseLabel,
128
+ extendedLabel: extendedLabel,
114
129
  isExpanded: isExpanded,
115
130
  onExpandToggle: this.onExpandToggle,
116
- ariaControls: (0, _toItemId.default)(props.itemId)
131
+ ariaControls: (0, _toItemId.default)(props.itemId),
132
+ rowId: props.itemId
117
133
  })].concat(cellContent);
118
134
  }
119
135
  return /*#__PURE__*/_react.default.cloneElement(cell, {
@@ -82,7 +82,8 @@ var TableTree = /*#__PURE__*/function (_Component) {
82
82
  headers = _this$props.headers,
83
83
  columns = _this$props.columns,
84
84
  _this$props$columnWid = _this$props.columnWidths,
85
- columnWidths = _this$props$columnWid === void 0 ? [] : _this$props$columnWid;
85
+ columnWidths = _this$props$columnWid === void 0 ? [] : _this$props$columnWid,
86
+ mainColumnForExpandCollapseLabel = _this$props.mainColumnForExpandCollapseLabel;
86
87
  var heads = headers && /*#__PURE__*/_react.default.createElement(_headers.default, null, headers.map(function (header, index) {
87
88
  return (
88
89
  /*#__PURE__*/
@@ -107,7 +108,8 @@ var TableTree = /*#__PURE__*/function (_Component) {
107
108
  itemId: id,
108
109
  items: children,
109
110
  hasChildren: hasChildren,
110
- shouldExpandOnClick: shouldExpandOnClick
111
+ shouldExpandOnClick: shouldExpandOnClick,
112
+ mainColumnForExpandCollapseLabel: mainColumnForExpandCollapseLabel
111
113
  }, columns.map(function (CellContent, index) {
112
114
  return /*#__PURE__*/_react.default.createElement(_cell.default
113
115
  // eslint-disable-next-line react/no-array-index-key
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/table-tree",
3
- "version": "9.4.1",
3
+ "version": "9.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -21,21 +21,24 @@ export default class Chevron extends Component {
21
21
  isExpanded,
22
22
  ariaControls,
23
23
  collapseLabel,
24
- expandLabel
24
+ expandLabel,
25
+ rowId,
26
+ extendedLabel
25
27
  } = this.props;
26
28
  const iconProps = {
27
29
  size: 'medium',
28
30
  primaryColor: iconColor
29
31
  };
32
+ const getLabel = defaultLabel => extendedLabel ? `${defaultLabel} ${extendedLabel} row` : `${defaultLabel} row ${rowId}`;
30
33
  return /*#__PURE__*/React.createElement(ChevronContainer, null, /*#__PURE__*/React.createElement(Button, {
31
34
  spacing: "none",
32
35
  appearance: "subtle",
33
36
  "aria-controls": ariaControls,
34
37
  onClick: this.handleClick
35
38
  }, /*#__PURE__*/React.createElement(ChevronIconContainer, null, isExpanded ? /*#__PURE__*/React.createElement(ChevronDownIcon, _extends({
36
- label: collapseLabel
39
+ label: getLabel(collapseLabel)
37
40
  }, iconProps)) : /*#__PURE__*/React.createElement(ChevronRightIcon, _extends({
38
- label: expandLabel
41
+ label: getLabel(expandLabel)
39
42
  }, iconProps)))));
40
43
  }
41
44
  }
@@ -12,7 +12,7 @@ const treeRowClickableStyles = css({
12
12
  cursor: 'pointer'
13
13
  });
14
14
  const packageName = "@atlaskit/table-tree";
15
- const packageVersion = "9.4.1";
15
+ const packageVersion = "9.5.0";
16
16
  class Row extends Component {
17
17
  constructor(...args) {
18
18
  super(...args);
@@ -43,6 +43,18 @@ class Row extends Component {
43
43
  this.onExpandStateChange(!this.state.isExpanded);
44
44
  }
45
45
  });
46
+ _defineProperty(this, "getExtendedLabel", (cellContent, cellIndex, mainColumnForExpandCollapseLabel) => {
47
+ /**
48
+ * First condition - when we pass data via `items` property in `<TableTree />`
49
+ * Second condition - when we pass data via `<Rows />` as children in `<TableTree />`.
50
+ */
51
+ if (cellContent.hasOwnProperty('props')) {
52
+ return cellContent === null || cellContent === void 0 ? void 0 : cellContent.props[mainColumnForExpandCollapseLabel === null || mainColumnForExpandCollapseLabel === void 0 ? void 0 : mainColumnForExpandCollapseLabel.toLowerCase()];
53
+ } else if (cellIndex === mainColumnForExpandCollapseLabel) {
54
+ return cellContent;
55
+ }
56
+ return undefined;
57
+ });
46
58
  }
47
59
  componentDidUpdate(prevProps) {
48
60
  const {
@@ -78,19 +90,23 @@ class Row extends Component {
78
90
  const isExpanded = this.isExpanded();
79
91
  const {
80
92
  hasChildren,
81
- depth
93
+ depth,
94
+ mainColumnForExpandCollapseLabel
82
95
  } = props;
83
96
  const isFirstCell = cellIndex === 0;
84
97
  const indentLevel = isFirstCell ? depth : 0;
85
98
  let cellContent = cell.props.children || [];
99
+ const extendedLabel = this.getExtendedLabel(cellContent, cellIndex, mainColumnForExpandCollapseLabel);
86
100
  if (isFirstCell && hasChildren) {
87
101
  cellContent = [jsx(Chevron, {
88
102
  key: "chevron",
89
103
  expandLabel: props.expandLabel,
90
104
  collapseLabel: props.collapseLabel,
105
+ extendedLabel: extendedLabel,
91
106
  isExpanded: isExpanded,
92
107
  onExpandToggle: this.onExpandToggle,
93
- ariaControls: toItemId(props.itemId)
108
+ ariaControls: toItemId(props.itemId),
109
+ rowId: props.itemId
94
110
  })].concat(cellContent);
95
111
  }
96
112
  return /*#__PURE__*/React.cloneElement(cell, {
@@ -53,7 +53,8 @@ export default class TableTree extends Component {
53
53
  shouldExpandOnClick,
54
54
  headers,
55
55
  columns,
56
- columnWidths = []
56
+ columnWidths = [],
57
+ mainColumnForExpandCollapseLabel
57
58
  } = this.props;
58
59
  const heads = headers && /*#__PURE__*/React.createElement(Headers, null, headers.map((header, index) =>
59
60
  /*#__PURE__*/
@@ -72,18 +73,21 @@ export default class TableTree extends Component {
72
73
  children,
73
74
  hasChildren,
74
75
  content
75
- }) => /*#__PURE__*/React.createElement(Row, {
76
- itemId: id,
77
- items: children,
78
- hasChildren: hasChildren,
79
- shouldExpandOnClick: shouldExpandOnClick
80
- }, columns.map((CellContent, index) => /*#__PURE__*/React.createElement(Cell
81
- // eslint-disable-next-line react/no-array-index-key
82
- , {
83
- key: index,
84
- columnIndex: index,
85
- width: columnWidths[index]
86
- }, /*#__PURE__*/React.createElement(CellContent, content))))
76
+ }) => {
77
+ return /*#__PURE__*/React.createElement(Row, {
78
+ itemId: id,
79
+ items: children,
80
+ hasChildren: hasChildren,
81
+ shouldExpandOnClick: shouldExpandOnClick,
82
+ mainColumnForExpandCollapseLabel: mainColumnForExpandCollapseLabel
83
+ }, columns.map((CellContent, index) => /*#__PURE__*/React.createElement(Cell
84
+ // eslint-disable-next-line react/no-array-index-key
85
+ , {
86
+ key: index,
87
+ columnIndex: index,
88
+ width: columnWidths[index]
89
+ }, /*#__PURE__*/React.createElement(CellContent, content))));
90
+ }
87
91
  });
88
92
  }
89
93
  return /*#__PURE__*/React.createElement("div", {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/table-tree",
3
- "version": "9.4.1",
3
+ "version": "9.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -39,20 +39,25 @@ var Chevron = /*#__PURE__*/function (_Component) {
39
39
  isExpanded = _this$props.isExpanded,
40
40
  ariaControls = _this$props.ariaControls,
41
41
  collapseLabel = _this$props.collapseLabel,
42
- expandLabel = _this$props.expandLabel;
42
+ expandLabel = _this$props.expandLabel,
43
+ rowId = _this$props.rowId,
44
+ extendedLabel = _this$props.extendedLabel;
43
45
  var iconProps = {
44
46
  size: 'medium',
45
47
  primaryColor: iconColor
46
48
  };
49
+ var getLabel = function getLabel(defaultLabel) {
50
+ return extendedLabel ? "".concat(defaultLabel, " ").concat(extendedLabel, " row") : "".concat(defaultLabel, " row ").concat(rowId);
51
+ };
47
52
  return /*#__PURE__*/React.createElement(ChevronContainer, null, /*#__PURE__*/React.createElement(Button, {
48
53
  spacing: "none",
49
54
  appearance: "subtle",
50
55
  "aria-controls": ariaControls,
51
56
  onClick: this.handleClick
52
57
  }, /*#__PURE__*/React.createElement(ChevronIconContainer, null, isExpanded ? /*#__PURE__*/React.createElement(ChevronDownIcon, _extends({
53
- label: collapseLabel
58
+ label: getLabel(collapseLabel)
54
59
  }, iconProps)) : /*#__PURE__*/React.createElement(ChevronRightIcon, _extends({
55
- label: expandLabel
60
+ label: getLabel(expandLabel)
56
61
  }, iconProps)))));
57
62
  }
58
63
  }]);
@@ -20,7 +20,7 @@ var treeRowClickableStyles = css({
20
20
  cursor: 'pointer'
21
21
  });
22
22
  var packageName = "@atlaskit/table-tree";
23
- var packageVersion = "9.4.1";
23
+ var packageVersion = "9.5.0";
24
24
  var Row = /*#__PURE__*/function (_Component) {
25
25
  _inherits(Row, _Component);
26
26
  var _super = _createSuper(Row);
@@ -56,6 +56,18 @@ var Row = /*#__PURE__*/function (_Component) {
56
56
  _this.onExpandStateChange(!_this.state.isExpanded);
57
57
  }
58
58
  });
59
+ _defineProperty(_assertThisInitialized(_this), "getExtendedLabel", function (cellContent, cellIndex, mainColumnForExpandCollapseLabel) {
60
+ /**
61
+ * First condition - when we pass data via `items` property in `<TableTree />`
62
+ * Second condition - when we pass data via `<Rows />` as children in `<TableTree />`.
63
+ */
64
+ if (cellContent.hasOwnProperty('props')) {
65
+ return cellContent === null || cellContent === void 0 ? void 0 : cellContent.props[mainColumnForExpandCollapseLabel === null || mainColumnForExpandCollapseLabel === void 0 ? void 0 : mainColumnForExpandCollapseLabel.toLowerCase()];
66
+ } else if (cellIndex === mainColumnForExpandCollapseLabel) {
67
+ return cellContent;
68
+ }
69
+ return undefined;
70
+ });
59
71
  return _this;
60
72
  }
61
73
  _createClass(Row, [{
@@ -94,18 +106,22 @@ var Row = /*#__PURE__*/function (_Component) {
94
106
  var props = this.props;
95
107
  var isExpanded = this.isExpanded();
96
108
  var hasChildren = props.hasChildren,
97
- depth = props.depth;
109
+ depth = props.depth,
110
+ mainColumnForExpandCollapseLabel = props.mainColumnForExpandCollapseLabel;
98
111
  var isFirstCell = cellIndex === 0;
99
112
  var indentLevel = isFirstCell ? depth : 0;
100
113
  var cellContent = cell.props.children || [];
114
+ var extendedLabel = this.getExtendedLabel(cellContent, cellIndex, mainColumnForExpandCollapseLabel);
101
115
  if (isFirstCell && hasChildren) {
102
116
  cellContent = [jsx(Chevron, {
103
117
  key: "chevron",
104
118
  expandLabel: props.expandLabel,
105
119
  collapseLabel: props.collapseLabel,
120
+ extendedLabel: extendedLabel,
106
121
  isExpanded: isExpanded,
107
122
  onExpandToggle: this.onExpandToggle,
108
- ariaControls: toItemId(props.itemId)
123
+ ariaControls: toItemId(props.itemId),
124
+ rowId: props.itemId
109
125
  })].concat(cellContent);
110
126
  }
111
127
  return /*#__PURE__*/React.cloneElement(cell, {
@@ -73,7 +73,8 @@ var TableTree = /*#__PURE__*/function (_Component) {
73
73
  headers = _this$props.headers,
74
74
  columns = _this$props.columns,
75
75
  _this$props$columnWid = _this$props.columnWidths,
76
- columnWidths = _this$props$columnWid === void 0 ? [] : _this$props$columnWid;
76
+ columnWidths = _this$props$columnWid === void 0 ? [] : _this$props$columnWid,
77
+ mainColumnForExpandCollapseLabel = _this$props.mainColumnForExpandCollapseLabel;
77
78
  var heads = headers && /*#__PURE__*/React.createElement(Headers, null, headers.map(function (header, index) {
78
79
  return (
79
80
  /*#__PURE__*/
@@ -98,7 +99,8 @@ var TableTree = /*#__PURE__*/function (_Component) {
98
99
  itemId: id,
99
100
  items: children,
100
101
  hasChildren: hasChildren,
101
- shouldExpandOnClick: shouldExpandOnClick
102
+ shouldExpandOnClick: shouldExpandOnClick,
103
+ mainColumnForExpandCollapseLabel: mainColumnForExpandCollapseLabel
102
104
  }, columns.map(function (CellContent, index) {
103
105
  return /*#__PURE__*/React.createElement(Cell
104
106
  // eslint-disable-next-line react/no-array-index-key
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/table-tree",
3
- "version": "9.4.1",
3
+ "version": "9.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -5,6 +5,8 @@ interface ChevronProps {
5
5
  isExpanded?: boolean;
6
6
  ariaControls?: string;
7
7
  onExpandToggle?: Function;
8
+ rowId: string;
9
+ extendedLabel?: string;
8
10
  }
9
11
  export default class Chevron extends Component<ChevronProps> {
10
12
  static defaultProps: {
@@ -14,6 +14,7 @@ declare class Row extends Component<any, any> {
14
14
  onClickHandler: (e: React.MouseEvent) => void;
15
15
  onExpandToggle: () => void;
16
16
  isExpanded(): any;
17
+ getExtendedLabel: (cellContent: any, cellIndex: number, mainColumnForExpandCollapseLabel: string | number) => any;
17
18
  renderCell(cell: any, cellIndex: number): React.FunctionComponentElement<{
18
19
  key: number;
19
20
  columnIndex: number;
@@ -0,0 +1,78 @@
1
+ import React from 'react';
2
+ export interface CellProps {
3
+ /**
4
+ * Whether the cell contents should wrap or display on a single line and be concatenated.
5
+ */
6
+ singleLine?: boolean;
7
+ /**
8
+ * Indent level for the cell. Each indent level adds 25px to the left padding.
9
+ */
10
+ indentLevel?: number;
11
+ /**
12
+ * Width of the header item. Takes a string or a number representing the width in pixels.
13
+ */
14
+ width?: number | string;
15
+ /**
16
+ * Class name to apply to cell.
17
+ */
18
+ className?: string;
19
+ }
20
+ declare const _default: {
21
+ new (props: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>): {
22
+ UNSAFE_componentWillMount(): void;
23
+ setColumnWidth(width?: string | number | undefined): void;
24
+ UNSAFE_componentWillReceiveProps(nextProps: import("./internal/with-column-width").CellWithColumnWidthProps): void;
25
+ render(): JSX.Element;
26
+ context: any;
27
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
28
+ forceUpdate(callBack?: (() => void) | undefined): void;
29
+ readonly props: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps> & Readonly<{
30
+ children?: React.ReactNode;
31
+ }>;
32
+ state: Readonly<{}>;
33
+ refs: {
34
+ [key: string]: React.ReactInstance;
35
+ };
36
+ componentDidMount?(): void;
37
+ shouldComponentUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): boolean;
38
+ componentWillUnmount?(): void;
39
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
40
+ getSnapshotBeforeUpdate?(prevProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, prevState: Readonly<{}>): any;
41
+ componentDidUpdate?(prevProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, prevState: Readonly<{}>, snapshot?: any): void;
42
+ componentWillMount?(): void;
43
+ componentWillReceiveProps?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextContext: any): void;
44
+ componentWillUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
45
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
46
+ };
47
+ new (props: CellProps & import("./internal/with-column-width").CellWithColumnWidthProps, context?: any): {
48
+ UNSAFE_componentWillMount(): void;
49
+ setColumnWidth(width?: string | number | undefined): void;
50
+ UNSAFE_componentWillReceiveProps(nextProps: import("./internal/with-column-width").CellWithColumnWidthProps): void;
51
+ render(): JSX.Element;
52
+ context: any;
53
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
54
+ forceUpdate(callBack?: (() => void) | undefined): void;
55
+ readonly props: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps> & Readonly<{
56
+ children?: React.ReactNode;
57
+ }>;
58
+ state: Readonly<{}>;
59
+ refs: {
60
+ [key: string]: React.ReactInstance;
61
+ };
62
+ componentDidMount?(): void;
63
+ shouldComponentUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): boolean;
64
+ componentWillUnmount?(): void;
65
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
66
+ getSnapshotBeforeUpdate?(prevProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, prevState: Readonly<{}>): any;
67
+ componentDidUpdate?(prevProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, prevState: Readonly<{}>, snapshot?: any): void;
68
+ componentWillMount?(): void;
69
+ componentWillReceiveProps?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextContext: any): void;
70
+ componentWillUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
71
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<CellProps & import("./internal/with-column-width").CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
72
+ };
73
+ contextTypes: {
74
+ tableTree: import("prop-types").Validator<object>;
75
+ };
76
+ contextType?: React.Context<any> | undefined;
77
+ };
78
+ export default _default;
@@ -0,0 +1,60 @@
1
+ /// <reference types="react" />
2
+ declare const _default: {
3
+ new (props: Readonly<any>): {
4
+ UNSAFE_componentWillMount(): void;
5
+ setColumnWidth(width?: string | number | undefined): void;
6
+ UNSAFE_componentWillReceiveProps(nextProps: import("./internal/with-column-width").CellWithColumnWidthProps): void;
7
+ render(): JSX.Element;
8
+ context: any;
9
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<any>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
10
+ forceUpdate(callBack?: (() => void) | undefined): void;
11
+ readonly props: Readonly<any> & Readonly<{
12
+ children?: import("react").ReactNode;
13
+ }>;
14
+ state: Readonly<{}>;
15
+ refs: {
16
+ [key: string]: import("react").ReactInstance;
17
+ };
18
+ componentDidMount?(): void;
19
+ shouldComponentUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): boolean;
20
+ componentWillUnmount?(): void;
21
+ componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
22
+ getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<{}>): any;
23
+ componentDidUpdate?(prevProps: Readonly<any>, prevState: Readonly<{}>, snapshot?: any): void;
24
+ componentWillMount?(): void;
25
+ componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
26
+ componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): void;
27
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): void;
28
+ };
29
+ new (props: any, context?: any): {
30
+ UNSAFE_componentWillMount(): void;
31
+ setColumnWidth(width?: string | number | undefined): void;
32
+ UNSAFE_componentWillReceiveProps(nextProps: import("./internal/with-column-width").CellWithColumnWidthProps): void;
33
+ render(): JSX.Element;
34
+ context: any;
35
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<any>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
36
+ forceUpdate(callBack?: (() => void) | undefined): void;
37
+ readonly props: Readonly<any> & Readonly<{
38
+ children?: import("react").ReactNode;
39
+ }>;
40
+ state: Readonly<{}>;
41
+ refs: {
42
+ [key: string]: import("react").ReactInstance;
43
+ };
44
+ componentDidMount?(): void;
45
+ shouldComponentUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): boolean;
46
+ componentWillUnmount?(): void;
47
+ componentDidCatch?(error: Error, errorInfo: import("react").ErrorInfo): void;
48
+ getSnapshotBeforeUpdate?(prevProps: Readonly<any>, prevState: Readonly<{}>): any;
49
+ componentDidUpdate?(prevProps: Readonly<any>, prevState: Readonly<{}>, snapshot?: any): void;
50
+ componentWillMount?(): void;
51
+ componentWillReceiveProps?(nextProps: Readonly<any>, nextContext: any): void;
52
+ componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): void;
53
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<any>, nextState: Readonly<{}>, nextContext: any): void;
54
+ };
55
+ contextTypes: {
56
+ tableTree: import("prop-types").Validator<object>;
57
+ };
58
+ contextType?: import("react").Context<any> | undefined;
59
+ };
60
+ export default _default;
@@ -0,0 +1,6 @@
1
+ /** @jsx jsx */
2
+ import { Component } from 'react';
3
+ import { jsx } from '@emotion/react';
4
+ export default class Headers extends Component<any> {
5
+ render(): jsx.JSX.Element;
6
+ }
@@ -0,0 +1,19 @@
1
+ import { Component } from 'react';
2
+ interface ChevronProps {
3
+ expandLabel: string;
4
+ collapseLabel: string;
5
+ isExpanded?: boolean;
6
+ ariaControls?: string;
7
+ onExpandToggle?: Function;
8
+ rowId: string;
9
+ extendedLabel?: string;
10
+ }
11
+ export default class Chevron extends Component<ChevronProps> {
12
+ static defaultProps: {
13
+ expandLabel: string;
14
+ collapseLabel: string;
15
+ };
16
+ handleClick: () => void;
17
+ render(): JSX.Element;
18
+ }
19
+ export {};
@@ -0,0 +1,12 @@
1
+ /** @jsx jsx */
2
+ import { FC, HTMLAttributes, ReactNode } from 'react';
3
+ interface CommonCellProps {
4
+ indent?: string;
5
+ width?: string | number;
6
+ children?: ReactNode;
7
+ }
8
+ /**
9
+ * __Common cell__
10
+ */
11
+ declare const CommonCell: FC<HTMLAttributes<HTMLDivElement> & CommonCellProps>;
12
+ export default CommonCell;
@@ -0,0 +1,13 @@
1
+ /** @jsx jsx */
2
+ import { Component } from 'react';
3
+ import { jsx } from '@emotion/react';
4
+ export default class Item extends Component<any> {
5
+ static defaultProps: {
6
+ depth: number;
7
+ };
8
+ render(): import("react").FunctionComponentElement<{
9
+ depth: any;
10
+ data: any;
11
+ renderChildren: () => jsx.JSX.Element;
12
+ }> | null;
13
+ }
@@ -0,0 +1,24 @@
1
+ import React, { Component } from 'react';
2
+ interface ItemsProps<Item = any> {
3
+ parentData?: any;
4
+ depth: number;
5
+ items?: Item[];
6
+ render: (arg: Item) => React.ReactNode;
7
+ }
8
+ interface State {
9
+ isLoaderShown: boolean;
10
+ }
11
+ export default class Items<Item> extends Component<ItemsProps<Item>, State> {
12
+ static defaultProps: {
13
+ depth: number;
14
+ };
15
+ state: State;
16
+ static getDerivedStateFromProps(nextProps: any, prevState: any): {
17
+ isLoaderShown: boolean;
18
+ } | null;
19
+ handleLoaderComplete: () => void;
20
+ renderLoader(): JSX.Element;
21
+ renderItems(): JSX.Element[] | undefined;
22
+ render(): JSX.Element;
23
+ }
24
+ export {};
@@ -0,0 +1,20 @@
1
+ import { Component } from 'react';
2
+ interface LoaderItemProps {
3
+ depth: number;
4
+ onComplete: (...args: any[]) => void;
5
+ isCompleting?: boolean;
6
+ }
7
+ export default class LoaderItem extends Component<LoaderItemProps, any> {
8
+ static defaultProps: {
9
+ depth: number;
10
+ };
11
+ state: {
12
+ phase: string;
13
+ };
14
+ static getDerivedStateFromProps(nextProps: any, prevState: any): {
15
+ phase: string;
16
+ } | null;
17
+ componentDidUpdate(prevProps: any, prevState: any): void;
18
+ render(): JSX.Element | null;
19
+ }
20
+ export {};
@@ -0,0 +1,11 @@
1
+ /** @jsx jsx */
2
+ import { FC, HTMLAttributes, ReactNode } from 'react';
3
+ interface OverflowContainerProps {
4
+ isSingleLine?: boolean;
5
+ chilren?: ReactNode;
6
+ }
7
+ /**
8
+ * __Overflow container__
9
+ */
10
+ declare const OverflowContainer: FC<OverflowContainerProps & HTMLAttributes<HTMLSpanElement>>;
11
+ export default OverflowContainer;
@@ -0,0 +1,36 @@
1
+ /** @jsx jsx */
2
+ import { FC, HTMLAttributes, ReactNode } from 'react';
3
+ export declare const iconColor: "var(--ds-text)";
4
+ export declare const indentBase: "var(--ds-space-300)";
5
+ /**
6
+ * __Tree row container__
7
+ */
8
+ export declare const TreeRowContainer: FC<HTMLAttributes<HTMLDivElement> & {
9
+ children: ReactNode;
10
+ }>;
11
+ type ChevronContainerProps = HTMLAttributes<HTMLSpanElement> & {
12
+ children: ReactNode;
13
+ };
14
+ /**
15
+ * __Chevron container__
16
+ *
17
+ * A wrapper container around the expand table tree button.
18
+ */
19
+ export declare const ChevronContainer: FC<ChevronContainerProps>;
20
+ /**
21
+ * __Chevron icon container__
22
+ *
23
+ * A chevron icon container.
24
+ */
25
+ export declare const ChevronIconContainer: FC<ChevronContainerProps>;
26
+ type LoaderItemContainerProps = {
27
+ isRoot?: boolean;
28
+ children: ReactNode;
29
+ };
30
+ /**
31
+ * __Loader item container__
32
+ *
33
+ * A loader item container.
34
+ */
35
+ export declare const LoaderItemContainer: FC<LoaderItemContainerProps>;
36
+ export {};
@@ -0,0 +1,64 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ export interface CellWithColumnWidthProps {
4
+ width?: number | string;
5
+ columnIndex?: number;
6
+ }
7
+ export default function withColumnWidth<T extends object>(Cell: React.ComponentType<T>): {
8
+ new (props: Readonly<T & CellWithColumnWidthProps>): {
9
+ UNSAFE_componentWillMount(): void;
10
+ setColumnWidth(width?: number | string): void;
11
+ UNSAFE_componentWillReceiveProps(nextProps: CellWithColumnWidthProps): void;
12
+ render(): JSX.Element;
13
+ context: any;
14
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<T & CellWithColumnWidthProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
15
+ forceUpdate(callBack?: (() => void) | undefined): void;
16
+ readonly props: Readonly<T & CellWithColumnWidthProps> & Readonly<{
17
+ children?: React.ReactNode;
18
+ }>;
19
+ state: Readonly<{}>;
20
+ refs: {
21
+ [key: string]: React.ReactInstance;
22
+ };
23
+ componentDidMount?(): void;
24
+ shouldComponentUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): boolean;
25
+ componentWillUnmount?(): void;
26
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
27
+ getSnapshotBeforeUpdate?(prevProps: Readonly<T & CellWithColumnWidthProps>, prevState: Readonly<{}>): any;
28
+ componentDidUpdate?(prevProps: Readonly<T & CellWithColumnWidthProps>, prevState: Readonly<{}>, snapshot?: any): void;
29
+ componentWillMount?(): void;
30
+ componentWillReceiveProps?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextContext: any): void;
31
+ componentWillUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
32
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
33
+ };
34
+ new (props: T & CellWithColumnWidthProps, context?: any): {
35
+ UNSAFE_componentWillMount(): void;
36
+ setColumnWidth(width?: number | string): void;
37
+ UNSAFE_componentWillReceiveProps(nextProps: CellWithColumnWidthProps): void;
38
+ render(): JSX.Element;
39
+ context: any;
40
+ setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<T & CellWithColumnWidthProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
41
+ forceUpdate(callBack?: (() => void) | undefined): void;
42
+ readonly props: Readonly<T & CellWithColumnWidthProps> & Readonly<{
43
+ children?: React.ReactNode;
44
+ }>;
45
+ state: Readonly<{}>;
46
+ refs: {
47
+ [key: string]: React.ReactInstance;
48
+ };
49
+ componentDidMount?(): void;
50
+ shouldComponentUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): boolean;
51
+ componentWillUnmount?(): void;
52
+ componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
53
+ getSnapshotBeforeUpdate?(prevProps: Readonly<T & CellWithColumnWidthProps>, prevState: Readonly<{}>): any;
54
+ componentDidUpdate?(prevProps: Readonly<T & CellWithColumnWidthProps>, prevState: Readonly<{}>, snapshot?: any): void;
55
+ componentWillMount?(): void;
56
+ componentWillReceiveProps?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextContext: any): void;
57
+ componentWillUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
58
+ UNSAFE_componentWillUpdate?(nextProps: Readonly<T & CellWithColumnWidthProps>, nextState: Readonly<{}>, nextContext: any): void;
59
+ };
60
+ contextTypes: {
61
+ tableTree: PropTypes.Validator<object>;
62
+ };
63
+ contextType?: React.Context<any> | undefined;
64
+ };
@@ -0,0 +1,27 @@
1
+ /** @jsx jsx */
2
+ import React, { Component } from 'react';
3
+ import { jsx } from '@emotion/react';
4
+ declare class Row extends Component<any, any> {
5
+ state: {
6
+ isExpanded: any;
7
+ };
8
+ componentDidUpdate(prevProps: any): void;
9
+ onExpandStateChange(isExpanded: boolean): void;
10
+ /**
11
+ * This ensures a user won't trigger a click event and expand the accordion
12
+ * when making a text selection.
13
+ */
14
+ onClickHandler: (e: React.MouseEvent) => void;
15
+ onExpandToggle: () => void;
16
+ isExpanded(): any;
17
+ getExtendedLabel: (cellContent: any, cellIndex: number, mainColumnForExpandCollapseLabel: string | number) => any;
18
+ renderCell(cell: any, cellIndex: number): React.FunctionComponentElement<{
19
+ key: number;
20
+ columnIndex: number;
21
+ indentLevel: any;
22
+ }>;
23
+ render(): jsx.JSX.Element;
24
+ }
25
+ export { Row as RowWithoutAnalytics };
26
+ declare const _default: React.ForwardRefExoticComponent<Pick<Pick<Omit<any, keyof import("@atlaskit/analytics-next").WithAnalyticsEventsProps>, string | number | symbol> & React.RefAttributes<any> & import("@atlaskit/analytics-next").WithContextProps, string | number | symbol> & React.RefAttributes<any>>;
27
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import React, { Component } from 'react';
2
+ type WithChildren<T> = T & {
3
+ children?: T[] | null;
4
+ };
5
+ export interface RowsProps<T> {
6
+ items?: WithChildren<T>[];
7
+ render: (args: WithChildren<T>) => React.ReactNode;
8
+ }
9
+ export default class Rows<T> extends Component<RowsProps<T>> {
10
+ render(): JSX.Element;
11
+ }
12
+ export {};
@@ -0,0 +1,23 @@
1
+ import { Component } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ interface State {
4
+ columnWidths: number[];
5
+ }
6
+ export default class TableTree extends Component<any, State> {
7
+ static childContextTypes: {
8
+ tableTree: PropTypes.Validator<object>;
9
+ };
10
+ state: State;
11
+ componentDidMount(): void;
12
+ setColumnWidth: (columnIndex: number, width: number) => void;
13
+ getColumnWidth: (columnIndex: any) => number | null;
14
+ getChildContext(): {
15
+ tableTree: {
16
+ columnWidths: number[];
17
+ setColumnWidth: (columnIndex: number, width: number) => void;
18
+ getColumnWidth: (columnIndex: any) => number | null;
19
+ };
20
+ };
21
+ render(): JSX.Element;
22
+ }
23
+ export {};
@@ -0,0 +1,10 @@
1
+ export { default } from './components/table-tree';
2
+ export { default as Headers } from './components/headers';
3
+ export { default as Header } from './components/header';
4
+ export { default as Cell } from './components/cell';
5
+ export { default as Rows } from './components/rows';
6
+ export { default as Row } from './components/row';
7
+ export { default as TableTreeDataHelper } from './utils/table-tree-data-helper';
8
+ export type { CellWithColumnWidthProps } from './components/internal/with-column-width';
9
+ export type { CellProps } from './components/cell';
10
+ export type { RowsProps } from './components/rows';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This helper class will create a cache of all the id's in the items object and
3
+ * path to the object.
4
+ * Example:
5
+ * [{
6
+ * // item 1,
7
+ * id: 1,
8
+ * children:[{
9
+ * // item 1.1,
10
+ * id: '2'
11
+ * }]
12
+ * }]
13
+ *
14
+ * Cache will look something like:
15
+ * {1: 0, 2: '0.children[0]'}
16
+ */
17
+ export default class TableTreeDataHelper<T extends any = any> {
18
+ key: keyof T;
19
+ keysCache: any;
20
+ constructor({ key }?: {
21
+ key?: keyof T | undefined;
22
+ });
23
+ updateItems(items: T[], allItems?: T[], parentItem?: T | null): T[];
24
+ appendItems(items: T[], allItems?: T[], parentItem?: T | null): T[];
25
+ }
@@ -0,0 +1 @@
1
+ export default function toItemId(id: string): string;
@@ -79,6 +79,15 @@ type RowProps = {
79
79
  * Normally set by parent Item component and does not need to be configured.
80
80
  */
81
81
  depth?: number;
82
+ // eslint-disable-next-line jsdoc/require-asterisk-prefix, jsdoc/check-alignment
83
+ /**
84
+ Adds detail to the expand and collapse row button's aria label by appending the value from the given column. If you don't set this prop, the aria label will read out "Expand `itemId` row".
85
+
86
+ Should be a string when we pass data via `items` property in `<TableTree />`, value should be one of the property `columns` names in `<TableTree />`.
87
+
88
+ Should be a number when we pass data via `<Rows />` component as children in `<TableTree />`.
89
+ */
90
+ mainColumnForExpandCollapseLabel?: string | number;
82
91
  };
83
92
 
84
93
  const TableRow = function (props: RowProps) {
@@ -54,6 +54,13 @@ type TableTreeProps = {
54
54
  */
55
55
  // eslint-disable-next-line @repo/internal/react/consistent-props-definitions
56
56
  items?: Item[] | null;
57
+ /**
58
+ * The value used to extend the expand or collapse button label in cases where `Row` has child rows.
59
+ *
60
+ * Should be a string when we pass data via `items` property, value should be one of the `columns` names.
61
+ * Should be a number when we pass data via `<Rows />` component as children in `<TableTree />`.
62
+ */
63
+ mainColumnForExpandCollapseLabel?: string | number;
57
64
  };
58
65
 
59
66
  export default function (props: TableTreeProps) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/table-tree",
3
- "version": "9.4.1",
3
+ "version": "9.5.0",
4
4
  "description": "A table tree is an expandable table for showing nested hierarchies of information.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -40,7 +40,7 @@
40
40
  "@atlaskit/icon": "^21.12.0",
41
41
  "@atlaskit/spinner": "^15.5.0",
42
42
  "@atlaskit/theme": "^12.5.0",
43
- "@atlaskit/tokens": "^1.4.0",
43
+ "@atlaskit/tokens": "^1.5.0",
44
44
  "@babel/runtime": "^7.0.0",
45
45
  "@emotion/react": "^11.7.1",
46
46
  "lodash": "^4.17.21",
@@ -54,7 +54,7 @@
54
54
  "@atlaskit/ds-lib": "^2.2.0",
55
55
  "@atlaskit/empty-state": "^7.5.0",
56
56
  "@atlaskit/section-message": "^6.4.0",
57
- "@atlaskit/select": "^16.2.0",
57
+ "@atlaskit/select": "^16.5.0",
58
58
  "@atlaskit/ssr": "*",
59
59
  "@atlaskit/visual-regression": "*",
60
60
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",