@commercetools-frontend/application-components 21.5.1 → 21.8.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 (21) hide show
  1. package/dist/commercetools-frontend-application-components.cjs.dev.js +556 -252
  2. package/dist/commercetools-frontend-application-components.cjs.prod.js +441 -188
  3. package/dist/commercetools-frontend-application-components.esm.js +548 -254
  4. package/dist/declarations/src/components/detail-pages/custom-form-detail-page/custom-form-detail-page.d.ts +201 -0
  5. package/dist/declarations/src/components/detail-pages/custom-form-detail-page/index.d.ts +1 -0
  6. package/dist/declarations/src/components/detail-pages/form-detail-page/form-detail-page.d.ts +125 -0
  7. package/dist/declarations/src/components/detail-pages/form-detail-page/index.d.ts +1 -0
  8. package/dist/declarations/src/components/detail-pages/info-detail-page/index.d.ts +1 -0
  9. package/dist/declarations/src/components/detail-pages/info-detail-page/info-detail-page.d.ts +37 -0
  10. package/dist/declarations/src/components/{tabular-detail-page → detail-pages/tabular-detail-page}/index.d.ts +0 -0
  11. package/dist/declarations/src/components/{tabular-detail-page → detail-pages/tabular-detail-page}/tabular-detail-page.d.ts +0 -0
  12. package/dist/declarations/src/components/dialogs/internals/dialog-container.d.ts +3 -3
  13. package/dist/declarations/src/components/dialogs/internals/dialog-header.d.ts +1 -1
  14. package/dist/declarations/src/components/dialogs/internals/dialog.styles.d.ts +2 -1
  15. package/dist/declarations/src/components/modal-pages/internals/modal-page.d.ts +5 -5
  16. package/dist/declarations/src/components/modal-pages/internals/modal-page.styles.d.ts +1 -3
  17. package/dist/declarations/src/components/portals-container/portals-container.d.ts +1 -0
  18. package/dist/declarations/src/hooks/use-mutation-observer/index.d.ts +1 -0
  19. package/dist/declarations/src/hooks/use-mutation-observer/use-mutation-observer.d.ts +4 -0
  20. package/dist/declarations/src/index.d.ts +4 -1
  21. package/package.json +10 -8
@@ -30,18 +30,26 @@ var IconButton = require('@commercetools-uikit/icon-button');
30
30
  var icons = require('@commercetools-uikit/icons');
31
31
  var _startsWithInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/starts-with');
32
32
  var omitBy = require('lodash/omitBy');
33
- var FlatButton = require('@commercetools-uikit/flat-button');
34
33
  var Modal = require('react-modal');
35
34
  var constants = require('@commercetools-frontend/constants');
36
35
  var Card = require('@commercetools-uikit/card');
37
36
  var SecondaryIconButton = require('@commercetools-uikit/secondary-icon-button');
38
37
  var _slicedToArray = require('@babel/runtime-corejs3/helpers/slicedToArray');
39
38
  var _setTimeout = require('@babel/runtime-corejs3/core-js-stable/set-timeout');
39
+ var FlatButton = require('@commercetools-uikit/flat-button');
40
40
  var CommercetoolsLogoSvg = require('@commercetools-frontend/assets/logos/commercetools_primary-logo_horizontal_white-text_RGB.svg');
41
41
  var Constraints = require('@commercetools-uikit/constraints');
42
42
  var PageNotFoundSVG = require('@commercetools-frontend/assets/images/desert-fox.svg');
43
43
  var FailedAuthorizationSVG = require('@commercetools-frontend/assets/images/folder-full-locked.svg');
44
+ var _toConsumableArray = require('@babel/runtime-corejs3/helpers/toConsumableArray');
45
+ var _concatInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/concat');
46
+ var _mapInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/map');
44
47
  var useResizeObserver = require('@react-hook/resize-observer');
48
+ var _Map = require('@babel/runtime-corejs3/core-js-stable/map');
49
+ var _indexOfInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/index-of');
50
+ var _spliceInstanceProperty = require('@babel/runtime-corejs3/core-js-stable/instance/splice');
51
+ var useLatest = require('@react-hook/latest');
52
+ var rafSchd = require('raf-schd');
45
53
 
46
54
  function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
47
55
 
@@ -62,36 +70,43 @@ var SecondaryButton__default = /*#__PURE__*/_interopDefault(SecondaryButton);
62
70
  var IconButton__default = /*#__PURE__*/_interopDefault(IconButton);
63
71
  var _startsWithInstanceProperty__default = /*#__PURE__*/_interopDefault(_startsWithInstanceProperty);
64
72
  var omitBy__default = /*#__PURE__*/_interopDefault(omitBy);
65
- var FlatButton__default = /*#__PURE__*/_interopDefault(FlatButton);
66
73
  var Modal__default = /*#__PURE__*/_interopDefault(Modal);
67
74
  var Card__default = /*#__PURE__*/_interopDefault(Card);
68
75
  var SecondaryIconButton__default = /*#__PURE__*/_interopDefault(SecondaryIconButton);
69
76
  var _setTimeout__default = /*#__PURE__*/_interopDefault(_setTimeout);
77
+ var FlatButton__default = /*#__PURE__*/_interopDefault(FlatButton);
70
78
  var CommercetoolsLogoSvg__default = /*#__PURE__*/_interopDefault(CommercetoolsLogoSvg);
71
79
  var Constraints__default = /*#__PURE__*/_interopDefault(Constraints);
72
80
  var PageNotFoundSVG__default = /*#__PURE__*/_interopDefault(PageNotFoundSVG);
73
81
  var FailedAuthorizationSVG__default = /*#__PURE__*/_interopDefault(FailedAuthorizationSVG);
82
+ var _concatInstanceProperty__default = /*#__PURE__*/_interopDefault(_concatInstanceProperty);
83
+ var _mapInstanceProperty__default = /*#__PURE__*/_interopDefault(_mapInstanceProperty);
74
84
  var useResizeObserver__default = /*#__PURE__*/_interopDefault(useResizeObserver);
85
+ var _Map__default = /*#__PURE__*/_interopDefault(_Map);
86
+ var _indexOfInstanceProperty__default = /*#__PURE__*/_interopDefault(_indexOfInstanceProperty);
87
+ var _spliceInstanceProperty__default = /*#__PURE__*/_interopDefault(_spliceInstanceProperty);
88
+ var useLatest__default = /*#__PURE__*/_interopDefault(useLatest);
89
+ var rafSchd__default = /*#__PURE__*/_interopDefault(rafSchd);
75
90
 
76
91
  // NOTE: This string will be replaced on build time with the package version.
77
- var version = "21.5.1";
92
+ var version = "21.8.0";
78
93
 
79
94
  var getBottomBorderStyles = function getBottomBorderStyles(background) {
80
95
  return /*#__PURE__*/react.css(":after{content:'';position:absolute;bottom:0;left:0;right:0;height:4px;border-radius:", designSystem.customProperties.borderRadius2, ";background-color:", background, ";transition:background-color ", designSystem.customProperties.transitionEaseinout150Ms, ";}" + ("" ), "" );
81
96
  };
82
97
 
