@carbon/ibm-products 2.70.1 → 2.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/carbon.css +317 -216
- package/css/carbon.css.map +1 -1
- package/css/index-full-carbon.css +546 -270
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +387 -43
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +229 -54
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +242 -56
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/_virtual/_commonjsHelpers.js +1 -3
- package/es/_virtual/index2.js +2 -6
- package/es/components/APIKeyModal/APIKeyDownloader.d.ts +61 -19
- package/es/components/APIKeyModal/APIKeyDownloader.js +3 -3
- package/es/components/APIKeyModal/APIKeyModal.js +1 -1
- package/es/components/ActionSet/ActionSet.d.ts +4 -0
- package/es/components/ActionSet/ActionSet.js +46 -44
- package/es/components/AddSelect/AddSelectBody.js +1 -1
- package/es/components/Card/Card.d.ts +1 -0
- package/es/components/Coachmark/CoachmarkOverlay.js +5 -5
- package/es/components/Coachmark/CoachmarkTagline.js +2 -2
- package/es/components/Coachmark/utils/context.d.ts +28 -2
- package/es/components/Coachmark/utils/context.js +1 -1
- package/es/components/CoachmarkStack/CoachmarkStack.js +11 -8
- package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +18 -12
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -3
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +2 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -2
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +2 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +5 -2
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +9 -1
- package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +24 -5
- package/es/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -1
- package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +6 -4
- package/es/components/ConditionBuilder/utils/util.d.ts +1 -1
- package/es/components/ConditionBuilder/utils/util.js +11 -4
- package/es/components/CreateModal/CreateModal.d.ts +4 -7
- package/es/components/CreateModal/CreateModal.js +4 -19
- package/es/components/CreateTearsheet/CreateTearsheetStep.d.ts +6 -0
- package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +12 -3
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +43 -18
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.d.ts +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +2 -2
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.d.ts +7 -1
- package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +11 -3
- package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +15 -19
- package/es/components/EditTearsheet/EditTearsheetForm.d.ts +2 -0
- package/es/components/EditTearsheet/EditTearsheetForm.js +16 -4
- package/es/components/EmptyStates/EmptyState.js +0 -1
- package/es/components/FilterSummary/FilterSummary.d.ts +1 -0
- package/es/components/FilterSummary/FilterSummary.js +2 -1
- package/es/components/Guidebanner/Guidebanner.js +4 -20
- package/es/components/InterstitialScreen/InterstitialScreen.d.ts +4 -3
- package/es/components/InterstitialScreen/InterstitialScreen.js +21 -21
- package/es/components/InterstitialScreen/InterstitialScreenBody.d.ts +9 -3
- package/es/components/InterstitialScreen/InterstitialScreenBody.js +16 -11
- package/es/components/InterstitialScreen/InterstitialScreenFooter.js +15 -13
- package/es/components/InterstitialScreen/InterstitialScreenHeader.js +13 -8
- package/es/components/InterstitialScreen/index.d.ts +4 -1
- package/es/components/Nav/NavItemLink.js +1 -4
- package/es/components/PageHeader/PageHeaderTitle.js +1 -1
- package/es/components/PageHeader/next/PageHeader.d.ts +277 -0
- package/es/components/PageHeader/next/PageHeader.js +475 -0
- package/es/components/PageHeader/next/index.d.ts +8 -0
- package/es/components/ScrollGradient/ScrollGradient.js +4 -4
- package/es/components/SidePanel/SidePanel.js +25 -20
- package/es/components/StringFormatter/StringFormatter.js +3 -0
- package/es/components/Tearsheet/Tearsheet.js +4 -7
- package/es/components/Tearsheet/TearsheetNarrow.js +1 -4
- package/es/components/Tearsheet/TearsheetShell.js +1 -1
- package/es/components/UserAvatar/UserAvatar.js +5 -7
- package/es/components/UserProfileImage/UserProfileImage.d.ts +1 -0
- package/es/components/UserProfileImage/UserProfileImage.js +12 -6
- package/es/components/index.d.ts +1 -0
- package/es/global/js/package-settings.js +1 -1
- package/es/index.js +3 -0
- package/es/node_modules/@carbon/icons-react/es/Icon.js +1 -1
- package/es/node_modules/prop-types/index.js +1 -1
- package/lib/_virtual/_commonjsHelpers.js +0 -3
- package/lib/_virtual/index2.js +2 -8
- package/lib/components/APIKeyModal/APIKeyDownloader.d.ts +61 -19
- package/lib/components/APIKeyModal/APIKeyDownloader.js +3 -3
- package/lib/components/APIKeyModal/APIKeyModal.js +1 -1
- package/lib/components/ActionSet/ActionSet.d.ts +4 -0
- package/lib/components/ActionSet/ActionSet.js +46 -43
- package/lib/components/AddSelect/AddSelectBody.js +1 -1
- package/lib/components/Card/Card.d.ts +1 -0
- package/lib/components/Coachmark/CoachmarkOverlay.js +5 -5
- package/lib/components/Coachmark/CoachmarkTagline.js +2 -2
- package/lib/components/Coachmark/utils/context.d.ts +28 -2
- package/lib/components/Coachmark/utils/context.js +1 -1
- package/lib/components/CoachmarkStack/CoachmarkStack.js +11 -8
- package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +18 -12
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +1 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +5 -3
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.d.ts +2 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOption.js +5 -2
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.d.ts +2 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +5 -2
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.d.ts +9 -1
- package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemTime/ConditionBuilderItemTime.js +24 -5
- package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -1
- package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +6 -4
- package/lib/components/ConditionBuilder/utils/util.d.ts +1 -1
- package/lib/components/ConditionBuilder/utils/util.js +11 -4
- package/lib/components/CreateModal/CreateModal.d.ts +4 -7
- package/lib/components/CreateModal/CreateModal.js +4 -19
- package/lib/components/CreateTearsheet/CreateTearsheetStep.d.ts +6 -0
- package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/DraggableItemsList.js +12 -3
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.d.ts +43 -18
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterProvider.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.d.ts +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilterContext.js +2 -2
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.d.ts +7 -1
- package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +11 -3
- package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +15 -19
- package/lib/components/EditTearsheet/EditTearsheetForm.d.ts +2 -0
- package/lib/components/EditTearsheet/EditTearsheetForm.js +16 -4
- package/lib/components/EmptyStates/EmptyState.js +0 -1
- package/lib/components/FilterSummary/FilterSummary.d.ts +1 -0
- package/lib/components/FilterSummary/FilterSummary.js +2 -1
- package/lib/components/Guidebanner/Guidebanner.js +4 -20
- package/lib/components/InterstitialScreen/InterstitialScreen.d.ts +4 -3
- package/lib/components/InterstitialScreen/InterstitialScreen.js +21 -20
- package/lib/components/InterstitialScreen/InterstitialScreenBody.d.ts +9 -3
- package/lib/components/InterstitialScreen/InterstitialScreenBody.js +19 -14
- package/lib/components/InterstitialScreen/InterstitialScreenFooter.js +20 -18
- package/lib/components/InterstitialScreen/InterstitialScreenHeader.js +15 -10
- package/lib/components/InterstitialScreen/index.d.ts +4 -1
- package/lib/components/Nav/NavItemLink.js +1 -4
- package/lib/components/PageHeader/PageHeaderTitle.js +1 -1
- package/lib/components/PageHeader/next/PageHeader.d.ts +277 -0
- package/lib/components/PageHeader/next/PageHeader.js +490 -0
- package/lib/components/PageHeader/next/index.d.ts +8 -0
- package/lib/components/ScrollGradient/ScrollGradient.js +4 -4
- package/lib/components/SidePanel/SidePanel.js +26 -21
- package/lib/components/StringFormatter/StringFormatter.js +3 -0
- package/lib/components/Tearsheet/Tearsheet.js +4 -7
- package/lib/components/Tearsheet/TearsheetNarrow.js +1 -4
- package/lib/components/Tearsheet/TearsheetShell.js +1 -1
- package/lib/components/UserAvatar/UserAvatar.js +5 -7
- package/lib/components/UserProfileImage/UserProfileImage.d.ts +1 -0
- package/lib/components/UserProfileImage/UserProfileImage.js +12 -6
- package/lib/components/index.d.ts +1 -0
- package/lib/global/js/package-settings.js +1 -1
- package/lib/index.js +5 -2
- package/lib/node_modules/@carbon/icons-react/es/Icon.js +1 -1
- package/lib/node_modules/prop-types/index.js +1 -1
- package/package.json +22 -30
- package/scss/components/CoachmarkStack/_coachmark-stack.scss +12 -1
- package/scss/components/InterstitialScreen/_interstitial-screen.scss +7 -11
- package/scss/components/PageHeader/_page-header.scss +198 -0
- package/scss/components/SidePanel/_side-panel.scss +2 -52
- package/scss/components/_index-released-only.scss +1 -0
- package/telemetry.yml +12 -13
- package/es/_virtual/index3.js +0 -10
- package/es/components/SidePanel/resizer/Resizer.d.ts +0 -21
- package/es/components/SidePanel/resizer/Resizer.js +0 -271
- package/es/node_modules/lodash.debounce/index.js +0 -367
- package/lib/_virtual/index3.js +0 -12
- package/lib/components/SidePanel/resizer/Resizer.d.ts +0 -21
- package/lib/components/SidePanel/resizer/Resizer.js +0 -277
- package/lib/node_modules/lodash.debounce/index.js +0 -369
- /package/es/node_modules/@carbon/{icons-react/node_modules/@carbon/icon-helpers → icon-helpers}/es/index.js +0 -0
- /package/lib/node_modules/@carbon/{icons-react/node_modules/@carbon/icon-helpers → icon-helpers}/es/index.js +0 -0
@@ -0,0 +1,490 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2020, 2025
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
|
8
|
+
'use strict';
|
9
|
+
|
10
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
11
|
+
var React = require('react');
|
12
|
+
var index = require('../../../_virtual/index.js');
|
13
|
+
var cx = require('classnames');
|
14
|
+
var react = require('@carbon/react');
|
15
|
+
var layout = require('@carbon/layout');
|
16
|
+
var PageHeaderUtils = require('../PageHeaderUtils.js');
|
17
|
+
var utilities = require('@carbon/utilities');
|
18
|
+
var useOverflowItems = require('../../../global/js/hooks/useOverflowItems/useOverflowItems.js');
|
19
|
+
var useId = require('../../../global/js/utils/useId.js');
|
20
|
+
|
21
|
+
/**
|
22
|
+
* ----------
|
23
|
+
* PageHeader
|
24
|
+
* ----------
|
25
|
+
*/
|
26
|
+
|
27
|
+
const PageHeader = /*#__PURE__*/React.forwardRef(function PageHeader(_ref, ref) {
|
28
|
+
let {
|
29
|
+
className,
|
30
|
+
children,
|
31
|
+
...other
|
32
|
+
} = _ref;
|
33
|
+
const classNames = cx({
|
34
|
+
[`${PageHeaderUtils.blockClass}`]: true,
|
35
|
+
[`${PageHeaderUtils.blockClass}__next`]: true
|
36
|
+
}, className);
|
37
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
38
|
+
className: classNames,
|
39
|
+
ref: ref
|
40
|
+
}, other), children);
|
41
|
+
});
|
42
|
+
PageHeader.displayName = 'PageHeader';
|
43
|
+
|
44
|
+
/**
|
45
|
+
* -----------------------
|
46
|
+
* PageHeaderBreadcrumbBar
|
47
|
+
* -----------------------
|
48
|
+
*/
|
49
|
+
|
50
|
+
const PageHeaderBreadcrumbBar = /*#__PURE__*/React.forwardRef(function PageHeaderBreadcrumbBar(_ref2, ref) {
|
51
|
+
let {
|
52
|
+
border = true,
|
53
|
+
className,
|
54
|
+
children,
|
55
|
+
renderIcon: IconElement,
|
56
|
+
contentActions,
|
57
|
+
contentActionsFlush,
|
58
|
+
pageActions,
|
59
|
+
pageActionsFlush,
|
60
|
+
...other
|
61
|
+
} = _ref2;
|
62
|
+
const classNames = cx({
|
63
|
+
[`${PageHeaderUtils.blockClass}__breadcrumb-bar`]: true,
|
64
|
+
[`${PageHeaderUtils.blockClass}__breadcrumb-bar-border`]: border,
|
65
|
+
[`${PageHeaderUtils.blockClass}__breadcrumb__actions-flush`]: pageActionsFlush
|
66
|
+
}, className);
|
67
|
+
const contentActionsClasses = cx({
|
68
|
+
[`${PageHeaderUtils.blockClass}__breadcrumb__content-actions`]: !contentActionsFlush
|
69
|
+
});
|
70
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
71
|
+
className: classNames,
|
72
|
+
ref: ref
|
73
|
+
}, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
|
74
|
+
lg: 16,
|
75
|
+
md: 8,
|
76
|
+
sm: 4
|
77
|
+
}, /*#__PURE__*/React.createElement("div", {
|
78
|
+
className: `${PageHeaderUtils.blockClass}__breadcrumb-container`
|
79
|
+
}, /*#__PURE__*/React.createElement("div", {
|
80
|
+
className: `${PageHeaderUtils.blockClass}__breadcrumb-wrapper`
|
81
|
+
}, IconElement && /*#__PURE__*/React.createElement("div", {
|
82
|
+
className: `${PageHeaderUtils.blockClass}__breadcrumb__icon`
|
83
|
+
}, /*#__PURE__*/React.createElement(IconElement, null)), children), /*#__PURE__*/React.createElement("div", {
|
84
|
+
className: `${PageHeaderUtils.blockClass}__breadcrumb__actions`
|
85
|
+
}, /*#__PURE__*/React.createElement("div", {
|
86
|
+
className: contentActionsClasses
|
87
|
+
}, contentActions), pageActions)))));
|
88
|
+
});
|
89
|
+
PageHeaderBreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
|
90
|
+
|
91
|
+
/**
|
92
|
+
* -----------------
|
93
|
+
* PageHeaderContent
|
94
|
+
* -----------------
|
95
|
+
*/
|
96
|
+
|
97
|
+
const PageHeaderContent = /*#__PURE__*/React.forwardRef(function PageHeaderContent(_ref3, ref) {
|
98
|
+
let {
|
99
|
+
className,
|
100
|
+
children,
|
101
|
+
title,
|
102
|
+
renderIcon: IconElement,
|
103
|
+
contextualActions,
|
104
|
+
pageActions,
|
105
|
+
...other
|
106
|
+
} = _ref3;
|
107
|
+
const classNames = cx({
|
108
|
+
[`${PageHeaderUtils.blockClass}__content`]: true
|
109
|
+
}, className);
|
110
|
+
const titleRef = React.useRef(null);
|
111
|
+
const [isEllipsisApplied, setIsEllipsisApplied] = React.useState(false);
|
112
|
+
const isEllipsisActive = element => {
|
113
|
+
setIsEllipsisApplied(element.offsetHeight < element.scrollHeight);
|
114
|
+
return element.offsetHeight < element.scrollHeight;
|
115
|
+
};
|
116
|
+
React.useLayoutEffect(() => {
|
117
|
+
titleRef.current && isEllipsisActive(titleRef.current);
|
118
|
+
}, [title]);
|
119
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
120
|
+
className: classNames,
|
121
|
+
ref: ref
|
122
|
+
}, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
|
123
|
+
lg: 16,
|
124
|
+
md: 8,
|
125
|
+
sm: 4
|
126
|
+
}, /*#__PURE__*/React.createElement("div", {
|
127
|
+
className: `${PageHeaderUtils.blockClass}__content__title-wrapper`
|
128
|
+
}, /*#__PURE__*/React.createElement("div", {
|
129
|
+
className: `${PageHeaderUtils.blockClass}__content__start`
|
130
|
+
}, /*#__PURE__*/React.createElement("div", {
|
131
|
+
className: `${PageHeaderUtils.blockClass}__content__title-container`
|
132
|
+
}, IconElement && /*#__PURE__*/React.createElement("div", {
|
133
|
+
className: `${PageHeaderUtils.blockClass}__content__icon`
|
134
|
+
}, /*#__PURE__*/React.createElement(IconElement, null)), isEllipsisApplied ? /*#__PURE__*/React.createElement(react.DefinitionTooltip, {
|
135
|
+
definition: title
|
136
|
+
}, /*#__PURE__*/React.createElement(react.unstable_Text, {
|
137
|
+
ref: titleRef,
|
138
|
+
as: "h4",
|
139
|
+
className: `${PageHeaderUtils.blockClass}__content__title`
|
140
|
+
}, title)) : /*#__PURE__*/React.createElement(react.unstable_Text, {
|
141
|
+
ref: titleRef,
|
142
|
+
as: "h4",
|
143
|
+
className: `${PageHeaderUtils.blockClass}__content__title`
|
144
|
+
}, title)), contextualActions && /*#__PURE__*/React.createElement("div", {
|
145
|
+
className: `${PageHeaderUtils.blockClass}__content__contextual-actions`
|
146
|
+
}, contextualActions)), pageActions), children)));
|
147
|
+
});
|
148
|
+
PageHeaderContent.displayName = 'PageHeaderContent';
|
149
|
+
PageHeaderContent.propTypes = {
|
150
|
+
/**
|
151
|
+
* Provide child elements to be rendered inside PageHeaderContent.
|
152
|
+
*/
|
153
|
+
children: index.default.node,
|
154
|
+
/**
|
155
|
+
* Specify an optional className to be added to your PageHeaderContent
|
156
|
+
*/
|
157
|
+
className: index.default.string,
|
158
|
+
/**
|
159
|
+
* The PageHeaderContent's contextual actions
|
160
|
+
*/
|
161
|
+
contextualActions: index.default.node,
|
162
|
+
/**
|
163
|
+
* The PageHeaderContent's page actions
|
164
|
+
*/
|
165
|
+
pageActions: index.default.node,
|
166
|
+
/**
|
167
|
+
* Provide an optional icon to render in front of the PageHeaderContent's title.
|
168
|
+
*/
|
169
|
+
renderIcon: index.default.oneOfType([index.default.func, index.default.object]),
|
170
|
+
/**
|
171
|
+
* The PageHeaderContent's subtitle
|
172
|
+
*/
|
173
|
+
subtitle: index.default.string,
|
174
|
+
/**
|
175
|
+
* The PageHeaderContent's title
|
176
|
+
*/
|
177
|
+
title: index.default.string.isRequired
|
178
|
+
};
|
179
|
+
|
180
|
+
/**
|
181
|
+
* ----------------
|
182
|
+
* PageHeaderContentPageActions
|
183
|
+
* ----------------
|
184
|
+
*/
|
185
|
+
|
186
|
+
const PageHeaderContentPageActions = _ref4 => {
|
187
|
+
let {
|
188
|
+
className,
|
189
|
+
children,
|
190
|
+
menuButtonLabel = 'Actions',
|
191
|
+
actions,
|
192
|
+
...other
|
193
|
+
} = _ref4;
|
194
|
+
const classNames = cx({
|
195
|
+
[`${PageHeaderUtils.blockClass}__content__page-actions`]: true
|
196
|
+
}, className);
|
197
|
+
const containerRef = React.useRef(null);
|
198
|
+
const offsetRef = React.useRef(null);
|
199
|
+
const [menuButtonVisibility, setMenuButtonVisibility] = React.useState(false);
|
200
|
+
const [hiddenItems, setHiddenItems] = React.useState([]);
|
201
|
+
|
202
|
+
// need to set the grid columns width based on the menu button's width
|
203
|
+
// to avoid overlapping when resizing
|
204
|
+
React.useLayoutEffect(() => {
|
205
|
+
if (menuButtonVisibility && offsetRef.current) {
|
206
|
+
const width = offsetRef.current.offsetWidth;
|
207
|
+
document.documentElement.style.setProperty('--page-header-title-grid-width', `${width}px`);
|
208
|
+
}
|
209
|
+
}, [menuButtonVisibility]);
|
210
|
+
React.useEffect(() => {
|
211
|
+
if (!containerRef.current || !Array.isArray(actions)) {
|
212
|
+
return;
|
213
|
+
}
|
214
|
+
utilities.createOverflowHandler({
|
215
|
+
container: containerRef.current,
|
216
|
+
// exclude the hidden menu button from children
|
217
|
+
maxVisibleItems: containerRef.current.children.length - 1,
|
218
|
+
onChange: (visible, hidden) => {
|
219
|
+
setHiddenItems(actions?.slice(visible.length));
|
220
|
+
if (hidden.length > 0) {
|
221
|
+
setMenuButtonVisibility(true);
|
222
|
+
}
|
223
|
+
}
|
224
|
+
});
|
225
|
+
}, [actions]);
|
226
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
227
|
+
className: classNames,
|
228
|
+
ref: containerRef
|
229
|
+
}, other), Array.isArray(actions) && /*#__PURE__*/React.createElement(React.Fragment, null, actions.map(action => /*#__PURE__*/React.createElement("div", {
|
230
|
+
key: action.id
|
231
|
+
}, /*#__PURE__*/React.cloneElement(action.body, {
|
232
|
+
...action.body.props,
|
233
|
+
onClick: action.onClick
|
234
|
+
}))), /*#__PURE__*/React.createElement("span", {
|
235
|
+
"data-offset": true,
|
236
|
+
"data-hidden": true,
|
237
|
+
ref: offsetRef
|
238
|
+
}, /*#__PURE__*/React.createElement(react.MenuButton, {
|
239
|
+
menuAlignment: "bottom-end",
|
240
|
+
label: menuButtonLabel,
|
241
|
+
size: "md"
|
242
|
+
}, [...hiddenItems].reverse().map(item => /*#__PURE__*/React.createElement(react.MenuItem, _rollupPluginBabelHelpers.extends({
|
243
|
+
key: item.id,
|
244
|
+
onClick: item.onClick
|
245
|
+
}, item.menuItem)))))));
|
246
|
+
};
|
247
|
+
PageHeaderContentPageActions.displayName = 'PageHeaderContentPageActions';
|
248
|
+
PageHeaderContentPageActions.propTypes = {
|
249
|
+
/**
|
250
|
+
* The PageHeaderContent's page actions
|
251
|
+
*/
|
252
|
+
actions: index.default.oneOfType([index.default.node, index.default.array]),
|
253
|
+
/**
|
254
|
+
* Provide child elements to be rendered inside PageHeaderContentPageActions.
|
255
|
+
*/
|
256
|
+
children: index.default.node,
|
257
|
+
/**
|
258
|
+
* Specify an optional className to be added to your PageHeaderContentPageActions
|
259
|
+
*/
|
260
|
+
className: index.default.string,
|
261
|
+
/**
|
262
|
+
* The PageHeaderContent's collapsible Menu button label
|
263
|
+
*/
|
264
|
+
menuButtonLabel: index.default.string
|
265
|
+
};
|
266
|
+
|
267
|
+
/**
|
268
|
+
* ----------------
|
269
|
+
* PageHeaderContentText
|
270
|
+
* ----------------
|
271
|
+
*/
|
272
|
+
|
273
|
+
const PageHeaderContentText = _ref5 => {
|
274
|
+
let {
|
275
|
+
className,
|
276
|
+
children,
|
277
|
+
subtitle,
|
278
|
+
...other
|
279
|
+
} = _ref5;
|
280
|
+
const classNames = cx({
|
281
|
+
[`${PageHeaderUtils.blockClass}__content__body`]: true
|
282
|
+
}, className);
|
283
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
284
|
+
className: classNames
|
285
|
+
}, other), subtitle && /*#__PURE__*/React.createElement(react.unstable_Text, {
|
286
|
+
as: "h3",
|
287
|
+
className: `${PageHeaderUtils.blockClass}__content__subtitle`
|
288
|
+
}, subtitle), children);
|
289
|
+
};
|
290
|
+
PageHeaderContentText.displayName = 'PageHeaderContentText';
|
291
|
+
PageHeaderContentText.propTypes = {
|
292
|
+
/**
|
293
|
+
* Provide child elements to be rendered inside PageHeaderContentText.
|
294
|
+
*/
|
295
|
+
children: index.default.node,
|
296
|
+
/**
|
297
|
+
* Specify an optional className to be added to your PageHeaderContentText
|
298
|
+
*/
|
299
|
+
className: index.default.string,
|
300
|
+
/**
|
301
|
+
* The PageHeaderContent's subtitle
|
302
|
+
*/
|
303
|
+
subtitle: index.default.string
|
304
|
+
};
|
305
|
+
|
306
|
+
/**
|
307
|
+
* ----------------
|
308
|
+
* PageHeaderHeroImage
|
309
|
+
* ----------------
|
310
|
+
*/
|
311
|
+
|
312
|
+
const PageHeaderHeroImage = _ref6 => {
|
313
|
+
let {
|
314
|
+
className,
|
315
|
+
children,
|
316
|
+
...other
|
317
|
+
} = _ref6;
|
318
|
+
const [lgBreakpoint, setLgBreakpoint] = React.useState(false);
|
319
|
+
const classNames = cx({
|
320
|
+
[`${PageHeaderUtils.blockClass}__hero-image`]: true
|
321
|
+
}, className);
|
322
|
+
const lgMediaQuery = `(min-width: ${layout.breakpoints.lg.width})`;
|
323
|
+
React.useEffect(() => {
|
324
|
+
const listener = event => {
|
325
|
+
setLgBreakpoint(event.matches);
|
326
|
+
};
|
327
|
+
const mediaQueryList = window.matchMedia(lgMediaQuery);
|
328
|
+
mediaQueryList.addEventListener('change', listener);
|
329
|
+
setLgBreakpoint(mediaQueryList.matches);
|
330
|
+
return () => {
|
331
|
+
mediaQueryList.removeEventListener('change', listener);
|
332
|
+
};
|
333
|
+
}, [lgMediaQuery]);
|
334
|
+
return /*#__PURE__*/React.createElement(react.AspectRatio, _rollupPluginBabelHelpers.extends({
|
335
|
+
className: classNames
|
336
|
+
}, other, {
|
337
|
+
ratio: lgBreakpoint ? '2x1' : '3x2'
|
338
|
+
}), children);
|
339
|
+
};
|
340
|
+
PageHeaderHeroImage.displayName = 'PageHeaderHeroImage';
|
341
|
+
PageHeaderHeroImage.propTypes = {
|
342
|
+
/**
|
343
|
+
* Provide child elements to be rendered inside PageHeaderHeroImage.
|
344
|
+
*/
|
345
|
+
children: index.default.node,
|
346
|
+
/**
|
347
|
+
* Specify an optional className to be added to your PageHeaderHeroImage
|
348
|
+
*/
|
349
|
+
className: index.default.string
|
350
|
+
};
|
351
|
+
|
352
|
+
/**
|
353
|
+
* ----------------
|
354
|
+
* PageHeaderTabBar
|
355
|
+
* ----------------
|
356
|
+
*/
|
357
|
+
|
358
|
+
const PageHeaderTabBar = /*#__PURE__*/React.forwardRef(function PageHeaderTabBar(_ref7, ref) {
|
359
|
+
let {
|
360
|
+
className,
|
361
|
+
children,
|
362
|
+
tags = [],
|
363
|
+
...other
|
364
|
+
} = _ref7;
|
365
|
+
const classNames = cx({
|
366
|
+
[`${PageHeaderUtils.blockClass}__tab-bar`]: true
|
367
|
+
}, className);
|
368
|
+
// Early return if no tags are provided
|
369
|
+
if (!tags.length) {
|
370
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
371
|
+
className: classNames,
|
372
|
+
ref: ref
|
373
|
+
}, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
|
374
|
+
lg: 16,
|
375
|
+
md: 8,
|
376
|
+
sm: 4
|
377
|
+
}, children)));
|
378
|
+
}
|
379
|
+
const [openPopover, setOpenPopover] = React.useState(false);
|
380
|
+
const tagSize = tags[0]?.size || 'md';
|
381
|
+
const instanceId = useId.useId('PageHeaderTabBar');
|
382
|
+
const tagsWithIds = React.useMemo(() => {
|
383
|
+
return tags.map((tag, index) => ({
|
384
|
+
...tag,
|
385
|
+
id: tag.id || `tag-${index}-${instanceId}`
|
386
|
+
}));
|
387
|
+
}, [instanceId, tags]);
|
388
|
+
const tagsContainerRef = React.useRef(null);
|
389
|
+
const offsetRef = React.useRef(null);
|
390
|
+
// To close popover when window resizes
|
391
|
+
React.useEffect(() => {
|
392
|
+
const handleResize = () => {
|
393
|
+
// Close the popover when window resizes to prevent unwanted opens
|
394
|
+
setOpenPopover(false);
|
395
|
+
};
|
396
|
+
window.addEventListener('resize', handleResize);
|
397
|
+
return () => {
|
398
|
+
window.removeEventListener('resize', handleResize);
|
399
|
+
};
|
400
|
+
}, []);
|
401
|
+
|
402
|
+
// overflow items hook
|
403
|
+
const {
|
404
|
+
visibleItems = [],
|
405
|
+
hiddenItems = [],
|
406
|
+
itemRefHandler = () => {}
|
407
|
+
} = useOverflowItems.useOverflowItems(tagsWithIds, tagsContainerRef, offsetRef) || {
|
408
|
+
visibleItems: [],
|
409
|
+
hiddenItems: [],
|
410
|
+
itemRefHandler: () => {}
|
411
|
+
};
|
412
|
+
const handleOverflowClick = React.useCallback(event => {
|
413
|
+
event.stopPropagation();
|
414
|
+
setOpenPopover(prev => !prev);
|
415
|
+
}, []);
|
416
|
+
|
417
|
+
// Function to render tags
|
418
|
+
const renderTags = () => /*#__PURE__*/React.createElement("div", {
|
419
|
+
className: `${PageHeaderUtils.blockClass}__tags`,
|
420
|
+
ref: tagsContainerRef
|
421
|
+
}, visibleItems.map(tag => /*#__PURE__*/React.createElement(react.Tag, {
|
422
|
+
key: tag.id,
|
423
|
+
ref: node => itemRefHandler(tag.id, node),
|
424
|
+
type: tag.type,
|
425
|
+
size: tag.size,
|
426
|
+
className: `${PageHeaderUtils.blockClass}__tag-item`
|
427
|
+
}, tag.text)), hiddenItems.length > 0 && /*#__PURE__*/React.createElement(react.Popover, {
|
428
|
+
open: openPopover,
|
429
|
+
onRequestClose: () => setOpenPopover(false)
|
430
|
+
}, /*#__PURE__*/React.createElement(react.OperationalTag, {
|
431
|
+
onClick: handleOverflowClick,
|
432
|
+
"aria-expanded": openPopover,
|
433
|
+
text: `+${hiddenItems.length}`,
|
434
|
+
size: tagSize
|
435
|
+
}), /*#__PURE__*/React.createElement(react.PopoverContent, {
|
436
|
+
className: "tag-popover-content"
|
437
|
+
}, /*#__PURE__*/React.createElement("div", {
|
438
|
+
className: `${PageHeaderUtils.blockClass}__tags-popover-list`
|
439
|
+
}, hiddenItems.map(tag => /*#__PURE__*/React.createElement(react.Tag, {
|
440
|
+
key: tag.id,
|
441
|
+
type: tag.type,
|
442
|
+
size: tag.size
|
443
|
+
}, tag.text))))));
|
444
|
+
return /*#__PURE__*/React.createElement("div", _rollupPluginBabelHelpers.extends({
|
445
|
+
className: classNames,
|
446
|
+
ref: ref
|
447
|
+
}, other), /*#__PURE__*/React.createElement(react.Grid, null, /*#__PURE__*/React.createElement(react.Column, {
|
448
|
+
lg: 16,
|
449
|
+
md: 8,
|
450
|
+
sm: 4
|
451
|
+
}, /*#__PURE__*/React.createElement("div", {
|
452
|
+
className: `${PageHeaderUtils.blockClass}__tab-bar--tablist`
|
453
|
+
}, children, tags.length > 0 && renderTags()))));
|
454
|
+
});
|
455
|
+
PageHeaderTabBar.displayName = 'PageHeaderTabBar';
|
456
|
+
|
457
|
+
/**
|
458
|
+
* -------
|
459
|
+
* Exports
|
460
|
+
* -------
|
461
|
+
*/
|
462
|
+
const Root = PageHeader;
|
463
|
+
Root.displayName = 'PageHeader.Root';
|
464
|
+
const BreadcrumbBar = PageHeaderBreadcrumbBar;
|
465
|
+
BreadcrumbBar.displayName = 'PageHeaderBreadcrumbBar';
|
466
|
+
const Content = PageHeaderContent;
|
467
|
+
Content.displayName = 'PageHeaderContent';
|
468
|
+
const ContentPageActions = PageHeaderContentPageActions;
|
469
|
+
ContentPageActions.displayName = 'PageHeaderContentPageActions';
|
470
|
+
const ContentText = PageHeaderContentText;
|
471
|
+
ContentText.displayName = 'PageHeaderContentText';
|
472
|
+
const HeroImage = PageHeaderHeroImage;
|
473
|
+
HeroImage.displayName = 'PageHeaderHeroImage';
|
474
|
+
const TabBar = PageHeaderTabBar;
|
475
|
+
TabBar.displayName = 'PageHeaderTabBar';
|
476
|
+
|
477
|
+
exports.BreadcrumbBar = BreadcrumbBar;
|
478
|
+
exports.Content = Content;
|
479
|
+
exports.ContentPageActions = ContentPageActions;
|
480
|
+
exports.ContentText = ContentText;
|
481
|
+
exports.HeroImage = HeroImage;
|
482
|
+
exports.PageHeader = PageHeader;
|
483
|
+
exports.PageHeaderBreadcrumbBar = PageHeaderBreadcrumbBar;
|
484
|
+
exports.PageHeaderContent = PageHeaderContent;
|
485
|
+
exports.PageHeaderContentPageActions = PageHeaderContentPageActions;
|
486
|
+
exports.PageHeaderContentText = PageHeaderContentText;
|
487
|
+
exports.PageHeaderHeroImage = PageHeaderHeroImage;
|
488
|
+
exports.PageHeaderTabBar = PageHeaderTabBar;
|
489
|
+
exports.Root = Root;
|
490
|
+
exports.TabBar = TabBar;
|
@@ -0,0 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright IBM Corp. 2025
|
3
|
+
*
|
4
|
+
* This source code is licensed under the Apache-2.0 license found in the
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
6
|
+
*/
|
7
|
+
export { PageHeader, PageHeaderBreadcrumbBar, PageHeaderContent, PageHeaderContentPageActions, PageHeaderContentText, PageHeaderTabBar, PageHeaderHeroImage, Root, BreadcrumbBar, Content, ContentPageActions, ContentText, TabBar, HeroImage, } from './PageHeader';
|
8
|
+
export type { PageHeaderProps, PageHeaderBreadcrumbBarProps, PageHeaderContentProps, PageHeaderContentPageActionsProps, PageHeaderContentTextProps, PageHeaderTabBarProps, PageHeaderHeroImageProps, } from './PageHeader';
|
@@ -41,10 +41,10 @@ exports.ScrollGradient = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
41
41
|
hideStartGradient = defaults.hideStartGradient,
|
42
42
|
...rest
|
43
43
|
} = _ref;
|
44
|
-
const intersectionStartRef = React.useRef();
|
45
|
-
const intersectionEndRef = React.useRef();
|
46
|
-
const intersectionLeftRef = React.useRef();
|
47
|
-
const intersectionRightRef = React.useRef();
|
44
|
+
const intersectionStartRef = React.useRef(undefined);
|
45
|
+
const intersectionEndRef = React.useRef(undefined);
|
46
|
+
const intersectionLeftRef = React.useRef(undefined);
|
47
|
+
const intersectionRightRef = React.useRef(undefined);
|
48
48
|
const carbonPrefix = react.usePrefix();
|
49
49
|
const fallbackColor = `var(--${carbonPrefix}-layer-01)`;
|
50
50
|
const scrollContainer = React.useRef(undefined);
|
@@ -13,7 +13,7 @@ var react = require('@carbon/react');
|
|
13
13
|
var index$1 = require('../FeatureFlags/index.js');
|
14
14
|
var React = require('react');
|
15
15
|
var ActionSet = require('../ActionSet/ActionSet.js');
|
16
|
-
var
|
16
|
+
var reactResizer = require('@carbon-labs/react-resizer');
|
17
17
|
var index = require('../../_virtual/index.js');
|
18
18
|
var constants = require('./constants.js');
|
19
19
|
var propsHelper = require('../../global/js/utils/props-helper.js');
|
@@ -44,10 +44,8 @@ const defaults = {
|
|
44
44
|
/**
|
45
45
|
* Side panels keep users in-context of a page while performing tasks like navigating, editing, viewing details, or configuring something new.
|
46
46
|
*/
|
47
|
-
const SidePanelBase = /*#__PURE__*/React.forwardRef((
|
48
|
-
|
49
|
-
// The component props, in alphabetical order (for consistency).
|
50
|
-
|
47
|
+
const SidePanelBase = /*#__PURE__*/React.forwardRef((props, ref) => {
|
48
|
+
const {
|
51
49
|
actionToolbarButtons,
|
52
50
|
actions,
|
53
51
|
aiLabel,
|
@@ -77,9 +75,8 @@ const SidePanelBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
77
75
|
subtitle,
|
78
76
|
title,
|
79
77
|
launcherButtonRef,
|
80
|
-
// Collect any other property values passed in.
|
81
78
|
...rest
|
82
|
-
} =
|
79
|
+
} = props;
|
83
80
|
const [animationComplete, setAnimationComplete] = React.useState(false);
|
84
81
|
const localRef = React.useRef(null);
|
85
82
|
const sidePanelRef = ref || localRef;
|
@@ -173,14 +170,22 @@ const SidePanelBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
173
170
|
}
|
174
171
|
setWidth((sidePanelWidth.current ?? 0) - (placement === 'right' ? delta : -delta));
|
175
172
|
}, [placement, sidePanelRef, sidePanelWidth]);
|
173
|
+
const getPanelWidthPercent = React.useCallback(customWidth => {
|
174
|
+
if (customWidth) {
|
175
|
+
const remValue = parseFloat(customWidth);
|
176
|
+
const remInPixels = remValue * parseFloat(getComputedStyle(document.documentElement).fontSize);
|
177
|
+
return Math.round(remInPixels / window.innerWidth * 100);
|
178
|
+
}
|
179
|
+
return Math.round((sidePanelRef.current?.clientWidth || 0) / window.innerWidth * 100);
|
180
|
+
}, [sidePanelRef]);
|
176
181
|
const onResizeEnd = React.useCallback((_, ref) => {
|
177
182
|
accumulatedDeltaRef.current = 0;
|
178
183
|
sidePanelRef.current?.style?.removeProperty('transition');
|
179
|
-
const percent = Math.round((sidePanelRef.current.clientWidth || 0) / window.innerWidth * 100);
|
180
184
|
// custom a11y announcements
|
181
|
-
ref.current.setAttribute('aria-label', `side panel is covering ${
|
185
|
+
ref.current.setAttribute('aria-label', `side panel is covering ${getPanelWidthPercent()}% of screen`);
|
186
|
+
ref.current.setAttribute('aria-valuenow', getPanelWidthPercent());
|
182
187
|
sidePanelWidth.current = sidePanelRef.current?.clientWidth;
|
183
|
-
}, [sidePanelRef]);
|
188
|
+
}, [sidePanelRef, getPanelWidthPercent]);
|
184
189
|
const onDoubleClick = React.useCallback(() => {
|
185
190
|
sidePanelWidth.current = Math.min(parseFloat(constants.SIDE_PANEL_SIZES[size]) * 16, window.innerWidth * 0.75);
|
186
191
|
const parentEl = sidePanelRef.current?.parentElement;
|
@@ -475,7 +480,7 @@ const SidePanelBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
475
480
|
ref: subtitleRef
|
476
481
|
}, subtitle), actionToolbarButtons && actionToolbarButtons.length && /*#__PURE__*/React.createElement("div", {
|
477
482
|
className: `${blockClass}__action-toolbar`
|
478
|
-
}, actionToolbarButtons.map(
|
483
|
+
}, actionToolbarButtons.map(_ref => {
|
479
484
|
let {
|
480
485
|
label,
|
481
486
|
kind,
|
@@ -489,7 +494,7 @@ const SidePanelBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
489
494
|
className,
|
490
495
|
onClick,
|
491
496
|
...rest
|
492
|
-
} =
|
497
|
+
} = _ref;
|
493
498
|
return /*#__PURE__*/React.createElement(react.Button, _rollupPluginBabelHelpers.extends({}, rest, {
|
494
499
|
key: label,
|
495
500
|
kind: kind || 'ghost',
|
@@ -531,10 +536,12 @@ const SidePanelBase = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
531
536
|
onAnimationEnd: onAnimationEnd,
|
532
537
|
onAnimationStart: onAnimationStart,
|
533
538
|
onKeyDown: handleKeyDown
|
534
|
-
}), !slideIn && enableResizer && window.innerWidth > 768 && /*#__PURE__*/React.createElement(
|
539
|
+
}), !slideIn && enableResizer && window.innerWidth > 768 && /*#__PURE__*/React.createElement(reactResizer.Resizer, {
|
535
540
|
className: `${blockClass}__resizer`,
|
536
541
|
orientation: "vertical",
|
537
|
-
"aria-
|
542
|
+
"aria-valuemin": getPanelWidthPercent(constants.SIDE_PANEL_SIZES['xs']),
|
543
|
+
"aria-valuemax": 75,
|
544
|
+
"aria-valuenow": getPanelWidthPercent(),
|
538
545
|
onResize: onResize,
|
539
546
|
onResizeEnd: onResizeEnd,
|
540
547
|
onDoubleClick: onDoubleClick
|
@@ -595,9 +602,7 @@ SidePanel.propTypes = {
|
|
595
602
|
*
|
596
603
|
* See https://react.carbondesignsystem.com/?path=/docs/components-button--default#component-api
|
597
604
|
*/
|
598
|
-
actions: propsHelper.allPropTypes([
|
599
|
-
ActionSet.ActionSet.validateActions(), index.default.arrayOf(index.default.shape({
|
600
|
-
/**@ts-ignore */
|
605
|
+
actions: propsHelper.allPropTypes([index.default.arrayOf(index.default.shape({
|
601
606
|
...react.Button.propTypes,
|
602
607
|
kind: index.default.oneOf(['ghost', 'danger--ghost', 'secondary', 'danger', 'primary']),
|
603
608
|
tooltipPosition: index.default.oneOf(['top', 'right', 'bottom', 'left']),
|
@@ -688,10 +693,10 @@ SidePanel.propTypes = {
|
|
688
693
|
* This prop is required when using the `slideIn` variant of the side panel.
|
689
694
|
*/
|
690
695
|
/**@ts-ignore*/
|
691
|
-
selectorPageContent: index.default.string.isRequired.if(
|
696
|
+
selectorPageContent: index.default.string.isRequired.if(_ref2 => {
|
692
697
|
let {
|
693
698
|
slideIn
|
694
|
-
} =
|
699
|
+
} = _ref2;
|
695
700
|
return slideIn;
|
696
701
|
}),
|
697
702
|
/**
|
@@ -718,10 +723,10 @@ SidePanel.propTypes = {
|
|
718
723
|
* Sets the title text
|
719
724
|
*/
|
720
725
|
/**@ts-ignore*/
|
721
|
-
title: index.default.string.isRequired.if(
|
726
|
+
title: index.default.string.isRequired.if(_ref3 => {
|
722
727
|
let {
|
723
728
|
labelText
|
724
|
-
} =
|
729
|
+
} = _ref3;
|
725
730
|
return labelText;
|
726
731
|
}),
|
727
732
|
...deprecatedProps
|
@@ -21,6 +21,7 @@ var useIsomorphicEffect = require('../../global/js/hooks/useIsomorphicEffect.js'
|
|
21
21
|
const blockClass = `${settings.pkg.prefix}--string-formatter`;
|
22
22
|
const componentName = 'StringFormatter';
|
23
23
|
const defaults = {
|
24
|
+
autoAlign: false,
|
24
25
|
lines: 1,
|
25
26
|
tooltipDirection: enums.StringFormatterAlignment.BOTTOM_START,
|
26
27
|
truncate: false,
|
@@ -34,6 +35,7 @@ const defaults = {
|
|
34
35
|
exports.StringFormatter = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
35
36
|
let {
|
36
37
|
className,
|
38
|
+
autoAlign = defaults.autoAlign,
|
37
39
|
lines = defaults.lines,
|
38
40
|
tooltipDirection = defaults.tooltipDirection,
|
39
41
|
truncate = defaults.truncate,
|
@@ -85,6 +87,7 @@ exports.StringFormatter = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
85
87
|
}, devtools.getDevtoolsProps(componentName)), truncate && isTextTruncated ? /*#__PURE__*/React.createElement(react.DefinitionTooltip, {
|
86
88
|
className: `${blockClass}__tooltip`,
|
87
89
|
align: tooltipDirection,
|
90
|
+
autoAlign: autoAlign,
|
88
91
|
definition: value,
|
89
92
|
openOnHover: true
|
90
93
|
}, stringFormatterContent) : stringFormatterContent);
|