@atlaskit/page-header 10.4.4 → 10.4.5

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 CHANGED
@@ -1,34 +1,40 @@
1
1
  # @atlaskit/page-header
2
2
 
3
+ ## 10.4.5
4
+
5
+ ### Patch Changes
6
+
7
+ - [#70460](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/70460) [`2f37600156ae`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2f37600156ae) - The internal composition of a component in this package has changed. There is no expected change in behaviour.
8
+
3
9
  ## 10.4.4
4
10
 
5
11
  ### Patch Changes
6
12
 
7
- - [`e7ea6832ad2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e7ea6832ad2) - Bans the use of React.FC/React.FunctionComponent type in ADS components as part of the React 18 migration work. The change is internal only and should not introduce any changes for the component consumers.
13
+ - [#33652](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33652) [`e7ea6832ad2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e7ea6832ad2) - Bans the use of React.FC/React.FunctionComponent type in ADS components as part of the React 18 migration work. The change is internal only and should not introduce any changes for the component consumers.
8
14
 
9
15
  ## 10.4.3
10
16
 
11
17
  ### Patch Changes
12
18
 
13
- - [`b1bdec7cce2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b1bdec7cce2) - Internal change to enforce token usage for spacing properties. There is no expected visual or behaviour change.
19
+ - [#32935](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32935) [`b1bdec7cce2`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b1bdec7cce2) - Internal change to enforce token usage for spacing properties. There is no expected visual or behaviour change.
14
20
 
15
21
  ## 10.4.2
16
22
 
17
23
  ### Patch Changes
18
24
 
19
- - [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
25
+ - [#33793](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33793) [`9d00501a414`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9d00501a414) - Ensure legacy types are published for TS 4.5-4.8
20
26
 
21
27
  ## 10.4.1
22
28
 
23
29
  ### Patch Changes
24
30
 
25
- - [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
31
+ - [#33649](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33649) [`41fae2c6f68`](https://bitbucket.org/atlassian/atlassian-frontend/commits/41fae2c6f68) - Upgrade Typescript from `4.5.5` to `4.9.5`
26
32
 
27
33
  ## 10.4.0
28
34
 
29
35
  ### Minor Changes
30
36
 
31
- - [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
37
+ - [#33258](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/33258) [`56507598609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/56507598609) - Skip minor dependency bump
32
38
 
33
39
  ### Patch Changes
34
40
 
@@ -38,44 +44,44 @@
38
44
 
39
45
  ### Patch Changes
40
46
 
41
- - [`f8a61ff6218`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f8a61ff6218) - Enrol @atlaskit/page-header on push model consumption in Jira
47
+ - [#32724](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/32724) [`f8a61ff6218`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f8a61ff6218) - Enrol @atlaskit/page-header on push model consumption in Jira
42
48
 
43
49
  ## 10.3.5
44
50
 
45
51
  ### Patch Changes
46
52
 
47
- - [`e517bb1ead3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e517bb1ead3) - Migrates unit tests from enzyme to RTL.
53
+ - [#31379](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31379) [`e517bb1ead3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/e517bb1ead3) - Migrates unit tests from enzyme to RTL.
48
54
 
49
55
  ## 10.3.4
50
56
 
51
57
  ### Patch Changes
52
58
 
53
- - [`261420360ec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/261420360ec) - Upgrades component types to support React 18.
59
+ - [#31206](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31206) [`261420360ec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/261420360ec) - Upgrades component types to support React 18.
54
60
  - Updated dependencies
55
61
 
56
62
  ## 10.3.3
57
63
 
58
64
  ### Patch Changes
59
65
 
60
- - [`74c1b81a476`](https://bitbucket.org/atlassian/atlassian-frontend/commits/74c1b81a476) - Replaces use of `gridSize` with space tokens. There is no expected visual change.
66
+ - [#31338](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/31338) [`74c1b81a476`](https://bitbucket.org/atlassian/atlassian-frontend/commits/74c1b81a476) - Replaces use of `gridSize` with space tokens. There is no expected visual change.
61
67
 
62
68
  ## 10.3.2
63
69
 
64
70
  ### Patch Changes
65
71
 
66
- - [`9827dcb82b8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9827dcb82b8) - No-op change to introduce spacing tokens to design system components.
72
+ - [#26303](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/26303) [`9827dcb82b8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9827dcb82b8) - No-op change to introduce spacing tokens to design system components.
67
73
 
68
74
  ## 10.3.1
69
75
 
70
76
  ### Patch Changes
71
77
 
72
- - [`8cc2f888c83`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8cc2f888c83) - Upgrade Typescript from `4.3.5` to `4.5.5`
78
+ - [#24874](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24874) [`8cc2f888c83`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8cc2f888c83) - Upgrade Typescript from `4.3.5` to `4.5.5`
73
79
 
74
80
  ## 10.3.0
75
81
 
76
82
  ### Minor Changes
77
83
 
78
- - [`ae50e8dea70`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ae50e8dea70) - Updates `@emotion/core` to `@emotion/react`; v10 to v11. There is no expected behavior change.
84
+ - [#24004](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24004) [`ae50e8dea70`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ae50e8dea70) - Updates `@emotion/core` to `@emotion/react`; v10 to v11. There is no expected behavior change.
79
85
 
80
86
  ### Patch Changes
81
87
 
@@ -85,13 +91,13 @@
85
91
 
86
92
  ### Patch Changes
87
93
 
88
- - [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) - Upgrade Typescript from `4.2.4` to `4.3.5`.
94
+ - [#24492](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/24492) [`8d4228767b0`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8d4228767b0) - Upgrade Typescript from `4.2.4` to `4.3.5`.
89
95
 
90
96
  ## 10.2.3
91
97
 
92
98
  ### Patch Changes
93
99
 
94
- - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
100
+ - [#20650](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/20650) [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
95
101
 
96
102
  ## 10.2.2
97
103
 
@@ -103,13 +109,13 @@
103
109
 
104
110
  ### Patch Changes
105
111
 
106
- - [`b3893a2357b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b3893a2357b) - Fixes a styling issue that arose in v10.2.0 relating to the lineHeight of the page header's title.
112
+ - [#14420](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/14420) [`b3893a2357b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/b3893a2357b) - Fixes a styling issue that arose in v10.2.0 relating to the lineHeight of the page header's title.
107
113
 
108
114
  ## 10.2.0
109
115
 
110
116
  ### Minor Changes
111
117
 
112
- - [`6b76b1ceab3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6b76b1ceab3) - This change removes the dependency `styled components`. It has been refactored to use `@emotion/core` instead. Some examples have also been updated. There should be no UI or UX change.
118
+ - [#13302](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/13302) [`6b76b1ceab3`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6b76b1ceab3) - This change removes the dependency `styled components`. It has been refactored to use `@emotion/core` instead. Some examples have also been updated. There should be no UI or UX change.
113
119
 
114
120
  ### Patch Changes
115
121
 
@@ -119,68 +125,68 @@
119
125
 
120
126
  ### Patch Changes
121
127
 
122
- - [`c5785203506`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c5785203506) - Updated homepage in package.json
128
+ - [#13728](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/13728) [`c5785203506`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c5785203506) - Updated homepage in package.json
123
129
 
124
130
  ## 10.1.2
125
131
 
126
132
  ### Patch Changes
127
133
 
128
- - [`ec0abf56583`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ec0abf56583) - Fixes internal test snapshots.
134
+ - [#12837](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/12837) [`ec0abf56583`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ec0abf56583) - Fixes internal test snapshots.
129
135
  - Updated dependencies
130
136
 
131
137
  ## 10.1.1
132
138
 
133
139
  ### Patch Changes
134
140
 
135
- - [`378d1cef00f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/378d1cef00f) - Bump `@atlaskit/theme` to version `^11.3.0`.
141
+ - [#12880](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/12880) [`378d1cef00f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/378d1cef00f) - Bump `@atlaskit/theme` to version `^11.3.0`.
136
142
 
137
143
  ## 10.1.0
138
144
 
139
145
  ### Minor Changes
140
146
 
141
- - [`169a082e5b4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/169a082e5b4) - Added id prop to the `PageHeader` component. Now header text can be used as label of other component via aria-labelledby attribute
147
+ - [#12328](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/12328) [`169a082e5b4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/169a082e5b4) - Added id prop to the `PageHeader` component. Now header text can be used as label of other component via aria-labelledby attribute
142
148
 
143
149
  ## 10.0.11
144
150
 
145
151
  ### Patch Changes
146
152
 
147
- - [`44e6c77d533`](https://bitbucket.org/atlassian/atlassian-frontend/commits/44e6c77d533) - Renames exports in page header examples to be more descriptive. For example, Example is renamed to PageHeaderDefaultExample.
153
+ - [#11910](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/11910) [`44e6c77d533`](https://bitbucket.org/atlassian/atlassian-frontend/commits/44e6c77d533) - Renames exports in page header examples to be more descriptive. For example, Example is renamed to PageHeaderDefaultExample.
148
154
 
149
155
  ## 10.0.10
150
156
 
151
157
  ### Patch Changes
152
158
 
153
- - [`ac373538cdd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ac373538cdd) - Page header migrated from atlaskit to atlassian.design. Documentation and examples added along with updated snapshot test.
159
+ - [#11488](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/11488) [`ac373538cdd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/ac373538cdd) - Page header migrated from atlaskit to atlassian.design. Documentation and examples added along with updated snapshot test.
154
160
 
155
161
  ## 10.0.9
156
162
 
157
163
  ### Patch Changes
158
164
 
159
- - [`8450e34990c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8450e34990c) - [ux] Conditionally render ActionsWrapper for PageHeader's actions when provided.
165
+ - [#9440](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/9440) [`8450e34990c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/8450e34990c) - [ux] Conditionally render ActionsWrapper for PageHeader's actions when provided.
160
166
 
161
167
  ## 10.0.8
162
168
 
163
169
  ### Patch Changes
164
170
 
165
- - [`79c23df6340`](https://bitbucket.org/atlassian/atlassian-frontend/commits/79c23df6340) - Use injected package name and version for analytics instead of version.json.
171
+ - [#8644](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/8644) [`79c23df6340`](https://bitbucket.org/atlassian/atlassian-frontend/commits/79c23df6340) - Use injected package name and version for analytics instead of version.json.
166
172
 
167
173
  ## 10.0.7
168
174
 
169
175
  ### Patch Changes
170
176
 
171
- - [`d3265f19be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d3265f19be) - Transpile packages using babel rather than tsc
177
+ - [#5857](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/5857) [`d3265f19be`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d3265f19be) - Transpile packages using babel rather than tsc
172
178
 
173
179
  ## 10.0.6
174
180
 
175
181
  ### Patch Changes
176
182
 
177
- - [`be0acecf54`](https://bitbucket.org/atlassian/atlassian-frontend/commits/be0acecf54) - [ux] page-header is a non interactive element and it was getting focus ring while clicking on it. Now focus ring has been removed to fix this issue.
183
+ - [#5516](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/5516) [`be0acecf54`](https://bitbucket.org/atlassian/atlassian-frontend/commits/be0acecf54) - [ux] page-header is a non interactive element and it was getting focus ring while clicking on it. Now focus ring has been removed to fix this issue.
178
184
 
179
185
  ## 10.0.5
180
186
 
181
187
  ### Patch Changes
182
188
 
183
- - [`5f58283e1f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5f58283e1f) - Export types using Typescript's new "export type" syntax to satisfy Typescript's --isolatedModules compiler option.
189
+ - [#5497](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/5497) [`5f58283e1f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5f58283e1f) - Export types using Typescript's new "export type" syntax to satisfy Typescript's --isolatedModules compiler option.
184
190
  This requires version 3.8 of Typescript, read more about how we handle Typescript versions here: https://atlaskit.atlassian.com/get-started
185
191
  Also add `typescript` to `devDependencies` to denote version that the package was built with.
186
192
 
@@ -194,7 +200,7 @@
194
200
 
195
201
  ### Patch Changes
196
202
 
197
- - [`6c525a8229`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6c525a8229) - Upgraded to TypeScript 3.9.6 and tslib to 2.0.0
203
+ - [#3885](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/3885) [`6c525a8229`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6c525a8229) - Upgraded to TypeScript 3.9.6 and tslib to 2.0.0
198
204
 
199
205
  Since tslib is a dependency for all our packages we recommend that products also follow this tslib upgrade
200
206
  to prevent duplicates of tslib being bundled.
@@ -203,19 +209,19 @@
203
209
 
204
210
  ### Patch Changes
205
211
 
206
- - [`f9fe8ed609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f9fe8ed609) - Added tabIndex and innerRef to underlying heading so it can be focused
212
+ - [#3823](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/3823) [`f9fe8ed609`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f9fe8ed609) - Added tabIndex and innerRef to underlying heading so it can be focused
207
213
 
208
214
  ## 10.0.1
209
215
 
210
216
  ### Patch Changes
211
217
 
212
- - [`db053b24d8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/db053b24d8) - Update all the theme imports to be tree-shakable
218
+ - [#3428](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/3428) [`db053b24d8`](https://bitbucket.org/atlassian/atlassian-frontend/commits/db053b24d8) - Update all the theme imports to be tree-shakable
213
219
 
214
220
  ## 10.0.0
215
221
 
216
222
  ### Major Changes
217
223
 
218
- - [`87f4720f27`](https://bitbucket.org/atlassian/atlassian-frontend/commits/87f4720f27) - Officially dropping IE11 support, from this version onwards there are no warranties of the package working in IE11.
224
+ - [#3335](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/3335) [`87f4720f27`](https://bitbucket.org/atlassian/atlassian-frontend/commits/87f4720f27) - Officially dropping IE11 support, from this version onwards there are no warranties of the package working in IE11.
219
225
  For more information see: https://community.developer.atlassian.com/t/atlaskit-to-drop-support-for-internet-explorer-11-from-1st-july-2020/39534
220
226
 
221
227
  ### Patch Changes
@@ -226,7 +232,7 @@
226
232
 
227
233
  ### Patch Changes
228
234
 
229
- - [`54a9514fcf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/54a9514fcf) - Build and supporting files will no longer be published to npm
235
+ - [#2866](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/2866) [`54a9514fcf`](https://bitbucket.org/atlassian/atlassian-frontend/commits/54a9514fcf) - Build and supporting files will no longer be published to npm
230
236
 
231
237
  ## 9.0.19
232
238
 
@@ -43,5 +43,4 @@ var PageHeader = function PageHeader(_ref) {
43
43
  id: id
44
44
  }, children)), actions && /*#__PURE__*/_react.default.createElement(_styled.ActionsWrapper, null, actions)), bottomBar && /*#__PURE__*/_react.default.createElement(_styled.BottomBarWrapper, null, " ", bottomBar, " "));
45
45
  };
46
- var _default = PageHeader;
47
- exports.default = _default;
46
+ var _default = exports.default = PageHeader;
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.TitleWrapper = exports.TitleContainer = exports.StyledTitleWrapper = exports.OuterWrapper = exports.BottomBarWrapper = exports.ActionsWrapper = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var _react2 = require("@emotion/react");
10
+ var _primitives = require("@atlaskit/primitives");
10
11
  var _typography = require("@atlaskit/theme/typography");
11
12
  // TODO: Remove this eslint-disable when prop names have been renamed.
12
13
  // This rule is here as prop name changes are a major as they are used
@@ -24,8 +25,8 @@ var outerStyles = (0, _react2.css)({
24
25
  margin: "var(--ds-space-300, 24px)".concat(" 0 ", "var(--ds-space-200, 16px)", " 0")
25
26
  });
26
27
  var styledTitleStyles = (0, _react2.css)({
27
- marginTop: 0,
28
28
  lineHeight: "var(--ds-font-lineHeight-500, 32px)",
29
+ marginBlockStart: 0,
29
30
  outline: 'none'
30
31
  });
31
32
  var titleWrapperStyles = (0, _react2.css)({
@@ -39,18 +40,18 @@ var titleWrapperTruncateStyles = (0, _react2.css)({
39
40
  var titleContainerStyles = (0, _react2.css)({
40
41
  minWidth: 0,
41
42
  maxWidth: '100%',
42
- marginBottom: "var(--ds-space-100, 8px)",
43
43
  flex: '1 0 auto',
44
- flexShrink: undefined
44
+ flexShrink: undefined,
45
+ marginBlockEnd: "var(--ds-space-100, 8px)"
45
46
  });
46
47
  var actionStyles = (0, _react2.css)({
47
48
  maxWidth: '100%',
48
- marginBottom: "var(--ds-space-100, 8px)",
49
- marginLeft: 'auto',
50
- paddingLeft: "var(--ds-space-400, 32px)",
51
49
  flex: '0 0 auto',
50
+ marginBlockEnd: "var(--ds-space-100, 8px)",
51
+ marginInlineStart: 'auto',
52
+ paddingInlineStart: "var(--ds-space-400, 32px)",
52
53
  whiteSpace: 'nowrap',
53
- // eslint-disable-next-line @repo/internal/styles/no-nested-styles
54
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
54
55
  '>': {
55
56
  textAlign: 'right'
56
57
  }
@@ -58,34 +59,33 @@ var actionStyles = (0, _react2.css)({
58
59
  var titleContainerTruncateStyles = (0, _react2.css)({
59
60
  flexShrink: 1
60
61
  });
61
- var bottomBarStyles = (0, _react2.css)({
62
- marginTop: "var(--ds-space-200, 16px)"
62
+ var bottomBarStyles = (0, _primitives.xcss)({
63
+ marginBlockStart: 'space.200'
63
64
  });
64
65
 
65
66
  /**
66
- * __Outer wrapper__
67
+ * __Outer wrapper__.
67
68
  *
68
69
  * An outer wrapper that is the outermost component of the PageHeader component. It wraps around the PageHeader, its Actions,
69
70
  * the BottomBar and its Breadcrumbs.
70
71
  *
71
72
  */
72
- var OuterWrapper = function OuterWrapper(_ref) {
73
+ var OuterWrapper = exports.OuterWrapper = function OuterWrapper(_ref) {
73
74
  var children = _ref.children;
74
75
  return (0, _react2.jsx)("div", {
75
76
  css: outerStyles
76
77
  }, children);
77
78
  };
78
79
 
79
- // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
80
- exports.OuterWrapper = OuterWrapper;
80
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
81
81
  var h700Styles = (0, _react2.css)((0, _typography.h700)());
82
82
  /**
83
- * __Styled title wrapper__
83
+ * __Styled title wrapper__.
84
84
  *
85
85
  * A styled title wrapper is a wrapper around the title that controls its the styles exclusively.
86
86
  *
87
87
  */
88
- var StyledTitleWrapper = /*#__PURE__*/_react.default.forwardRef(function (_ref2, ref) {
88
+ var StyledTitleWrapper = exports.StyledTitleWrapper = /*#__PURE__*/_react.default.forwardRef(function (_ref2, ref) {
89
89
  var children = _ref2.children,
90
90
  id = _ref2.id,
91
91
  truncateTitle = _ref2.truncateTitle;
@@ -96,14 +96,13 @@ var StyledTitleWrapper = /*#__PURE__*/_react.default.forwardRef(function (_ref2,
96
96
  id: id
97
97
  }, children);
98
98
  });
99
- exports.StyledTitleWrapper = StyledTitleWrapper;
100
99
  /**
101
- * __Title wrapper__
100
+ * __Title wrapper__.
102
101
  *
103
102
  * A title wrapper is a wrapper around the title and the actions.
104
103
  *
105
104
  */
106
- var TitleWrapper = function TitleWrapper(_ref3) {
105
+ var TitleWrapper = exports.TitleWrapper = function TitleWrapper(_ref3) {
107
106
  var children = _ref3.children,
108
107
  truncateTitle = _ref3.truncateTitle;
109
108
  return (0, _react2.jsx)("div", {
@@ -112,13 +111,12 @@ var TitleWrapper = function TitleWrapper(_ref3) {
112
111
  };
113
112
 
114
113
  /**
115
- * Title container
114
+ * Title container.
116
115
  *
117
116
  * A title container is a container that wraps around the title and its styles (if applied).
118
117
  *
119
118
  */
120
- exports.TitleWrapper = TitleWrapper;
121
- var TitleContainer = function TitleContainer(_ref4) {
119
+ var TitleContainer = exports.TitleContainer = function TitleContainer(_ref4) {
122
120
  var children = _ref4.children,
123
121
  truncateTitle = _ref4.truncateTitle;
124
122
  return (0, _react2.jsx)("div", {
@@ -127,13 +125,12 @@ var TitleContainer = function TitleContainer(_ref4) {
127
125
  };
128
126
 
129
127
  /**
130
- * __Actions wrapper__
128
+ * __Actions wrapper__.
131
129
  *
132
130
  * An actions wrapper is a wrapper for the actions, which appear on the top right of the PageHeader component.
133
131
  *
134
132
  */
135
- exports.TitleContainer = TitleContainer;
136
- var ActionsWrapper = function ActionsWrapper(_ref5) {
133
+ var ActionsWrapper = exports.ActionsWrapper = function ActionsWrapper(_ref5) {
137
134
  var children = _ref5.children;
138
135
  return (0, _react2.jsx)("div", {
139
136
  css: actionStyles
@@ -141,16 +138,14 @@ var ActionsWrapper = function ActionsWrapper(_ref5) {
141
138
  };
142
139
 
143
140
  /**
144
- * __Bottom bar wrapper__
141
+ * __Bottom bar wrapper__.
145
142
  *
146
143
  * A bottom bar wrapper is a wrapper for the bottom bar, which appears at the bottom of the PageHeader component.
147
144
  *
148
145
  */
149
- exports.ActionsWrapper = ActionsWrapper;
150
- var BottomBarWrapper = function BottomBarWrapper(_ref6) {
146
+ var BottomBarWrapper = exports.BottomBarWrapper = function BottomBarWrapper(_ref6) {
151
147
  var children = _ref6.children;
152
- return (0, _react2.jsx)("div", {
153
- css: bottomBarStyles
148
+ return (0, _react2.jsx)(_primitives.Box, {
149
+ xcss: bottomBarStyles
154
150
  }, children);
155
- };
156
- exports.BottomBarWrapper = BottomBarWrapper;
151
+ };
@@ -7,6 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import { css, jsx } from '@emotion/react';
10
+ import { Box, xcss } from '@atlaskit/primitives';
10
11
  import { h700 } from '@atlaskit/theme/typography';
11
12
  const truncateStyles = css({
12
13
  overflowX: 'hidden',
@@ -17,8 +18,8 @@ const outerStyles = css({
17
18
  margin: `${"var(--ds-space-300, 24px)"} 0 ${"var(--ds-space-200, 16px)"} 0`
18
19
  });
19
20
  const styledTitleStyles = css({
20
- marginTop: 0,
21
21
  lineHeight: "var(--ds-font-lineHeight-500, 32px)",
22
+ marginBlockStart: 0,
22
23
  outline: 'none'
23
24
  });
24
25
  const titleWrapperStyles = css({
@@ -32,18 +33,18 @@ const titleWrapperTruncateStyles = css({
32
33
  const titleContainerStyles = css({
33
34
  minWidth: 0,
34
35
  maxWidth: '100%',
35
- marginBottom: "var(--ds-space-100, 8px)",
36
36
  flex: '1 0 auto',
37
- flexShrink: undefined
37
+ flexShrink: undefined,
38
+ marginBlockEnd: "var(--ds-space-100, 8px)"
38
39
  });
39
40
  const actionStyles = css({
40
41
  maxWidth: '100%',
41
- marginBottom: "var(--ds-space-100, 8px)",
42
- marginLeft: 'auto',
43
- paddingLeft: "var(--ds-space-400, 32px)",
44
42
  flex: '0 0 auto',
43
+ marginBlockEnd: "var(--ds-space-100, 8px)",
44
+ marginInlineStart: 'auto',
45
+ paddingInlineStart: "var(--ds-space-400, 32px)",
45
46
  whiteSpace: 'nowrap',
46
- // eslint-disable-next-line @repo/internal/styles/no-nested-styles
47
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
47
48
  '>': {
48
49
  textAlign: 'right'
49
50
  }
@@ -51,12 +52,12 @@ const actionStyles = css({
51
52
  const titleContainerTruncateStyles = css({
52
53
  flexShrink: 1
53
54
  });
54
- const bottomBarStyles = css({
55
- marginTop: "var(--ds-space-200, 16px)"
55
+ const bottomBarStyles = xcss({
56
+ marginBlockStart: 'space.200'
56
57
  });
57
58
 
58
59
  /**
59
- * __Outer wrapper__
60
+ * __Outer wrapper__.
60
61
  *
61
62
  * An outer wrapper that is the outermost component of the PageHeader component. It wraps around the PageHeader, its Actions,
62
63
  * the BottomBar and its Breadcrumbs.
@@ -70,10 +71,10 @@ export const OuterWrapper = ({
70
71
  }, children);
71
72
  };
72
73
 
73
- // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
74
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
74
75
  const h700Styles = css(h700());
75
76
  /**
76
- * __Styled title wrapper__
77
+ * __Styled title wrapper__.
77
78
  *
78
79
  * A styled title wrapper is a wrapper around the title that controls its the styles exclusively.
79
80
  *
@@ -91,7 +92,7 @@ export const StyledTitleWrapper = /*#__PURE__*/React.forwardRef(({
91
92
  }, children);
92
93
  });
93
94
  /**
94
- * __Title wrapper__
95
+ * __Title wrapper__.
95
96
  *
96
97
  * A title wrapper is a wrapper around the title and the actions.
97
98
  *
@@ -106,7 +107,7 @@ export const TitleWrapper = ({
106
107
  };
107
108
 
108
109
  /**
109
- * Title container
110
+ * Title container.
110
111
  *
111
112
  * A title container is a container that wraps around the title and its styles (if applied).
112
113
  *
@@ -121,7 +122,7 @@ export const TitleContainer = ({
121
122
  };
122
123
 
123
124
  /**
124
- * __Actions wrapper__
125
+ * __Actions wrapper__.
125
126
  *
126
127
  * An actions wrapper is a wrapper for the actions, which appear on the top right of the PageHeader component.
127
128
  *
@@ -135,7 +136,7 @@ export const ActionsWrapper = ({
135
136
  };
136
137
 
137
138
  /**
138
- * __Bottom bar wrapper__
139
+ * __Bottom bar wrapper__.
139
140
  *
140
141
  * A bottom bar wrapper is a wrapper for the bottom bar, which appears at the bottom of the PageHeader component.
141
142
  *
@@ -143,7 +144,7 @@ export const ActionsWrapper = ({
143
144
  export const BottomBarWrapper = ({
144
145
  children
145
146
  }) => {
146
- return jsx("div", {
147
- css: bottomBarStyles
147
+ return jsx(Box, {
148
+ xcss: bottomBarStyles
148
149
  }, children);
149
150
  };
@@ -7,6 +7,7 @@
7
7
 
8
8
  import React from 'react';
9
9
  import { css, jsx } from '@emotion/react';
10
+ import { Box, xcss } from '@atlaskit/primitives';
10
11
  import { h700 } from '@atlaskit/theme/typography';
11
12
  var truncateStyles = css({
12
13
  overflowX: 'hidden',
@@ -17,8 +18,8 @@ var outerStyles = css({
17
18
  margin: "var(--ds-space-300, 24px)".concat(" 0 ", "var(--ds-space-200, 16px)", " 0")
18
19
  });
19
20
  var styledTitleStyles = css({
20
- marginTop: 0,
21
21
  lineHeight: "var(--ds-font-lineHeight-500, 32px)",
22
+ marginBlockStart: 0,
22
23
  outline: 'none'
23
24
  });
24
25
  var titleWrapperStyles = css({
@@ -32,18 +33,18 @@ var titleWrapperTruncateStyles = css({
32
33
  var titleContainerStyles = css({
33
34
  minWidth: 0,
34
35
  maxWidth: '100%',
35
- marginBottom: "var(--ds-space-100, 8px)",
36
36
  flex: '1 0 auto',
37
- flexShrink: undefined
37
+ flexShrink: undefined,
38
+ marginBlockEnd: "var(--ds-space-100, 8px)"
38
39
  });
39
40
  var actionStyles = css({
40
41
  maxWidth: '100%',
41
- marginBottom: "var(--ds-space-100, 8px)",
42
- marginLeft: 'auto',
43
- paddingLeft: "var(--ds-space-400, 32px)",
44
42
  flex: '0 0 auto',
43
+ marginBlockEnd: "var(--ds-space-100, 8px)",
44
+ marginInlineStart: 'auto',
45
+ paddingInlineStart: "var(--ds-space-400, 32px)",
45
46
  whiteSpace: 'nowrap',
46
- // eslint-disable-next-line @repo/internal/styles/no-nested-styles
47
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
47
48
  '>': {
48
49
  textAlign: 'right'
49
50
  }
@@ -51,12 +52,12 @@ var actionStyles = css({
51
52
  var titleContainerTruncateStyles = css({
52
53
  flexShrink: 1
53
54
  });
54
- var bottomBarStyles = css({
55
- marginTop: "var(--ds-space-200, 16px)"
55
+ var bottomBarStyles = xcss({
56
+ marginBlockStart: 'space.200'
56
57
  });
57
58
 
58
59
  /**
59
- * __Outer wrapper__
60
+ * __Outer wrapper__.
60
61
  *
61
62
  * An outer wrapper that is the outermost component of the PageHeader component. It wraps around the PageHeader, its Actions,
62
63
  * the BottomBar and its Breadcrumbs.
@@ -69,10 +70,10 @@ export var OuterWrapper = function OuterWrapper(_ref) {
69
70
  }, children);
70
71
  };
71
72
 
72
- // eslint-disable-next-line @repo/internal/react/consistent-css-prop-usage
73
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage
73
74
  var h700Styles = css(h700());
74
75
  /**
75
- * __Styled title wrapper__
76
+ * __Styled title wrapper__.
76
77
  *
77
78
  * A styled title wrapper is a wrapper around the title that controls its the styles exclusively.
78
79
  *
@@ -89,7 +90,7 @@ export var StyledTitleWrapper = /*#__PURE__*/React.forwardRef(function (_ref2, r
89
90
  }, children);
90
91
  });
91
92
  /**
92
- * __Title wrapper__
93
+ * __Title wrapper__.
93
94
  *
94
95
  * A title wrapper is a wrapper around the title and the actions.
95
96
  *
@@ -103,7 +104,7 @@ export var TitleWrapper = function TitleWrapper(_ref3) {
103
104
  };
104
105
 
105
106
  /**
106
- * Title container
107
+ * Title container.
107
108
  *
108
109
  * A title container is a container that wraps around the title and its styles (if applied).
109
110
  *
@@ -117,7 +118,7 @@ export var TitleContainer = function TitleContainer(_ref4) {
117
118
  };
118
119
 
119
120
  /**
120
- * __Actions wrapper__
121
+ * __Actions wrapper__.
121
122
  *
122
123
  * An actions wrapper is a wrapper for the actions, which appear on the top right of the PageHeader component.
123
124
  *
@@ -130,14 +131,14 @@ export var ActionsWrapper = function ActionsWrapper(_ref5) {
130
131
  };
131
132
 
132
133
  /**
133
- * __Bottom bar wrapper__
134
+ * __Bottom bar wrapper__.
134
135
  *
135
136
  * A bottom bar wrapper is a wrapper for the bottom bar, which appears at the bottom of the PageHeader component.
136
137
  *
137
138
  */
138
139
  export var BottomBarWrapper = function BottomBarWrapper(_ref6) {
139
140
  var children = _ref6.children;
140
- return jsx("div", {
141
- css: bottomBarStyles
141
+ return jsx(Box, {
142
+ xcss: bottomBarStyles
142
143
  }, children);
143
144
  };
@@ -25,11 +25,11 @@ export type PageHeaderProps = {
25
25
  */
26
26
  innerRef?: (element: HTMLElement) => void;
27
27
  /**
28
- * Prevent the title from wrapping across lines. This should be avoided.
28
+ * Prevent the title from wrapping across lines. Avoid using this wherever possible, as truncation can make page headings inaccessible.
29
29
  */
30
30
  truncateTitle?: boolean;
31
31
  /**
32
- * Used as id of inner h1 tag. This is exposed so the header text can be used as label of other element by aria-labeledby
32
+ * Used as the ID of the inner h1 tag. This is exposed so the header text can be used as label of other elements by aria-labelledby.
33
33
  */
34
34
  id?: string;
35
35
  };
@@ -2,7 +2,7 @@
2
2
  import React, { ReactNode } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  /**
5
- * __Outer wrapper__
5
+ * __Outer wrapper__.
6
6
  *
7
7
  * An outer wrapper that is the outermost component of the PageHeader component. It wraps around the PageHeader, its Actions,
8
8
  * the BottomBar and its Breadcrumbs.
@@ -17,7 +17,7 @@ interface StyledTitleWrapperProps {
17
17
  truncateTitle?: boolean;
18
18
  }
19
19
  /**
20
- * __Styled title wrapper__
20
+ * __Styled title wrapper__.
21
21
  *
22
22
  * A styled title wrapper is a wrapper around the title that controls its the styles exclusively.
23
23
  *
@@ -28,21 +28,21 @@ interface TitleProps {
28
28
  children?: ReactNode;
29
29
  }
30
30
  /**
31
- * __Title wrapper__
31
+ * __Title wrapper__.
32
32
  *
33
33
  * A title wrapper is a wrapper around the title and the actions.
34
34
  *
35
35
  */
36
36
  export declare const TitleWrapper: ({ children, truncateTitle }: TitleProps) => jsx.JSX.Element;
37
37
  /**
38
- * Title container
38
+ * Title container.
39
39
  *
40
40
  * A title container is a container that wraps around the title and its styles (if applied).
41
41
  *
42
42
  */
43
43
  export declare const TitleContainer: ({ children, truncateTitle }: TitleProps) => jsx.JSX.Element;
44
44
  /**
45
- * __Actions wrapper__
45
+ * __Actions wrapper__.
46
46
  *
47
47
  * An actions wrapper is a wrapper for the actions, which appear on the top right of the PageHeader component.
48
48
  *
@@ -51,7 +51,7 @@ export declare const ActionsWrapper: ({ children }: {
51
51
  children: ReactNode;
52
52
  }) => jsx.JSX.Element;
53
53
  /**
54
- * __Bottom bar wrapper__
54
+ * __Bottom bar wrapper__.
55
55
  *
56
56
  * A bottom bar wrapper is a wrapper for the bottom bar, which appears at the bottom of the PageHeader component.
57
57
  *
@@ -25,11 +25,11 @@ export type PageHeaderProps = {
25
25
  */
26
26
  innerRef?: (element: HTMLElement) => void;
27
27
  /**
28
- * Prevent the title from wrapping across lines. This should be avoided.
28
+ * Prevent the title from wrapping across lines. Avoid using this wherever possible, as truncation can make page headings inaccessible.
29
29
  */
30
30
  truncateTitle?: boolean;
31
31
  /**
32
- * Used as id of inner h1 tag. This is exposed so the header text can be used as label of other element by aria-labeledby
32
+ * Used as the ID of the inner h1 tag. This is exposed so the header text can be used as label of other elements by aria-labelledby.
33
33
  */
34
34
  id?: string;
35
35
  };
@@ -2,7 +2,7 @@
2
2
  import React, { ReactNode } from 'react';
3
3
  import { jsx } from '@emotion/react';
4
4
  /**
5
- * __Outer wrapper__
5
+ * __Outer wrapper__.
6
6
  *
7
7
  * An outer wrapper that is the outermost component of the PageHeader component. It wraps around the PageHeader, its Actions,
8
8
  * the BottomBar and its Breadcrumbs.
@@ -17,7 +17,7 @@ interface StyledTitleWrapperProps {
17
17
  truncateTitle?: boolean;
18
18
  }
19
19
  /**
20
- * __Styled title wrapper__
20
+ * __Styled title wrapper__.
21
21
  *
22
22
  * A styled title wrapper is a wrapper around the title that controls its the styles exclusively.
23
23
  *
@@ -28,21 +28,21 @@ interface TitleProps {
28
28
  children?: ReactNode;
29
29
  }
30
30
  /**
31
- * __Title wrapper__
31
+ * __Title wrapper__.
32
32
  *
33
33
  * A title wrapper is a wrapper around the title and the actions.
34
34
  *
35
35
  */
36
36
  export declare const TitleWrapper: ({ children, truncateTitle }: TitleProps) => jsx.JSX.Element;
37
37
  /**
38
- * Title container
38
+ * Title container.
39
39
  *
40
40
  * A title container is a container that wraps around the title and its styles (if applied).
41
41
  *
42
42
  */
43
43
  export declare const TitleContainer: ({ children, truncateTitle }: TitleProps) => jsx.JSX.Element;
44
44
  /**
45
- * __Actions wrapper__
45
+ * __Actions wrapper__.
46
46
  *
47
47
  * An actions wrapper is a wrapper for the actions, which appear on the top right of the PageHeader component.
48
48
  *
@@ -51,7 +51,7 @@ export declare const ActionsWrapper: ({ children }: {
51
51
  children: ReactNode;
52
52
  }) => jsx.JSX.Element;
53
53
  /**
54
- * __Bottom bar wrapper__
54
+ * __Bottom bar wrapper__.
55
55
  *
56
56
  * A bottom bar wrapper is a wrapper for the bottom bar, which appears at the bottom of the PageHeader component.
57
57
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/page-header",
3
- "version": "10.4.4",
3
+ "version": "10.4.5",
4
4
  "description": "A page header defines the top of a page. It contains a title and can be optionally combined with breadcrumbs buttons, search, and filters.",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -12,31 +12,23 @@
12
12
  "module": "dist/esm/index.js",
13
13
  "module:es2019": "dist/es2019/index.js",
14
14
  "types": "dist/types/index.d.ts",
15
- "typesVersions": {
16
- ">=4.5 <4.9": {
17
- "*": [
18
- "dist/types-ts4.5/*",
19
- "dist/types-ts4.5/index.d.ts"
20
- ]
21
- }
22
- },
23
15
  "sideEffects": false,
24
16
  "atlaskit:src": "src/index.tsx",
25
- "homepage": "https://atlassian.design/components/page-header",
26
17
  "atlassian": {
27
18
  "team": "Design System Team",
28
- "releaseModel": "continuous",
29
19
  "productPushConsumption": [
30
20
  "jira"
31
21
  ],
22
+ "releaseModel": "continuous",
32
23
  "website": {
33
24
  "name": "Page header",
34
25
  "category": "Components"
35
26
  }
36
27
  },
37
28
  "dependencies": {
38
- "@atlaskit/theme": "^12.5.0",
39
- "@atlaskit/tokens": "^1.5.0",
29
+ "@atlaskit/primitives": "^2.0.0",
30
+ "@atlaskit/theme": "^12.6.0",
31
+ "@atlaskit/tokens": "^1.35.0",
40
32
  "@babel/runtime": "^7.0.0",
41
33
  "@emotion/react": "^11.7.1"
42
34
  },
@@ -45,16 +37,12 @@
45
37
  "react-dom": "^16.8.0"
46
38
  },
47
39
  "devDependencies": {
48
- "@atlaskit/breadcrumbs": "^11.10.0",
49
- "@atlaskit/button": "^16.7.0",
50
- "@atlaskit/docs": "*",
40
+ "@af/accessibility-testing": "*",
41
+ "@af/visual-regression": "*",
42
+ "@atlaskit/breadcrumbs": "^12.0.0",
51
43
  "@atlaskit/ds-lib": "^2.2.0",
52
- "@atlaskit/inline-edit": "^12.3.0",
53
44
  "@atlaskit/page": "^12.3.0",
54
- "@atlaskit/section-message": "^6.4.0",
55
- "@atlaskit/select": "^16.5.0",
56
45
  "@atlaskit/ssr": "*",
57
- "@atlaskit/textfield": "^5.5.0",
58
46
  "@atlaskit/visual-regression": "*",
59
47
  "@atlassian/atlassian-frontend-prettier-config-1.0.1": "npm:@atlassian/atlassian-frontend-prettier-config@1.0.1",
60
48
  "@testing-library/react": "^12.1.5",
@@ -89,6 +77,15 @@
89
77
  "deprecation": "no-deprecated-imports"
90
78
  }
91
79
  },
80
+ "typesVersions": {
81
+ ">=4.5 <4.9": {
82
+ "*": [
83
+ "dist/types-ts4.5/*",
84
+ "dist/types-ts4.5/index.d.ts"
85
+ ]
86
+ }
87
+ },
88
+ "homepage": "https://atlassian.design/components/page-header",
92
89
  "af:exports": {
93
90
  ".": "./src/index.tsx"
94
91
  },
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@atlaskit/page-header",
3
- "version": "10.4.4",
4
- "sideEffects": false
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@atlaskit/page-header",
3
- "version": "10.4.4",
4
- "sideEffects": false
5
- }
@@ -1,5 +0,0 @@
1
- {
2
- "name": "@atlaskit/page-header",
3
- "version": "10.4.4",
4
- "sideEffects": false
5
- }
@@ -1,28 +0,0 @@
1
- ## API Report File for "@atlaskit/page-header"
2
-
3
- > Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4
-
5
- ```ts
6
-
7
- import { ReactElement } from 'react';
8
- import { ReactNode } from 'react';
9
-
10
- // @public
11
- const PageHeader: ({ innerRef, breadcrumbs, actions, bottomBar, children, id, disableTitleStyles, truncateTitle, }: PageHeaderProps) => JSX.Element;
12
- export default PageHeader;
13
-
14
- // @public (undocumented)
15
- type PageHeaderProps = {
16
- actions?: ReactElement;
17
- bottomBar?: ReactElement;
18
- breadcrumbs?: ReactElement;
19
- children?: ReactNode;
20
- disableTitleStyles?: boolean;
21
- innerRef?: (element: HTMLElement) => void;
22
- truncateTitle?: boolean;
23
- id?: string;
24
- };
25
-
26
- // (No @packageDocumentation comment for this package)
27
-
28
- ```