83
- var _ref$9 = {
98
+ var _ref$8 = {
84
99
  name: "1u0tiat",
85
100
  styles: "&[aria-disabled='true']{cursor:not-allowed;opacity:0.5;&:active{pointer-events:none;}}"
86
101
  } ;
87
102
 
88
103
  var getLinkStyles = function getLinkStyles(isActive, isDisabled) {
89
- return [/*#__PURE__*/react.css("font-size:", designSystem.customProperties.fontSizeDefault, ";padding:", designSystem.customProperties.spacingS, " ", designSystem.customProperties.spacingM, ";position:relative;text-align:center;display:inline-block;color:inherit;text-decoration:inherit;&:first-of-type{padding-left:0;}", getBottomBorderStyles('transparent'), ";" + ("" ), "" ), isActive && /*#__PURE__*/react.css(getBottomBorderStyles(designSystem.customProperties.colorPrimary), ">*>*{color:", designSystem.customProperties.colorPrimary, "!important;}" + ("" ), "" ), isDisabled && _ref$9, !isActive && !isDisabled && /*#__PURE__*/react.css(":hover,:focus,:active{>*>*{color:", designSystem.customProperties.colorPrimary, "!important;}}" + ("" ), "" )];
104
+ return [/*#__PURE__*/react.css("font-size:", designSystem.customProperties.fontSizeDefault, ";padding:", designSystem.customProperties.spacingS, " ", designSystem.customProperties.spacingM, ";position:relative;text-align:center;display:inline-block;color:inherit;text-decoration:inherit;&:first-of-type{padding-left:0;}", getBottomBorderStyles('transparent'), ";" + ("" ), "" ), isActive && /*#__PURE__*/react.css(getBottomBorderStyles(designSystem.customProperties.colorPrimary), " & h4{color:", designSystem.customProperties.colorPrimary, "!important;}" + ("" ), "" ), isDisabled && _ref$8, !isActive && !isDisabled && /*#__PURE__*/react.css(":hover,:focus,:active{& h4{color:", designSystem.customProperties.colorPrimary, "!important;}}" + ("" ), "" )];
90
105
  };
91
106
 
92
- function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
107
+ function ownKeys$7(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
93
108
 
94
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
109
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$7(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$7(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
95
110
 
96
111
  var pathWithoutSearch = function pathWithoutSearch(path) {
97
112
  return typeof path === 'string' ? path.split('?')[0] : path.pathname;
@@ -101,12 +116,6 @@ var warnIfMissingContent = function warnIfMissingContent(props) {
101
116
  Boolean(props.intlMessage) || Boolean(props.label);
102
117
  };
103
118
 
104
- var getDisabledTabHeaderAriaAttributes = function getDisabledTabHeaderAriaAttributes(isDisabled) {
105
- return isDisabled ? {
106
- 'aria-disabled': true
107
- } : {};
108
- };
109
-
110
119
  var getDisabledLinkAtributes = function getDisabledLinkAtributes(isDisabled) {
111
120
  return isDisabled ? {
112
121
  tabIndex: -1,
@@ -130,38 +139,35 @@ var TabHeader = function TabHeader(props) {
130
139
  label = intl.formatMessage(props.intlMessage);
131
140
  }
132
141
 
133
- var dataAttributeProps = _objectSpread$5({
142
+ var dataAttributeProps = _objectSpread$7({
134
143
  'data-track-event': 'click'
135
144
  }, label && {
136
145
  'data-track-component': startCase__default["default"](label)
137
146
  });
138
147
 
139
148
  warnIfMissingContent(props);
140
- return jsxRuntime.jsx(reactRouterDom.Link, _objectSpread$5(_objectSpread$5(_objectSpread$5({
149
+ return jsxRuntime.jsx(reactRouterDom.Link, _objectSpread$7(_objectSpread$7(_objectSpread$7({
150
+ role: "tab",
151
+ "aria-selected": isActive,
141
152
  to: props.to,
142
153
  css: getLinkStyles(isActive, isDisabled)
143
154
  }, getDisabledLinkAtributes(isDisabled)), dataAttributeProps), {}, {
144
- children: jsxRuntime.jsx("div", _objectSpread$5(_objectSpread$5({
145
- role: "tab",
146
- "aria-selected": isActive
147
- }, getDisabledTabHeaderAriaAttributes(isDisabled)), {}, {
148
- children: jsxRuntime.jsx(Text__default["default"].Subheadline, {
149
- as: "h4",
150
- truncate: true,
151
- children: label
152
- })
153
- }))
155
+ children: jsxRuntime.jsx(Text__default["default"].Subheadline, {
156
+ as: "h4",
157
+ truncate: true,
158
+ children: label
159
+ })
154
160
  }));
155
161
  };
156
162
  TabHeader.propTypes = {};
157
163
  TabHeader.displayName = 'TabHeader';
158
- var defaultProps$d = {
164
+ var defaultProps$f = {
159
165
  isDisabled: false,
160
166
  exactPathMatch: false
161
167
  };
162
- TabHeader.defaultProps = defaultProps$d;
168
+ TabHeader.defaultProps = defaultProps$f;
163
169
 
164
- var defaultProps$c = {
170
+ var defaultProps$e = {
165
171
  titleSize: 'small',
166
172
  truncate: false
167
173
  };
@@ -212,7 +218,7 @@ var renderSubtitle = function renderSubtitle(subtitle) {
212
218
  });
213
219
  };
214
220
 
215
- var _ref$8 = {
221
+ var _ref$7 = {
216
222
  name: "d3v9zr",
217
223
  styles: "overflow:hidden"
218
224
  } ;
@@ -228,27 +234,27 @@ var PageHeaderTitle = function PageHeaderTitle(props) {
228
234
  });
229
235
  var renderedSubtitle = renderSubtitle(props.subtitle, truncate);
230
236
  return jsxRuntime.jsxs("div", {
231
- css: _ref$8,
237
+ css: _ref$7,
232
238
  children: [renderedTitle, renderedSubtitle]
233
239
  });
234
240
  };
235
241
 
236
242
  PageHeaderTitle.propTypes = {};
237
243
  PageHeaderTitle.displayName = 'PageHeaderTitle';
238
- PageHeaderTitle.defaultProps = defaultProps$c;
244
+ PageHeaderTitle.defaultProps = defaultProps$e;
239
245
 
240
246
  var TabControls = _styled__default["default"]("div", {
241
247
  target: "elpldre1"
242
248
  } )("margin-top:", designSystem.customProperties.spacingS, ";" + ("" ));
243
249
 
244
- var _ref$7 = {
250
+ var _ref$6 = {
245
251
  name: "1nrstx4",
246
252
  styles: "display:flex;align-items:flex-end;justify-content:space-between"
247
253
  } ;
248
254
 
249
255
  var ControlsContainter = function ControlsContainter(props) {
250
256
  return jsxRuntime.jsxs("div", {
251
- css: _ref$7,
257
+ css: _ref$6,
252
258
  children: [jsxRuntime.jsx(TabControls, {
253
259
  role: "tablist",
254
260
  children: props.tabControls
@@ -268,10 +274,10 @@ var TabularPageContainer = function TabularPageContainer(props) {
268
274
 
269
275
  TabularPageContainer.propTypes = {};
270
276
  TabularPageContainer.displayName = 'TabularPageContainer';
271
- var defaultProps$b = {
277
+ var defaultProps$d = {
272
278
  color: 'surface'
273
279
  };
274
- TabularPageContainer.defaultProps = defaultProps$b;
280
+ TabularPageContainer.defaultProps = defaultProps$d;
275
281
 
276
282
  var FormControlsContainer = _styled__default["default"]("div", {
277
283
  target: "elpldre0"
@@ -293,9 +299,9 @@ function filterDataAttributes(obj) {
293
299
  });
294
300
  }
295
301
 
296
- function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
302
+ function ownKeys$6(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
297
303
 
298
- function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
304
+ function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$6(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$6(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
299
305
  var primaryDefaultProps = {
300
306
  label: i18n.sharedMessages.confirm,
301
307
  isDisabled: false,
@@ -309,7 +315,7 @@ var useFormattedLabel = function useFormattedLabel(label) {
309
315
 
310
316
  var FormPrimaryButton = function FormPrimaryButton(props) {
311
317
  var label = useFormattedLabel(props.label);
312
- return jsxRuntime.jsx(PrimaryButton__default["default"], _objectSpread$4({
318
+ return jsxRuntime.jsx(PrimaryButton__default["default"], _objectSpread$6({
313
319
  label: label,
314
320
  onClick: props.onClick,
315
321
  isDisabled: props.isDisabled
@@ -327,7 +333,7 @@ var secondaryDefaultProps = {
327
333
 
328
334
  var FormSecondaryButton = function FormSecondaryButton(props) {
329
335
  var label = useFormattedLabel(props.label);
330
- return jsxRuntime.jsx(SecondaryButton__default["default"], _objectSpread$4({
336
+ return jsxRuntime.jsx(SecondaryButton__default["default"], _objectSpread$6({
331
337
  label: label,
332
338
  onClick: props.onClick,
333
339
  isDisabled: props.isDisabled
@@ -345,7 +351,7 @@ var deleteDefaultProps = {
345
351
 
346
352
  var FormDeleteButton = function FormDeleteButton(props) {
347
353
  var label = useFormattedLabel(props.label);
348
- return jsxRuntime.jsx(IconButton__default["default"], _objectSpread$4({
354
+ return jsxRuntime.jsx(IconButton__default["default"], _objectSpread$6({
349
355
  icon: jsxRuntime.jsx(icons.BinLinearIcon, {}),
350
356
  label: label,
351
357
  onClick: props.onClick,
@@ -357,7 +363,7 @@ FormDeleteButton.propTypes = {};
357
363
  FormDeleteButton.displayName = 'FormDeleteButton';
358
364
  FormDeleteButton.defaultProps = deleteDefaultProps;
359
365
 
360
- var defaultProps$a = {
366
+ var defaultProps$c = {
361
367
  hideControls: false
362
368
  };
363
369
 
@@ -390,7 +396,7 @@ var TabularMainPage = function TabularMainPage(props) {
390
396
 
391
397
  TabularMainPage.propTypes = {};
392
398
  TabularMainPage.displayName = 'TabularMainPage';
393
- TabularMainPage.defaultProps = defaultProps$a; // Static export of pre-configured form control buttons to easily re-use
399
+ TabularMainPage.defaultProps = defaultProps$c; // Static export of pre-configured form control buttons to easily re-use
394
400
  // them in the custom controls.
395
401
 
396
402
  TabularMainPage.FormPrimaryButton = FormPrimaryButton;
@@ -402,90 +408,6 @@ TabularMainPage.PageHeaderTitle = PageHeaderTitle; // This is a convenience prox
402
408
 
403
409
  TabularMainPage.Intl = i18n.sharedMessages;
404
410
 
405
- var messages$2 = reactIntl.defineMessages({
406
- back: {
407
- id: 'Components.ModalPage.TopBar.Back',
408
- defaultMessage: 'Go Back'
409
- },
410
- close: {
411
- id: 'Components.ModalPage.TopBar.Close',
412
- defaultMessage: 'Close Modal Page'
413
- }
414
- });
415
-
416
- var defaultProps$9 = {
417
- color: 'surface',
418
- previousPathLabel: messages$2.back
419
- };
420
-
421
- var PageTopBar = function PageTopBar(props) {
422
- var intl = reactIntl.useIntl();
423
- return jsxRuntime.jsx("div", {
424
- css: /*#__PURE__*/react.css("position:relative;display:flex;align-items:center;justify-content:space-between;background-color:", props.color === 'neutral' ? designSystem.customProperties.colorNeutral95 : designSystem.customProperties.colorSurface, ";" + ("" ), "" ),
425
- children: jsxRuntime.jsx(FlatButton__default["default"], {
426
- tone: "primary",
427
- label: typeof props.previousPathLabel === 'string' ? props.previousPathLabel : intl.formatMessage(props.previousPathLabel),
428
- icon: jsxRuntime.jsx(icons.ListIcon, {
429
- size: "medium",
430
- color: "primary"
431
- }),
432
- onClick: props.onClick
433
- })
434
- });
435
- };
436
-
437
- PageTopBar.propTypes = {};
438
- PageTopBar.displayName = 'PageTopBar';
439
- PageTopBar.defaultProps = defaultProps$9;
440
-
441
- var defaultProps$8 = {
442
- hideControls: false
443
- };
444
-
445
- var TabularDetailPage = function TabularDetailPage(props) {
446
- var _props$title;
447
- return jsxRuntime.jsxs(PageWrapper, {
448
- children: [jsxRuntime.jsx(TabularPageContainer, {
449
- color: "neutral",
450
- children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
451
- children: [jsxRuntime.jsx(PageTopBar, {
452
- color: "neutral",
453
- previousPathLabel: props.previousPathLabel,
454
- onClick: props.onPreviousPathClick
455
- }), props.customTitleRow || jsxRuntime.jsx(PageHeaderTitle, {
456
- title: (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : '',
457
- subtitle: props.subtitle,
458
- titleSize: "big"
459
- }), jsxRuntime.jsx(ControlsContainter, {
460
- tabControls: props.tabControls,
461
- formControls: jsxRuntime.jsx(FormControlsContainer, {
462
- children: !props.hideControls && props.formControls && jsxRuntime.jsx(Spacings__default["default"].Inline, {
463
- alignItems: "flex-end",
464
- children: props.formControls
465
- })
466
- })
467
- })]
468
- })
469
- }), jsxRuntime.jsx(ContentWrapper, {
470
- children: props.children
471
- })]
472
- });
473
- };
474
-
475
- TabularDetailPage.propTypes = {};
476
- TabularDetailPage.displayName = 'TabularDetailPage';
477
- TabularDetailPage.defaultProps = defaultProps$8; // Static export of pre-configured form control buttons to easily re-use
478
- // them in the custom controls.
479
-
480
- TabularDetailPage.FormPrimaryButton = FormPrimaryButton;
481
- TabularDetailPage.FormSecondaryButton = FormSecondaryButton;
482
- TabularDetailPage.FormDeleteButton = FormDeleteButton; // Static export of pre-configured page header title component to easily
483
- // use as part of a custom title row
484
-
485
- TabularDetailPage.PageHeaderTitle = PageHeaderTitle; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
486
-
487
- TabularDetailPage.Intl = i18n.sharedMessages;
488
-
489
411
  var getConstraintForGridStyle = function getConstraintForGridStyle(size) {
490
412
  switch (size) {
491
413
  case 7:
@@ -518,23 +440,31 @@ var getModalContentStyles = function getModalContentStyles(props) {
518
440
  var baseStyles = /*#__PURE__*/react.css("display:grid;height:100%;width:100%;outline:none;pointer-events:none;", gridStyle, ";" + ("" ), "" );
519
441
  return baseStyles;
520
442
  };
443
+ var getOverlayStyles$1 = function getOverlayStyles(props) {
444
+ return /*#__PURE__*/react.css("display:flex;position:absolute;z-index:", typeof props.zIndex === 'number' ? // Use `!important` to overwrite the default value assigned by the Stacking Layer System.
445
+ "".concat(props.zIndex, " !important") : 'auto', ";top:0;width:100%;height:100%;background-color:rgba(32, 62, 72, 0.5);opacity:1;" + ("" ), "" );
446
+ };
521
447
 
522
- var _ref$6 = {
523
- name: "181loe0",
524
- styles: "display:flex;position:absolute;top:0;width:100%;height:100%;background-color:rgba(32, 62, 72, 0.5);opacity:1"
525
- } ;
448
+ function ownKeys$5(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
526
449
 
527
- var getModalOverlayStyles = function getModalOverlayStyles() {
528
- return _ref$6;
529
- };
450
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$5(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$5(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
530
451
 
531
452
  var getDefaultParentSelector$1 = function getDefaultParentSelector() {
532
453
  return document.querySelector("#".concat(constants.PORTALS_CONTAINER_ID));
533
454
  };
534
455
 
535
- var defaultProps$7 = {
456
+ var getOverlayElement$1 = function getOverlayElement(props, contentElement) {
457
+ return (// Assign the `data-role` to the overlay container, which is used as
458
+ // the CSS selector in the `<PortalsContainer>`.
459
+ jsxRuntime.jsx("div", _objectSpread$5(_objectSpread$5({}, props), {}, {
460
+ "data-role": "dialog-overlay",
461
+ children: contentElement
462
+ }))
463
+ );
464
+ };
465
+
466
+ var defaultProps$b = {
536
467
  size: 10,
537
- zIndex: 1000,
538
468
  getParentSelector: getDefaultParentSelector$1
539
469
  };
540
470
 
@@ -568,17 +498,12 @@ var DialogContainer = function DialogContainer(props) {
568
498
  onRequestClose: props.onClose,
569
499
  shouldCloseOnOverlayClick: Boolean(props.onClose),
570
500
  shouldCloseOnEsc: Boolean(props.onClose),
571
- overlayClassName: makeClassName(getModalOverlayStyles()),
501
+ overlayElement: getOverlayElement$1,
502
+ overlayClassName: makeClassName(getOverlayStyles$1(props)),
572
503
  className: makeClassName(getModalContentStyles(props)),
573
504
  contentLabel: props.title,
574
505
  parentSelector: props.getParentSelector,
575
506
  ariaHideApp: false,
576
- style: {
577
- // stylelint-disable-next-line selector-type-no-unknown
578
- overlay: {
579
- zIndex: props.zIndex
580
- }
581
- },
582
507
  children: [jsxRuntime.jsx(GridArea, {
583
508
  name: "top"
584
509
  }), jsxRuntime.jsx(GridArea, {
@@ -608,7 +533,7 @@ var DialogContainer = function DialogContainer(props) {
608
533
 
609
534
  DialogContainer.propTypes = {};
610
535
  DialogContainer.displayName = 'DialogContainer';
611
- DialogContainer.defaultProps = defaultProps$7;
536
+ DialogContainer.defaultProps = defaultProps$b;
612
537
 
613
538
  var _ref$4 = {
614
539
  name: "o5s7gs",
@@ -665,10 +590,10 @@ var InfoDialog = function InfoDialog(props) {
665
590
  InfoDialog.propTypes = {};
666
591
  InfoDialog.displayName = 'InfoDialog';
667
592
 
668
- function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
593
+ function ownKeys$4(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
669
594
 
670
- function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
671
- var defaultProps$6 = {
595
+ function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$4(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$4(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
596
+ var defaultProps$a = {
672
597
  isPrimaryButtonDisabled: false,
673
598
  dataAttributesPrimaryButton: {},
674
599
  dataAttributesSecondaryButton: {}
@@ -684,10 +609,10 @@ var DialogFooter = function DialogFooter(props) {
684
609
  scale: "m",
685
610
  alignItems: "center",
686
611
  justifyContent: "flex-end",
687
- children: [jsxRuntime.jsx(SecondaryButton__default["default"], _objectSpread$3({
612
+ children: [jsxRuntime.jsx(SecondaryButton__default["default"], _objectSpread$4({
688
613
  label: getFormattedLabel(props.labelSecondary, intl),
689
614
  onClick: props.onCancel
690
- }, filterDataAttributes(props.dataAttributesSecondaryButton))), jsxRuntime.jsx(PrimaryButton__default["default"], _objectSpread$3({
615
+ }, filterDataAttributes(props.dataAttributesSecondaryButton))), jsxRuntime.jsx(PrimaryButton__default["default"], _objectSpread$4({
691
616
  label: getFormattedLabel(props.labelPrimary, intl),
692
617
  onClick: props.onConfirm,
693
618
  isDisabled: props.isPrimaryButtonDisabled
@@ -697,9 +622,9 @@ var DialogFooter = function DialogFooter(props) {
697
622
 
698
623
  DialogFooter.propTypes = {};
699
624
  DialogFooter.displayName = 'DialogFooter';
700
- DialogFooter.defaultProps = defaultProps$6;
625
+ DialogFooter.defaultProps = defaultProps$a;
701
626
 
702
- var defaultProps$5 = {
627
+ var defaultProps$9 = {
703
628
  labelSecondary: i18n.sharedMessages.cancel,
704
629
  labelPrimary: i18n.sharedMessages.confirm
705
630
  };
@@ -731,12 +656,12 @@ var ConfirmationDialog = function ConfirmationDialog(props) {
731
656
 
732
657
  ConfirmationDialog.propTypes = {};
733
658
  ConfirmationDialog.displayName = 'ConfirmationDialog';
734
- ConfirmationDialog.defaultProps = defaultProps$5; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
659
+ ConfirmationDialog.defaultProps = defaultProps$9; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
735
660
  // The Intl messages can be used for button labels.
736
661
 
737
662
  ConfirmationDialog.Intl = i18n.sharedMessages;
738
663
 
739
- var defaultProps$4 = {
664
+ var defaultProps$8 = {
740
665
  labelSecondary: i18n.sharedMessages.cancel,
741
666
  labelPrimary: i18n.sharedMessages.save
742
667
  };
@@ -768,17 +693,18 @@ var FormDialog = function FormDialog(props) {
768
693
 
769
694
  FormDialog.propTypes = {};
770
695
  FormDialog.displayName = 'FormDialog';
771
- FormDialog.defaultProps = defaultProps$4; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
696
+ FormDialog.defaultProps = defaultProps$8; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
772
697
  // The Intl messages can be used for button labels.
773
698
 
774
699
  FormDialog.Intl = i18n.sharedMessages;
775
700
 
776
701
  var TRANSITION_DURATION = 200;
777
- var getContainerStyles = function getContainerStyles(props) {
778
- return /*#__PURE__*/react.css("position:absolute;top:0;right:0;height:100%;width:calc(100% - (48px * ", props.level, "));display:flex;flex-direction:column;background-color:", designSystem.customProperties.colorSurface, ";box-shadow:", designSystem.customProperties.shadow4, ",", designSystem.customProperties.shadow6, ";outline:0;transform:translate3d(30px, 0, 0);transition:transform ", TRANSITION_DURATION, "ms ease;" + ("" ), "" );
702
+ var getContainerStyles = function getContainerStyles(_props) {
703
+ return /*#__PURE__*/react.css("position:absolute;top:0;right:0;height:100%;width:100%;display:flex;flex-direction:column;background-color:", designSystem.customProperties.colorSurface, ";box-shadow:", designSystem.customProperties.shadow4, ",", designSystem.customProperties.shadow6, ";outline:0;transform:translate3d(30px, 0, 0);transition:transform ", TRANSITION_DURATION, "ms ease;" + ("" ), "" );
779
704
  };
780
705
  var getOverlayStyles = function getOverlayStyles(props) {
781
- return /*#__PURE__*/react.css("position:absolute;z-index:", typeof props.zIndex === 'number' ? props.zIndex : props.baseZIndex + props.level, ";top:0;left:0;width:100%;height:100%;background-color:rgba(32, 62, 72, 0.5);opacity:0;transition:opacity ", TRANSITION_DURATION, "ms ease;" + ("" ), "" );
706
+ return /*#__PURE__*/react.css("position:absolute;z-index:", typeof props.zIndex === 'number' ? // Use `!important` to overwrite the default value assigned by the Stacking Layer System.
707
+ "".concat(props.zIndex, " !important") : 'auto', ";top:0;left:0;width:100%;height:100%;background-color:rgba(32, 62, 72, 0.5);opacity:0;transition:opacity ", TRANSITION_DURATION, "ms ease;" + ("" ), "" );
782
708
  };
783
709
 
784
710
  var _ref4 = {
@@ -817,6 +743,17 @@ var getBeforeCloseOverlayAnimation = function getBeforeCloseOverlayAnimation() {
817
743
  return _ref$3;
818
744
  };
819
745
 
746
+ var messages$2 = reactIntl.defineMessages({
747
+ back: {
748
+ id: 'Components.ModalPage.TopBar.Back',
749
+ defaultMessage: 'Go Back'
750
+ },
751
+ close: {
752
+ id: 'Components.ModalPage.TopBar.Close',
753
+ defaultMessage: 'Close Modal Page'
754
+ }
755
+ });
756
+
820
757
  var LargeIconWrapper = _styled__default["default"]("span", {
821
758
  target: "edipjip0"
822
759
  } )({
@@ -827,7 +764,7 @@ var LargeIconWrapper = _styled__default["default"]("span", {
827
764
  // does not recognize the object shape.
828
765
 
829
766
 
830
- var defaultProps$3 = {
767
+ var defaultProps$7 = {
831
768
  color: 'surface',
832
769
  previousPathLabel: messages$2.back
833
770
  };
@@ -876,18 +813,30 @@ var ModalPageTopBar = function ModalPageTopBar(props) {
876
813
 
877
814
  ModalPageTopBar.propTypes = {};
878
815
  ModalPageTopBar.displayName = 'ModalPageTopBar';
879
- ModalPageTopBar.defaultProps = defaultProps$3;
816
+ ModalPageTopBar.defaultProps = defaultProps$7;
817
+
818
+ function ownKeys$3(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
819
+
820
+ function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$3(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$3(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
880
821
 
881
822
  var getDefaultParentSelector = function getDefaultParentSelector() {
882
823
  return document.querySelector("#".concat(constants.PORTALS_CONTAINER_ID));
824
+ };
825
+
826
+ var getOverlayElement = function getOverlayElement(props, contentElement) {
827
+ return (// Assign the `data-role` to the overlay container, which is used as
828
+ // the CSS selector in the `<PortalsContainer>`.
829
+ jsxRuntime.jsx("div", _objectSpread$3(_objectSpread$3({}, props), {}, {
830
+ "data-role": "modal-overlay",
831
+ children: contentElement
832
+ }))
833
+ );
883
834
  }; // NOTE: the `MessageDescriptor` type is exposed by `react-intl`.
884
835
  // However, we need to explicitly define this otherwise the prop-types babel plugin
885
836
  // does not recognize the object shape.
886
837
 
887
838
 
888
- var defaultProps$2 = {
889
- level: 1,
890
- baseZIndex: 1000,
839
+ var defaultProps$6 = {
891
840
  getParentSelector: getDefaultParentSelector,
892
841
  shouldDelayOnClose: true
893
842
  };
@@ -932,13 +881,14 @@ var ModalPage = function ModalPage(props) {
932
881
  onRequestClose: handleClose,
933
882
  shouldCloseOnOverlayClick: Boolean(props.onClose),
934
883
  shouldCloseOnEsc: Boolean(props.onClose),
884
+ overlayElement: getOverlayElement,
935
885
  overlayClassName: {
936
886
  base: makeClassName(getOverlayStyles(props)),
937
887
  afterOpen: makeClassName(getAfterOpenOverlayAnimation()),
938
888
  beforeClose: makeClassName(getBeforeCloseOverlayAnimation())
939
889
  },
940
890
  className: {
941
- base: makeClassName(getContainerStyles(props)),
891
+ base: makeClassName(getContainerStyles()),
942
892
  afterOpen: typeof props.afterOpenStyles === 'string' ? props.afterOpenStyles : makeClassName((_props$afterOpenStyle = props.afterOpenStyles) !== null && _props$afterOpenStyle !== void 0 ? _props$afterOpenStyle : getAfterOpenContainerAnimation()),
943
893
  beforeClose: makeClassName(getBeforeCloseContainerAnimation())
944
894
  },
@@ -966,7 +916,7 @@ var ModalPage = function ModalPage(props) {
966
916
 
967
917
  ModalPage.propTypes = {};
968
918
  ModalPage.displayName = 'ModalPage';
969
- ModalPage.defaultProps = defaultProps$2;
919
+ ModalPage.defaultProps = defaultProps$6;
970
920
 
971
921
  var PageHeader = function PageHeader(props) {
972
922
  return jsxRuntime.jsxs("div", {
@@ -984,12 +934,10 @@ PageHeader.displayName = 'PageHeader';
984
934
 
985
935
  var InfoModalPage = function InfoModalPage(props) {
986
936
  return jsxRuntime.jsxs(ModalPage, {
987
- level: props.level,
988
937
  title: props.title,
989
938
  isOpen: props.isOpen,
990
939
  zIndex: props.zIndex,
991
940
  onClose: props.onClose,
992
- baseZIndex: props.baseZIndex,
993
941
  currentPathLabel: props.topBarCurrentPathLabel || props.title,
994
942
  previousPathLabel: props.topBarPreviousPathLabel,
995
943
  shouldDelayOnClose: props.shouldDelayOnClose,
@@ -1009,12 +957,10 @@ InfoModalPage.displayName = 'InfoModalPage';
1009
957
 
1010
958
  var CustomFormModalPage = function CustomFormModalPage(props) {
1011
959
  return jsxRuntime.jsxs(ModalPage, {
1012
- level: props.level,
1013
960
  title: props.title,
1014
961
  isOpen: props.isOpen,
1015
962
  zIndex: props.zIndex,
1016
963
  onClose: props.onClose,
1017
- baseZIndex: props.baseZIndex,
1018
964
  currentPathLabel: props.topBarCurrentPathLabel || props.title,
1019
965
  previousPathLabel: props.topBarPreviousPathLabel,
1020
966
  getParentSelector: props.getParentSelector,
@@ -1044,19 +990,17 @@ CustomFormModalPage.FormDeleteButton = FormDeleteButton; // This is a convenienc
1044
990
 
1045
991
  CustomFormModalPage.Intl = i18n.sharedMessages;
1046
992
 
1047
- var defaultProps$1 = {
993
+ var defaultProps$5 = {
1048
994
  hideControls: false
1049
995
  };
1050
996
 
1051
997
  var FormModalPage = function FormModalPage(props) {
1052
998
  return jsxRuntime.jsx(CustomFormModalPage, {
1053
- level: props.level,
1054
999
  title: props.title,
1055
1000
  subtitle: props.subtitle,
1056
1001
  isOpen: props.isOpen,
1057
1002
  zIndex: props.zIndex,
1058
1003
  onClose: props.onClose,
1059
- baseZIndex: props.baseZIndex,
1060
1004
  topBarCurrentPathLabel: props.topBarCurrentPathLabel,
1061
1005
  topBarPreviousPathLabel: props.topBarPreviousPathLabel,
1062
1006
  getParentSelector: props.getParentSelector,
@@ -1082,23 +1026,21 @@ var FormModalPage = function FormModalPage(props) {
1082
1026
 
1083
1027
  FormModalPage.propTypes = {};
1084
1028
  FormModalPage.displayName = 'FormModalPage';
1085
- FormModalPage.defaultProps = defaultProps$1; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1029
+ FormModalPage.defaultProps = defaultProps$5; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1086
1030
  // The Intl messages can be used for button labels.
1087
1031
 
1088
1032
  FormModalPage.Intl = i18n.sharedMessages;
1089
1033
 
1090
- var defaultProps = {
1034
+ var defaultProps$4 = {
1091
1035
  hideControls: false
1092
1036
  };
1093
1037
 
1094
1038
  var TabularModalPage = function TabularModalPage(props) {
1095
1039
  return jsxRuntime.jsxs(ModalPage, {
1096
- level: props.level,
1097
1040
  title: props.title,
1098
1041
  isOpen: props.isOpen,
1099
1042
  zIndex: props.zIndex,
1100
1043
  onClose: props.onClose,
1101
- baseZIndex: props.baseZIndex,
1102
1044
  topBarColor: "neutral",
1103
1045
  currentPathLabel: props.topBarCurrentPathLabel || props.title,
1104
1046
  previousPathLabel: props.topBarPreviousPathLabel,
@@ -1130,7 +1072,7 @@ var TabularModalPage = function TabularModalPage(props) {
1130
1072
 
1131
1073
  TabularModalPage.propTypes = {};
1132
1074
  TabularModalPage.displayName = 'TabularModalPage';
1133
- TabularModalPage.defaultProps = defaultProps; // Static export of pre-configured form control buttons to easily re-use
1075
+ TabularModalPage.defaultProps = defaultProps$4; // Static export of pre-configured form control buttons to easily re-use
1134
1076
  // them in the custom controls.
1135
1077
 
1136
1078
  TabularModalPage.FormPrimaryButton = FormPrimaryButton;
@@ -1140,6 +1082,187 @@ TabularModalPage.FormDeleteButton = FormDeleteButton; // This is a convenience p
1140
1082
 
1141
1083
  TabularModalPage.Intl = i18n.sharedMessages;
1142
1084
 
1085
+ var defaultProps$3 = {
1086
+ color: 'surface',
1087
+ previousPathLabel: messages$2.back
1088
+ };
1089
+
1090
+ var PageTopBar = function PageTopBar(props) {
1091
+ var intl = reactIntl.useIntl();
1092
+ return jsxRuntime.jsx("div", {
1093
+ css: /*#__PURE__*/react.css("position:relative;display:flex;align-items:center;justify-content:space-between;background-color:", props.color === 'neutral' ? designSystem.customProperties.colorNeutral95 : designSystem.customProperties.colorSurface, ";" + ("" ), "" ),
1094
+ children: jsxRuntime.jsx(FlatButton__default["default"], {
1095
+ tone: "primary",
1096
+ label: typeof props.previousPathLabel === 'string' ? props.previousPathLabel : intl.formatMessage(props.previousPathLabel),
1097
+ icon: jsxRuntime.jsx(icons.ListIcon, {
1098
+ size: "medium",
1099
+ color: "primary"
1100
+ }),
1101
+ onClick: props.onClick
1102
+ })
1103
+ });
1104
+ };
1105
+
1106
+ PageTopBar.propTypes = {};
1107
+ PageTopBar.displayName = 'PageTopBar';
1108
+ PageTopBar.defaultProps = defaultProps$3;
1109
+
1110
+ var DetailPageContainer = _styled__default["default"]("div", {
1111
+ target: "etkdonc0"
1112
+ } )("background-color:", designSystem.customProperties.colorNeutral95, ";padding:", designSystem.customProperties.spacingM, ";border-bottom:1px ", designSystem.customProperties.colorNeutral, " solid;" + ("" )); // NOTE: the `MessageDescriptor` type is exposed by `react-intl`.
1113
+ // However, we need to explicitly define this otherwise the prop-types babel plugin
1114
+ // does not recognize the object shape.
1115
+
1116
+
1117
+ var defaultProps$2 = {
1118
+ hideControls: false
1119
+ };
1120
+
1121
+ var CustomFormDetailPage = function CustomFormDetailPage(props) {
1122
+ var _props$title;
1123
+ return jsxRuntime.jsxs(PageWrapper, {
1124
+ children: [jsxRuntime.jsx(DetailPageContainer, {
1125
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
1126
+ children: [jsxRuntime.jsx(PageTopBar, {
1127
+ color: "neutral",
1128
+ previousPathLabel: props.previousPathLabel,
1129
+ onClick: props.onPreviousPathClick
1130
+ }), props.customTitleRow || jsxRuntime.jsx(PageHeaderTitle, {
1131
+ title: (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : '',
1132
+ subtitle: props.subtitle,
1133
+ titleSize: "big"
1134
+ }), !props.hideControls && props.formControls && jsxRuntime.jsx(Spacings__default["default"].Inline, {
1135
+ justifyContent: "flex-end",
1136
+ children: props.formControls
1137
+ })]
1138
+ })
1139
+ }), jsxRuntime.jsx(ContentWrapper, {
1140
+ children: props.children
1141
+ })]
1142
+ });
1143
+ };
1144
+
1145
+ CustomFormDetailPage.propTypes = {};
1146
+ CustomFormDetailPage.displayName = 'CustomFormDetailPage';
1147
+ CustomFormDetailPage.defaultProps = defaultProps$2; // Static export of pre-configured page header title component to easily
1148
+ // use as part of a custom title row
1149
+
1150
+ CustomFormDetailPage.PageHeaderTitle = PageHeaderTitle; // Static export of pre-configured form control buttons to easily re-use
1151
+ // them in the custom controls.
1152
+
1153
+ CustomFormDetailPage.FormPrimaryButton = FormPrimaryButton;
1154
+ CustomFormDetailPage.FormSecondaryButton = FormSecondaryButton;
1155
+ CustomFormDetailPage.FormDeleteButton = FormDeleteButton; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1156
+ // The Intl messages can be used for button labels.
1157
+
1158
+ CustomFormDetailPage.Intl = i18n.sharedMessages;
1159
+
1160
+ var defaultProps$1 = {
1161
+ hideControls: false
1162
+ };
1163
+
1164
+ var FormDetailPage = function FormDetailPage(props) {
1165
+ return jsxRuntime.jsx(CustomFormDetailPage, {
1166
+ title: props.title,
1167
+ subtitle: props.subtitle,
1168
+ customTitleRow: props.customTitleRow,
1169
+ previousPathLabel: props.previousPathLabel,
1170
+ onPreviousPathClick: props.onPreviousPathClick,
1171
+ hideControls: props.hideControls,
1172
+ formControls: jsxRuntime.jsxs(jsxRuntime.Fragment, {
1173
+ children: [jsxRuntime.jsx(CustomFormDetailPage.FormSecondaryButton, {
1174
+ label: props.labelSecondaryButton,
1175
+ onClick: props.onSecondaryButtonClick,
1176
+ isDisabled: props.isSecondaryButtonDisabled,
1177
+ dataAttributes: props.dataAttributesSecondaryButton
1178
+ }), jsxRuntime.jsx(CustomFormDetailPage.FormPrimaryButton, {
1179
+ label: props.labelPrimaryButton,
1180
+ onClick: props.onPrimaryButtonClick,
1181
+ isDisabled: props.isPrimaryButtonDisabled,
1182
+ dataAttributes: props.dataAttributesPrimaryButton
1183
+ })]
1184
+ }),
1185
+ children: props.children
1186
+ });
1187
+ };
1188
+
1189
+ FormDetailPage.propTypes = {};
1190
+ FormDetailPage.displayName = 'FormDetailPage';
1191
+ FormDetailPage.defaultProps = defaultProps$1; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1192
+ // The Intl messages can be used for button labels.
1193
+ // Static export of pre-configured page header title component to easily
1194
+ // use as part of a custom title row
1195
+
1196
+ FormDetailPage.PageHeaderTitle = PageHeaderTitle; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1197
+ // The Intl messages can be used for button labels.
1198
+
1199
+ FormDetailPage.Intl = i18n.sharedMessages;
1200
+
1201
+ var InfoDetailPage = function InfoDetailPage(props) {
1202
+ return jsxRuntime.jsx(CustomFormDetailPage, {
1203
+ title: props.title,
1204
+ subtitle: props.subtitle,
1205
+ customTitleRow: props.customTitleRow,
1206
+ previousPathLabel: props.previousPathLabel,
1207
+ onPreviousPathClick: props.onPreviousPathClick,
1208
+ children: props.children
1209
+ });
1210
+ };
1211
+
1212
+ InfoDetailPage.propTypes = {};
1213
+ InfoDetailPage.displayName = 'InfoDetailPage'; // Static export of pre-configured page header title component to easily
1214
+ // use as part of a custom title row
1215
+
1216
+ InfoDetailPage.PageHeaderTitle = PageHeaderTitle;
1217
+
1218
+ var defaultProps = {
1219
+ hideControls: false
1220
+ };
1221
+
1222
+ var TabularDetailPage = function TabularDetailPage(props) {
1223
+ var _props$title;
1224
+ return jsxRuntime.jsxs(PageWrapper, {
1225
+ children: [jsxRuntime.jsx(TabularPageContainer, {
1226
+ color: "neutral",
1227
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
1228
+ children: [jsxRuntime.jsx(PageTopBar, {
1229
+ color: "neutral",
1230
+ previousPathLabel: props.previousPathLabel,
1231
+ onClick: props.onPreviousPathClick
1232
+ }), props.customTitleRow || jsxRuntime.jsx(PageHeaderTitle, {
1233
+ title: (_props$title = props.title) !== null && _props$title !== void 0 ? _props$title : '',
1234
+ subtitle: props.subtitle,
1235
+ titleSize: "big"
1236
+ }), jsxRuntime.jsx(ControlsContainter, {
1237
+ tabControls: props.tabControls,
1238
+ formControls: jsxRuntime.jsx(FormControlsContainer, {
1239
+ children: !props.hideControls && props.formControls && jsxRuntime.jsx(Spacings__default["default"].Inline, {
1240
+ alignItems: "flex-end",
1241
+ children: props.formControls
1242
+ })
1243
+ })
1244
+ })]
1245
+ })
1246
+ }), jsxRuntime.jsx(ContentWrapper, {
1247
+ children: props.children
1248
+ })]
1249
+ });
1250
+ };
1251
+
1252
+ TabularDetailPage.propTypes = {};
1253
+ TabularDetailPage.displayName = 'TabularDetailPage';
1254
+ TabularDetailPage.defaultProps = defaultProps; // Static export of pre-configured form control buttons to easily re-use
1255
+ // them in the custom controls.
1256
+
1257
+ TabularDetailPage.FormPrimaryButton = FormPrimaryButton;
1258
+ TabularDetailPage.FormSecondaryButton = FormSecondaryButton;
1259
+ TabularDetailPage.FormDeleteButton = FormDeleteButton; // Static export of pre-configured page header title component to easily
1260
+ // use as part of a custom title row
1261
+
1262
+ TabularDetailPage.PageHeaderTitle = PageHeaderTitle; // This is a convenience proxy export to expose pre-defined Intl messages defined in the `@commercetools-frontend/i18n` package.
1263
+
1264
+ TabularDetailPage.Intl = i18n.sharedMessages;
1265
+
1143
1266
  function ownKeys$2(object, enumerableOnly) { var keys = _Object$keys__default["default"](object); if (_Object$getOwnPropertySymbols__default["default"]) { var symbols = _Object$getOwnPropertySymbols__default["default"](object); enumerableOnly && (symbols = _filterInstanceProperty__default["default"](symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor__default["default"](object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
1144
1267
 
1145
1268
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty__default["default"](_context = ownKeys$2(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors__default["default"] ? _Object$defineProperties__default["default"](target, _Object$getOwnPropertyDescriptors__default["default"](source)) : _forEachInstanceProperty__default["default"](_context2 = ownKeys$2(Object(source))).call(_context2, function (key) { _Object$defineProperty__default["default"](target, key, _Object$getOwnPropertyDescriptor__default["default"](source, key)); }); } return target; }
@@ -1195,16 +1318,19 @@ var PublicPageLayout = function PublicPageLayout(props) {
1195
1318
  })
1196
1319
  }), jsxRuntime.jsxs(Spacings__default["default"].Stack, {
1197
1320
  scale: "s",
1198
- children: [jsxRuntime.jsx(PublicPageLayoutContent, _objectSpread$2({}, props)), jsxRuntime.jsxs(Spacings__default["default"].Stack, {
1199
- scale: "xs",
1200
- alignItems: props.contentScale === 'wide' ? 'center' : 'stretch',
1201
- children: [props.legalMessage && jsxRuntime.jsx(Text__default["default"].Body, {
1202
- tone: "inverted",
1203
- children: props.legalMessage
1204
- }), jsxRuntime.jsx(Text__default["default"].Body, {
1205
- tone: "inverted",
1206
- children: "".concat(year, " \xA9 commercetools")
1207
- })]
1321
+ children: [jsxRuntime.jsx(PublicPageLayoutContent, _objectSpread$2({}, props)), jsxRuntime.jsx(PublicPageLayoutContent, {
1322
+ contentScale: props.contentScale,
1323
+ children: jsxRuntime.jsxs(Spacings__default["default"].Stack, {
1324
+ scale: "xs",
1325
+ alignItems: props.contentScale === 'wide' ? 'center' : 'stretch',
1326
+ children: [props.legalMessage && jsxRuntime.jsx(Text__default["default"].Body, {
1327
+ tone: "inverted",
1328
+ children: props.legalMessage
1329
+ }), jsxRuntime.jsx(Text__default["default"].Body, {
1330
+ tone: "inverted",
1331
+ children: "".concat(year, " \xA9 commercetools")
1332
+ })]
1333
+ })
1208
1334
  })]
1209
1335
  })]
1210
1336
  })
@@ -1341,6 +1467,80 @@ var PageUnauthorized = function PageUnauthorized() {
1341
1467
  };
1342
1468
  PageUnauthorized.displayName = 'PageUnauthorized';
1343
1469
 
1470
+ var _mutationObserver;
1471
+
1472
+ var getMutationObserver = function getMutationObserver(options) {
1473
+ return !_mutationObserver ? _mutationObserver = createMutationObserver(options) : _mutationObserver;
1474
+ };
1475
+
1476
+ function useMutationObserver(target, callback, options) {
1477
+ var mutationObserver = getMutationObserver(options);
1478
+ var storedCallback = useLatest__default["default"](callback);
1479
+ react$1.useLayoutEffect(function () {
1480
+ var didUnsubscribe = false;
1481
+ var targetEl = target && 'current' in target ? target.current : target;
1482
+ if (!targetEl) return function () {};
1483
+
1484
+ function cb(entry, observer) {
1485
+ if (didUnsubscribe) return;
1486
+ storedCallback.current(entry, observer);
1487
+ }
1488
+
1489
+ mutationObserver.subscribe(targetEl, cb);
1490
+ return function () {
1491
+ didUnsubscribe = true;
1492
+ mutationObserver.unsubscribe(targetEl, cb);
1493
+ };
1494
+ }, [target, mutationObserver, storedCallback]);
1495
+ return mutationObserver.observer;
1496
+ }
1497
+
1498
+ function createMutationObserver(options) {
1499
+ var callbacks = new _Map__default["default"]();
1500
+ var observer = new MutationObserver(rafSchd__default["default"](function (entries, obs) {
1501
+ var _loop = function _loop(i) {
1502
+ var cbs = callbacks.get(entries[i].target);
1503
+ cbs === null || cbs === void 0 ? void 0 : _forEachInstanceProperty__default["default"](cbs).call(cbs, function (cb) {
1504
+ return cb(entries[i], obs);
1505
+ });
1506
+ };
1507
+
1508
+ for (var i = 0; i < entries.length; i++) {
1509
+ _loop(i);
1510
+ }
1511
+ }));
1512
+ return {
1513
+ observer: observer,
1514
+ subscribe: function subscribe(target, callback) {
1515
+ var _callbacks$get;
1516
+
1517
+ observer.observe(target, options);
1518
+ var cbs = (_callbacks$get = callbacks.get(target)) !== null && _callbacks$get !== void 0 ? _callbacks$get : [];
1519
+ cbs.push(callback);
1520
+ callbacks.set(target, cbs);
1521
+ },
1522
+ unsubscribe: function unsubscribe(target, callback) {
1523
+ var _callbacks$get2;
1524
+
1525
+ var cbs = (_callbacks$get2 = callbacks.get(target)) !== null && _callbacks$get2 !== void 0 ? _callbacks$get2 : [];
1526
+
1527
+ if (cbs.length === 1) {
1528
+ observer.disconnect();
1529
+ callbacks.delete(target);
1530
+ return;
1531
+ }
1532
+
1533
+ var cbIndex = _indexOfInstanceProperty__default["default"](cbs).call(cbs, callback);
1534
+
1535
+ if (cbIndex !== -1) _spliceInstanceProperty__default["default"](cbs).call(cbs, cbIndex, 1);
1536
+ callbacks.set(target, cbs);
1537
+ }
1538
+ };
1539
+ }
1540
+
1541
+ // The width of each indentation level.
1542
+ var indentationSize = '48px';
1543
+
1344
1544
  var useObserverElementDimensions = function useObserverElementDimensions(element) {
1345
1545
  var _useState = react$1.useState({
1346
1546
  height: 0,
@@ -1366,7 +1566,7 @@ var _ref = {
1366
1566
  } ;
1367
1567
 
1368
1568
  var PortalsContainer = /*#__PURE__*/react$1.forwardRef(function (props, ref) {
1369
- var _props$offsetTop, _props$offsetLeft, _props$offsetLeftOnEx, _props$containerSelec, _props$zIndex, _current, _current2;
1569
+ var _props$offsetTop, _props$offsetLeft, _props$offsetLeftOnEx, _props$containerSelec, _props$zIndex, _props$baseModalZInde, _current, _current2, _context2;
1370
1570
 
1371
1571
  // Initialize props with default values.
1372
1572
  // NOTE: using `defaultProps` with `forwardRef` results in the type declarations
@@ -1377,14 +1577,64 @@ var PortalsContainer = /*#__PURE__*/react$1.forwardRef(function (props, ref) {
1377
1577
  var offsetLeftOnExpandedMenu = (_props$offsetLeftOnEx = props.offsetLeftOnExpandedMenu) !== null && _props$offsetLeftOnEx !== void 0 ? _props$offsetLeftOnEx : '0px';
1378
1578
  var containerSelectorToPreventScrollingOnOpen = (_props$containerSelec = props.containerSelectorToPreventScrollingOnOpen) !== null && _props$containerSelec !== void 0 ? _props$containerSelec : 'main';
1379
1579
  var zIndex = (_props$zIndex = props.zIndex) !== null && _props$zIndex !== void 0 ? _props$zIndex : 10000;
1580
+ var baseModalZIndex = (_props$baseModalZInde = props.baseModalZIndex) !== null && _props$baseModalZInde !== void 0 ? _props$baseModalZInde : 1000;
1581
+ var portalsContainerRef = react$1.useRef(null);
1380
1582
  var globalNotificationsElementDimensions = useObserverElementDimensions(ref === null || ref === void 0 ? void 0 : (_current = ref.current) === null || _current === void 0 ? void 0 : _current.notificationsGlobalRef);
1381
1583
  var pageNotificationsElementDimensions = useObserverElementDimensions(ref === null || ref === void 0 ? void 0 : (_current2 = ref.current) === null || _current2 === void 0 ? void 0 : _current2.notificationsPageRef);
1584
+
1585
+ var _useState3 = react$1.useState([]),
1586
+ _useState4 = _slicedToArray(_useState3, 2),
1587
+ stackingLayers = _useState4[0],
1588
+ setStackingLayers = _useState4[1]; // The mutation observer gets triggered every time a child node gets added or
1589
+ // removed from the portals container.
1590
+ // The stacking layers are then re-calculated.
1591
+
1592
+
1593
+ useMutationObserver(portalsContainerRef, function (mutation) {
1594
+ var _context;
1595
+
1596
+ var indentationLevel = 0;
1597
+ var nextStackingLevels = [];
1598
+
1599
+ _forEachInstanceProperty__default["default"](_context = mutation.target.childNodes).call(_context, function (node, index) {
1600
+ if (node instanceof HTMLElement) {
1601
+ var stackingLevel = index + 1;
1602
+ node.dataset.level = String(stackingLevel);
1603
+ var overlayNode = node.firstChild;
1604
+
1605
+ if (overlayNode instanceof HTMLElement) {
1606
+ if (overlayNode.dataset.role === 'modal-overlay') {
1607
+ indentationLevel += 1;
1608
+ }
1609
+ }
1610
+
1611
+ nextStackingLevels.push({
1612
+ stackingLevel: stackingLevel,
1613
+ indentationLevel: indentationLevel
1614
+ });
1615
+ }
1616
+ });
1617
+
1618
+ setStackingLayers(nextStackingLevels);
1619
+ }, {
1620
+ // Only subscribe to changes to the child nodes of the portals container.
1621
+ childList: true
1622
+ });
1382
1623
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
1383
1624
  children: [jsxRuntime.jsx(react.Global // Apply some global styles, based on the `.ReactModal__Body--open` class.
1384
1625
  , {
1385
- styles: /*#__PURE__*/react.css(".ReactModal__Body--open ", containerSelectorToPreventScrollingOnOpen, "{overflow:hidden;}.ReactModal__Body--open #", constants.PORTALS_CONTAINER_ID, "{position:fixed;height:calc(\n 100% - ", offsetTop, " -\n ", globalNotificationsElementDimensions.height, "px -\n ", pageNotificationsElementDimensions.height, "px\n );width:calc(100% - ", offsetLeft, ");top:calc(\n ", offsetTop, " + ", globalNotificationsElementDimensions.height, "px +\n ", pageNotificationsElementDimensions.height, "px\n );right:0;bottom:0;z-index:", zIndex, ";}.ReactModal__Body--open.body__menu-open #", constants.PORTALS_CONTAINER_ID, "{width:calc(100% - ", offsetLeftOnExpandedMenu, ");}" + ("" ), "" )
1626
+ styles: _concatInstanceProperty__default["default"](_context2 = [/*#__PURE__*/react.css(".ReactModal__Body--open ", containerSelectorToPreventScrollingOnOpen, "{overflow:hidden;}.ReactModal__Body--open #", constants.PORTALS_CONTAINER_ID, "{position:fixed;height:calc(\n 100% - ", offsetTop, " -\n ", globalNotificationsElementDimensions.height, "px -\n ", pageNotificationsElementDimensions.height, "px\n );width:calc(100% - ", offsetLeft, ");top:calc(\n ", offsetTop, " +\n ", globalNotificationsElementDimensions.height, "px +\n ", pageNotificationsElementDimensions.height, "px\n );right:0;bottom:0;z-index:", zIndex, ";}.ReactModal__Body--open.body__menu-open #", constants.PORTALS_CONTAINER_ID, "{width:calc(100% - ", offsetLeftOnExpandedMenu, ");}" + ("" ), "" )]).call(_context2, _toConsumableArray(_mapInstanceProperty__default["default"](stackingLayers).call(stackingLayers,
1627
+ /**
1628
+ * Every "overlay" container gets assigned a sequential `z-index` level.
1629
+ * Furthermore, the "modal overlay" containers (not "dialog") get assigned
1630
+ * the correct indentation level width.
1631
+ */
1632
+ function (stackingLayer) {
1633
+ return /*#__PURE__*/react.css("#", constants.PORTALS_CONTAINER_ID, " .ReactModalPortal[data-level='", stackingLayer.stackingLevel, "'] [data-role$='overlay']{z-index:calc(\n ", baseModalZIndex, " + ", stackingLayer.stackingLevel, "\n );}#", constants.PORTALS_CONTAINER_ID, " .ReactModalPortal[data-level='", stackingLayer.stackingLevel, "'] [data-role='modal-overlay'] [role='dialog']{width:calc(\n 100% -\n (", indentationSize, " * ", stackingLayer.indentationLevel, ")\n );}" + ("" ), "" );
1634
+ })), ["" ])
1386
1635
  }), jsxRuntime.jsx("div", {
1387
- id: constants.PORTALS_CONTAINER_ID // The container needs a height in order to be tabbable: https://reactjs/react-modal#774
1636
+ id: constants.PORTALS_CONTAINER_ID,
1637
+ ref: portalsContainerRef // The container needs a height in order to be tabbable: https://reactjs/react-modal#774
1388
1638
  ,
1389
1639
  css: _ref
1390
1640
  })]
@@ -1414,9 +1664,12 @@ var useModalState = function useModalState() {
1414
1664
  };
1415
1665
 
1416
1666
  exports.ConfirmationDialog = ConfirmationDialog;
1667
+ exports.CustomFormDetailPage = CustomFormDetailPage;
1417
1668
  exports.CustomFormModalPage = CustomFormModalPage;
1669
+ exports.FormDetailPage = FormDetailPage;
1418
1670
  exports.FormDialog = FormDialog;
1419
1671
  exports.FormModalPage = FormModalPage;
1672
+ exports.InfoDetailPage = InfoDetailPage;
1420
1673
  exports.InfoDialog = InfoDialog;
1421
1674
  exports.InfoModalPage = InfoModalPage;
1422
1675
  exports.MaintenancePageLayout = MaintenancePageLayout;