@7shifts/sous-chef 4.9.0 → 4.10.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/dist/index.js CHANGED
@@ -6,6 +6,7 @@ var lodashEs = require('lodash-es');
6
6
  var parseTime = require('time-autocomplete/src/core/AMPMParser');
7
7
  var reactRouterDom = require('react-router-dom');
8
8
  var ReactModal = require('react-modal');
9
+ var DraggableLib = require('react-draggable');
9
10
  var reactDayPicker = require('react-day-picker');
10
11
  var dateFnsFormat = require('date-fns/format');
11
12
  var dateFnsParse = require('date-fns/parse');
@@ -47,6 +48,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
47
48
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
48
49
  var parseTime__default = /*#__PURE__*/_interopDefaultLegacy(parseTime);
49
50
  var ReactModal__default = /*#__PURE__*/_interopDefaultLegacy(ReactModal);
51
+ var DraggableLib__default = /*#__PURE__*/_interopDefaultLegacy(DraggableLib);
50
52
  var dateFnsFormat__default = /*#__PURE__*/_interopDefaultLegacy(dateFnsFormat);
51
53
  var dateFnsParse__default = /*#__PURE__*/_interopDefaultLegacy(dateFnsParse);
52
54
  var startOfDay__default = /*#__PURE__*/_interopDefaultLegacy(startOfDay);
@@ -308,7 +310,7 @@ function _objectWithoutPropertiesLoose(r, e) {
308
310
  return t;
309
311
  }
310
312
 
311
- var styles$1J = {"flex":"_GFHBy","flex__item":"_TOxU5","flex__item--flexible":"_oppLW","align-center":"_bC2qU","align-end":"_9qCMz","align-start":"_06gN4","justify-center":"_9gxO4","justify-end":"_33FAJ","justify-space-between":"_lg-h2","justify-start":"_xjZcn","inline-flex":"_3yyLA"};
313
+ var styles$1K = {"flex":"_GFHBy","flex__item":"_TOxU5","flex__item--flexible":"_oppLW","align-center":"_bC2qU","align-end":"_9qCMz","align-start":"_06gN4","justify-center":"_9gxO4","justify-end":"_33FAJ","justify-space-between":"_lg-h2","justify-start":"_xjZcn","inline-flex":"_3yyLA"};
312
314
 
313
315
  var usePositionStyles = function usePositionStyles(_ref) {
314
316
  var m = _ref.m,
@@ -427,7 +429,7 @@ var Flex = function Flex(_ref) {
427
429
  var _getDataProps = getDataProps(otherProps),
428
430
  dataProps = _getDataProps.dataProps;
429
431
  var positionStyles = usePositionStyles(positionProps);
430
- var className = classnames__default["default"](styles$1J['flex'], extraClass, (_classNames = {}, _classNames[styles$1J['align-start']] = alignItems === 'flex-start', _classNames[styles$1J['align-end']] = alignItems === 'flex-end', _classNames[styles$1J['align-center']] = alignItems === 'center', _classNames[styles$1J['justify-start']] = justifyContent === 'start', _classNames[styles$1J['justify-end']] = justifyContent === 'end', _classNames[styles$1J['justify-center']] = justifyContent === 'center', _classNames[styles$1J['justify-space-between']] = justifyContent === 'space-between', _classNames[styles$1J['inline-flex']] = inlineFlex, _classNames));
432
+ var className = classnames__default["default"](styles$1K['flex'], extraClass, (_classNames = {}, _classNames[styles$1K['align-start']] = alignItems === 'flex-start', _classNames[styles$1K['align-end']] = alignItems === 'flex-end', _classNames[styles$1K['align-center']] = alignItems === 'center', _classNames[styles$1K['justify-start']] = justifyContent === 'start', _classNames[styles$1K['justify-end']] = justifyContent === 'end', _classNames[styles$1K['justify-center']] = justifyContent === 'center', _classNames[styles$1K['justify-space-between']] = justifyContent === 'space-between', _classNames[styles$1K['inline-flex']] = inlineFlex, _classNames));
431
433
  var items = React__default["default"].Children.toArray(children).filter(Boolean);
432
434
  var gap = typeof space === 'object' ? space.row + "px " + space.column + "px" : space;
433
435
  return React__default["default"].createElement("div", _extends({
@@ -443,7 +445,7 @@ var Flex = function Flex(_ref) {
443
445
  var _classNames2;
444
446
  return React__default["default"].createElement("div", {
445
447
  key: i,
446
- className: classnames__default["default"](styles$1J['flex__item'], (_classNames2 = {}, _classNames2[styles$1J['flex__item--flexible']] = flexItems, _classNames2)),
448
+ className: classnames__default["default"](styles$1K['flex__item'], (_classNames2 = {}, _classNames2[styles$1K['flex__item--flexible']] = flexItems, _classNames2)),
447
449
  style: {
448
450
  flex: flex ? flex[i] || '0 1 auto' : '0 1 auto'
449
451
  }
@@ -465,7 +467,7 @@ var Stack = function Stack(_ref) {
465
467
  }));
466
468
  };
467
469
 
468
- var styles$1I = {"caption":"_tMhXr","label":"_NfOw5","label--truncate":"_M3aFK","toggle":"_QDQZ1","toggle__label":"_52dky","toggle__caption":"_A-tgL","toggle__switch":"_kBjjH"};
470
+ var styles$1J = {"caption":"_tMhXr","label":"_NfOw5","label--truncate":"_M3aFK","toggle":"_QDQZ1","toggle__label":"_52dky","toggle__caption":"_A-tgL","toggle__switch":"_kBjjH"};
469
471
 
470
472
  var _excluded$eo = ["checked", "label", "caption", "onChange", "disabled", "id", "testId"];
471
473
  /**
@@ -488,7 +490,7 @@ var Toggle = function Toggle(_ref) {
488
490
  return React__default["default"].createElement(Stack, {
489
491
  space: 8
490
492
  }, React__default["default"].createElement("label", _extends({}, dataProps, {
491
- className: styles$1I['toggle']
493
+ className: styles$1J['toggle']
492
494
  }), React__default["default"].createElement("input", {
493
495
  type: "checkbox",
494
496
  checked: checked,
@@ -497,11 +499,11 @@ var Toggle = function Toggle(_ref) {
497
499
  id: id,
498
500
  "data-testid": testId
499
501
  }), React__default["default"].createElement("span", {
500
- className: styles$1I['toggle__switch']
502
+ className: styles$1J['toggle__switch']
501
503
  }), label && React__default["default"].createElement("span", {
502
- className: styles$1I['toggle__label']
504
+ className: styles$1J['toggle__label']
503
505
  }, label)), caption && React__default["default"].createElement("span", {
504
- className: styles$1I['toggle__caption']
506
+ className: styles$1J['toggle__caption']
505
507
  }, caption));
506
508
  };
507
509
 
@@ -521,7 +523,7 @@ var SPINNER_THEMES = {
521
523
  PRIDE: 'pride'
522
524
  };
523
525
 
524
- var styles$1H = {"spinner":"_memxT","rotator":"_QieGp","spinner--block":"_VoFzz","path":"_KSRP9","dash":"_RyBY2","path--mint":"_-sIZJ","path--disabled":"_3fox0","path--contrast":"_VteKz","path--pride":"_7rzsv"};
526
+ var styles$1I = {"spinner":"_memxT","rotator":"_QieGp","spinner--block":"_VoFzz","path":"_KSRP9","dash":"_RyBY2","path--mint":"_-sIZJ","path--disabled":"_3fox0","path--contrast":"_VteKz","path--pride":"_7rzsv"};
525
527
 
526
528
  var Spinner = function Spinner(_ref) {
527
529
  var _classnames;
@@ -534,9 +536,9 @@ var Spinner = function Spinner(_ref) {
534
536
  _ref$testId = _ref.testId,
535
537
  testId = _ref$testId === void 0 ? 'spinner' : _ref$testId;
536
538
  return React__default["default"].createElement("div", {
537
- className: classnames__default["default"]((_classnames = {}, _classnames[styles$1H['spinner--block']] = block, _classnames))
539
+ className: classnames__default["default"]((_classnames = {}, _classnames[styles$1I['spinner--block']] = block, _classnames))
538
540
  }, React__default["default"].createElement("svg", {
539
- className: styles$1H['spinner'],
541
+ className: styles$1I['spinner'],
540
542
  xmlns: "http://www.w3.org/2000/svg",
541
543
  width: size,
542
544
  height: size,
@@ -611,7 +613,7 @@ var Spinner = function Spinner(_ref) {
611
613
  offset: "1",
612
614
  stopColor: "#760088"
613
615
  }))), React__default["default"].createElement("circle", {
614
- className: classnames__default["default"](styles$1H['path'], styles$1H["path--" + theme]),
616
+ className: classnames__default["default"](styles$1I['path'], styles$1I["path--" + theme]),
615
617
  fill: "none",
616
618
  strokeWidth: "6",
617
619
  strokeLinecap: "round",
@@ -621,9 +623,9 @@ var Spinner = function Spinner(_ref) {
621
623
  })));
622
624
  };
623
625
 
624
- var styles$1G = {"tooltip":"_Ydu2O"};
626
+ var styles$1H = {"tooltip":"_Ydu2O"};
625
627
 
626
- var styles$1F = {"tooltip-overlay":"_7fQon","tooltip-overlay--visible":"_a-BND","tooltip-overlay--black-theme":"_UUdng","tooltip-overlay--white-theme":"_brSNX","tooltip-overlay__header":"_uP8x7","tooltip-overlay-arrow":"_MjV6R","tooltip-overlay-arrow--top":"_TQqwB","tooltip-overlay-arrow--bottom":"_pgdKl","tooltip-overlay-arrow--visible":"_Zob-W","tooltip-overlay-arrow--black-theme":"_FXaBf","tooltip-overlay-arrow--white-theme":"_FyPu8"};
628
+ var styles$1G = {"tooltip-overlay":"_7fQon","tooltip-overlay--visible":"_a-BND","tooltip-overlay--black-theme":"_UUdng","tooltip-overlay--white-theme":"_brSNX","tooltip-overlay__header":"_uP8x7","tooltip-overlay-arrow":"_MjV6R","tooltip-overlay-arrow--top":"_TQqwB","tooltip-overlay-arrow--bottom":"_pgdKl","tooltip-overlay-arrow--visible":"_Zob-W","tooltip-overlay-arrow--black-theme":"_FXaBf","tooltip-overlay-arrow--white-theme":"_FyPu8"};
627
629
 
628
630
  var TOOLTIP_THEME = {
629
631
  BLACK: 'black',
@@ -822,15 +824,15 @@ var TooltipOverlay = function TooltipOverlay(_ref) {
822
824
  maxHeight: maxHeight,
823
825
  zIndex: getZIndex('tooltip')
824
826
  }),
825
- className: classnames__default["default"](styles$1F['tooltip-overlay'], extraClass, (_classnames = {}, _classnames[styles$1F['tooltip-overlay--visible']] = isVisible, _classnames[styles$1F['tooltip-overlay--black-theme']] = theme === TOOLTIP_THEME.BLACK, _classnames[styles$1F['tooltip-overlay--white-theme']] = theme === TOOLTIP_THEME.WHITE, _classnames)),
827
+ className: classnames__default["default"](styles$1G['tooltip-overlay'], extraClass, (_classnames = {}, _classnames[styles$1G['tooltip-overlay--visible']] = isVisible, _classnames[styles$1G['tooltip-overlay--black-theme']] = theme === TOOLTIP_THEME.BLACK, _classnames[styles$1G['tooltip-overlay--white-theme']] = theme === TOOLTIP_THEME.WHITE, _classnames)),
826
828
  onMouseEnter: onFocusIn,
827
829
  onMouseLeave: onFocusOut
828
830
  }, React__default["default"].createElement(Stack, {
829
831
  space: 8
830
832
  }, header && React__default["default"].createElement("div", {
831
- className: styles$1F['tooltip-overlay__header']
833
+ className: styles$1G['tooltip-overlay__header']
832
834
  }, header), children)), React__default["default"].createElement("div", {
833
- className: classnames__default["default"](styles$1F['tooltip-overlay-arrow'], extraClass, (_classnames2 = {}, _classnames2[styles$1F['tooltip-overlay-arrow--visible']] = isVisible, _classnames2[styles$1F['tooltip-overlay-arrow--top']] = position.actualPlacement.placement === TOOLTIP_PLACEMENT.TOP, _classnames2[styles$1F['tooltip-overlay-arrow--bottom']] = position.actualPlacement.placement === TOOLTIP_PLACEMENT.BOTTOM, _classnames2[styles$1F['tooltip-overlay-arrow--black-theme']] = theme === TOOLTIP_THEME.BLACK, _classnames2[styles$1F['tooltip-overlay-arrow--white-theme']] = theme === TOOLTIP_THEME.WHITE, _classnames2)),
835
+ className: classnames__default["default"](styles$1G['tooltip-overlay-arrow'], extraClass, (_classnames2 = {}, _classnames2[styles$1G['tooltip-overlay-arrow--visible']] = isVisible, _classnames2[styles$1G['tooltip-overlay-arrow--top']] = position.actualPlacement.placement === TOOLTIP_PLACEMENT.TOP, _classnames2[styles$1G['tooltip-overlay-arrow--bottom']] = position.actualPlacement.placement === TOOLTIP_PLACEMENT.BOTTOM, _classnames2[styles$1G['tooltip-overlay-arrow--black-theme']] = theme === TOOLTIP_THEME.BLACK, _classnames2[styles$1G['tooltip-overlay-arrow--white-theme']] = theme === TOOLTIP_THEME.WHITE, _classnames2)),
834
836
  style: _extends({}, position.arrow, {
835
837
  zIndex: getZIndex('tooltip')
836
838
  }),
@@ -948,7 +950,7 @@ var TooltipElement = function TooltipElement(_ref, forwardedRef) {
948
950
  }), overlayElement);
949
951
  }
950
952
  return React__default["default"].createElement("div", _extends({
951
- className: classnames__default["default"](styles$1G['tooltip'])
953
+ className: classnames__default["default"](styles$1H['tooltip'])
952
954
  }, commonProps, {
953
955
  ref: containerRef
954
956
  }), children, overlayElement);
@@ -961,7 +963,7 @@ var isTooltipCompatible = function isTooltipCompatible(element) {
961
963
  return React__default["default"].isValidElement(element) && typeof element.type === 'string';
962
964
  };
963
965
 
964
- var styles$1E = {"button":"_pgOR3","button--loading":"_2yB9-","button__spinner":"_ppC-S","button--size-min-width-100":"_GtXOQ","button--size-full-width":"_Y-OxO","button--icon-only":"_3EfuT","button--default":"_ICNz7","button--primary":"_XwJWT","button--danger":"_gr3Dh","button--upsell":"_ME8te","button--marketing":"_mI-Dx","button--hollow":"_orywo","button--hollow-contrast":"_obtsl","button--link-contrast":"_00jK4","button--link-primary":"_JPwJ7","button--link-danger":"_9TprN","button--link-upsell":"_tktX-","button--link-toolbar":"_r3SQl","button--link-icon":"_oFBLN","disabled-button-wrapper":"_yTBTz"};
966
+ var styles$1F = {"button":"_pgOR3","button--loading":"_2yB9-","button__spinner":"_ppC-S","button--size-min-width-100":"_GtXOQ","button--size-full-width":"_Y-OxO","button--icon-only":"_3EfuT","button--default":"_ICNz7","button--primary":"_XwJWT","button--danger":"_gr3Dh","button--upsell":"_ME8te","button--marketing":"_mI-Dx","button--hollow":"_orywo","button--hollow-contrast":"_obtsl","button--link-contrast":"_00jK4","button--link-primary":"_JPwJ7","button--link-danger":"_9TprN","button--link-upsell":"_tktX-","button--link-toolbar":"_r3SQl","button--link-icon":"_oFBLN","disabled-button-wrapper":"_yTBTz"};
965
967
 
966
968
  var BUTTON_SIZES = {
967
969
  FULL_WIDTH: 'full-width',
@@ -1056,7 +1058,7 @@ var ButtonComponent = function ButtonComponent(_ref, ref) {
1056
1058
  onBlur: onBlur,
1057
1059
  onFocus: onFocus,
1058
1060
  onKeyDown: onKeyDown,
1059
- className: classnames__default["default"](styles$1E['button'], (_classnames = {}, _classnames[styles$1E['button--default']] = theme === BUTTON_THEMES.DEFAULT, _classnames[styles$1E['button--primary']] = theme === BUTTON_THEMES.PRIMARY, _classnames[styles$1E['button--danger']] = theme === BUTTON_THEMES.DANGER, _classnames[styles$1E['button--upsell']] = theme === BUTTON_THEMES.UPSELL, _classnames[styles$1E['button--marketing']] = theme === BUTTON_THEMES.MARKETING, _classnames[styles$1E['button--hollow']] = theme === BUTTON_THEMES.HOLLOW, _classnames[styles$1E['button--hollow-contrast']] = theme === BUTTON_THEMES.HOLLOW_CONTRAST, _classnames[styles$1E['button--link-primary']] = theme === BUTTON_THEMES.LINK_PRIMARY, _classnames[styles$1E['button--link-danger']] = theme === BUTTON_THEMES.LINK_DANGER, _classnames[styles$1E['button--link-upsell']] = theme === BUTTON_THEMES.LINK_UPSELL, _classnames[styles$1E['button--link-toolbar']] = theme === BUTTON_THEMES.LINK_TOOLBAR, _classnames[styles$1E['button--link-contrast']] = theme === BUTTON_THEMES.LINK_CONTRAST, _classnames[styles$1E['button--link-icon']] = theme === BUTTON_THEMES.LINK_ICON, _classnames[styles$1E['button--loading']] = loading, _classnames[styles$1E['button--icon-only']] = isIconOnly, _classnames[styles$1E['button--size-min-width-100']] = size === BUTTON_SIZES.MIN_WIDTH_100, _classnames[styles$1E['button--size-full-width']] = size === BUTTON_SIZES.FULL_WIDTH, _classnames)),
1061
+ className: classnames__default["default"](styles$1F['button'], (_classnames = {}, _classnames[styles$1F['button--default']] = theme === BUTTON_THEMES.DEFAULT, _classnames[styles$1F['button--primary']] = theme === BUTTON_THEMES.PRIMARY, _classnames[styles$1F['button--danger']] = theme === BUTTON_THEMES.DANGER, _classnames[styles$1F['button--upsell']] = theme === BUTTON_THEMES.UPSELL, _classnames[styles$1F['button--marketing']] = theme === BUTTON_THEMES.MARKETING, _classnames[styles$1F['button--hollow']] = theme === BUTTON_THEMES.HOLLOW, _classnames[styles$1F['button--hollow-contrast']] = theme === BUTTON_THEMES.HOLLOW_CONTRAST, _classnames[styles$1F['button--link-primary']] = theme === BUTTON_THEMES.LINK_PRIMARY, _classnames[styles$1F['button--link-danger']] = theme === BUTTON_THEMES.LINK_DANGER, _classnames[styles$1F['button--link-upsell']] = theme === BUTTON_THEMES.LINK_UPSELL, _classnames[styles$1F['button--link-toolbar']] = theme === BUTTON_THEMES.LINK_TOOLBAR, _classnames[styles$1F['button--link-contrast']] = theme === BUTTON_THEMES.LINK_CONTRAST, _classnames[styles$1F['button--link-icon']] = theme === BUTTON_THEMES.LINK_ICON, _classnames[styles$1F['button--loading']] = loading, _classnames[styles$1F['button--icon-only']] = isIconOnly, _classnames[styles$1F['button--size-min-width-100']] = size === BUTTON_SIZES.MIN_WIDTH_100, _classnames[styles$1F['button--size-full-width']] = size === BUTTON_SIZES.FULL_WIDTH, _classnames)),
1060
1062
  type: type,
1061
1063
  disabled: disabled || loading,
1062
1064
  href: href,
@@ -1069,7 +1071,7 @@ var ButtonComponent = function ButtonComponent(_ref, ref) {
1069
1071
  space: 8,
1070
1072
  alignItems: "center"
1071
1073
  }, children), loading && React__default["default"].createElement("div", {
1072
- className: styles$1E['button__spinner']
1074
+ className: styles$1F['button__spinner']
1073
1075
  }, React__default["default"].createElement(Spinner, {
1074
1076
  theme: contrastSpinner.includes(theme) ? SPINNER_THEMES.CONTRAST : SPINNER_THEMES.DISABLED
1075
1077
  })));
@@ -1079,7 +1081,7 @@ var ButtonComponent = function ButtonComponent(_ref, ref) {
1079
1081
  overlay: title,
1080
1082
  ref: ref
1081
1083
  }, title && disabled ? React__default["default"].createElement("div", {
1082
- className: styles$1E['disabled-button-wrapper']
1084
+ className: styles$1F['disabled-button-wrapper']
1083
1085
  }, ButtonElementResult) : ButtonElementResult)
1084
1086
  );
1085
1087
  };
@@ -10316,9 +10318,9 @@ var IconGreatMonochromatic = React.forwardRef(function (_ref, ref) {
10316
10318
  });
10317
10319
  IconGreatMonochromatic.displayName = 'IconGreatMonochromatic';
10318
10320
 
10319
- var styles$1D = {"pagination-controls":"_S1co-"};
10321
+ var styles$1E = {"pagination-controls":"_S1co-"};
10320
10322
 
10321
- var styles$1C = {"keyboard-key":"_sgd9a","keyboard-key--light":"_8zg4j","keyboard-key__character":"_GAIig"};
10323
+ var styles$1D = {"keyboard-key":"_sgd9a","keyboard-key--light":"_8zg4j","keyboard-key__character":"_GAIig"};
10322
10324
 
10323
10325
  var KeyboardKey = function KeyboardKey(_ref) {
10324
10326
  var _classNames;
@@ -10326,9 +10328,9 @@ var KeyboardKey = function KeyboardKey(_ref) {
10326
10328
  _ref$theme = _ref.theme,
10327
10329
  theme = _ref$theme === void 0 ? 'dark' : _ref$theme;
10328
10330
  return React__default["default"].createElement("span", {
10329
- className: classnames__default["default"](styles$1C['keyboard-key'], (_classNames = {}, _classNames[styles$1C['keyboard-key--light']] = theme === 'light', _classNames))
10331
+ className: classnames__default["default"](styles$1D['keyboard-key'], (_classNames = {}, _classNames[styles$1D['keyboard-key--light']] = theme === 'light', _classNames))
10330
10332
  }, React__default["default"].createElement("span", {
10331
- className: styles$1C['keyboard-key__character']
10333
+ className: styles$1D['keyboard-key__character']
10332
10334
  }, children));
10333
10335
  };
10334
10336
 
@@ -10545,7 +10547,7 @@ var PaginationControls = function PaginationControls(_ref) {
10545
10547
  }
10546
10548
  });
10547
10549
  return React__default["default"].createElement("div", _extends({}, dataProps, {
10548
- className: styles$1D['pagination-controls'],
10550
+ className: styles$1E['pagination-controls'],
10549
10551
  "data-testid": testId
10550
10552
  }), React__default["default"].createElement(Button, {
10551
10553
  disabled: !hasPrevious,
@@ -10575,7 +10577,7 @@ var LINK_TARGET = {
10575
10577
  BLANK: '_blank'
10576
10578
  };
10577
10579
 
10578
- var styles$1B = {"link":"_EiQ4c","link--contrast":"_weJDR"};
10580
+ var styles$1C = {"link":"_EiQ4c","link--contrast":"_weJDR"};
10579
10581
 
10580
10582
  var _excluded$bq = ["href", "target", "theme", "onClick", "children"];
10581
10583
  var Link = function Link(_ref) {
@@ -10592,7 +10594,7 @@ var Link = function Link(_ref) {
10592
10594
  dataProps = _getDataProps.dataProps;
10593
10595
  var ref = React__default["default"].useRef(null);
10594
10596
  return React__default["default"].createElement("a", _extends({}, dataProps, {
10595
- className: classnames__default["default"](styles$1B['link'], (_classNames = {}, _classNames[styles$1B['link--primary']] = theme === LINK_THEME.PRIMARY, _classNames[styles$1B['link--contrast']] = theme === LINK_THEME.CONTRAST, _classNames)),
10597
+ className: classnames__default["default"](styles$1C['link'], (_classNames = {}, _classNames[styles$1C['link--primary']] = theme === LINK_THEME.PRIMARY, _classNames[styles$1C['link--contrast']] = theme === LINK_THEME.CONTRAST, _classNames)),
10596
10598
  href: href,
10597
10599
  target: target,
10598
10600
  onClick: onClick,
@@ -10615,7 +10617,7 @@ var useDropdownContext = function useDropdownContext() {
10615
10617
  return React__default["default"].useContext(DropdownContext);
10616
10618
  };
10617
10619
 
10618
- var styles$1A = {"dropdown-pane":"_sp-pT"};
10620
+ var styles$1B = {"dropdown-pane":"_sp-pT"};
10619
10621
 
10620
10622
  var DROPDOWN_PANE_PADDING = 14;
10621
10623
  var calculateOverlayPosition$1 = function calculateOverlayPosition(triggerPosition, triggerOffsetHeight, panePosition, alignment) {
@@ -10753,7 +10755,7 @@ var PaneOverlay = function PaneOverlay(_ref) {
10753
10755
  useKeyPress(['Escape'], onToggleDropdown);
10754
10756
  var overflow = maxHeight ? 'auto' : undefined;
10755
10757
  return React__default["default"].createElement("div", {
10756
- className: classnames__default["default"](styles$1A['dropdown-pane'], (_classNames = {}, _classNames[styles$1A['dropdown-pane--with-padding']] = true, _classNames['dropdown-pane--custom-width'] = width !== undefined, _classNames)),
10758
+ className: classnames__default["default"](styles$1B['dropdown-pane'], (_classNames = {}, _classNames[styles$1B['dropdown-pane--with-padding']] = true, _classNames['dropdown-pane--custom-width'] = width !== undefined, _classNames)),
10757
10759
  style: _extends({}, position, {
10758
10760
  width: width,
10759
10761
  maxHeight: maxHeight,
@@ -10782,7 +10784,7 @@ var getKeyboardFocusableElements = function getKeyboardFocusableElements(element
10782
10784
  });
10783
10785
  };
10784
10786
 
10785
- var styles$1z = {"dropdown__trigger":"_AktVc"};
10787
+ var styles$1A = {"dropdown__trigger":"_AktVc"};
10786
10788
 
10787
10789
  var DROPDOWN_ALIGNEMNT = {
10788
10790
  LEFT: 'left',
@@ -10793,7 +10795,7 @@ var DROPDOWN_TRIGGER = {
10793
10795
  CLICK: 'click'
10794
10796
  };
10795
10797
 
10796
- var styles$1y = {"label":"_zv4ua","label--truncate":"_FPyID"};
10798
+ var styles$1z = {"label":"_zv4ua","label--truncate":"_FPyID"};
10797
10799
 
10798
10800
  var isEllipsisActive = function isEllipsisActive(e) {
10799
10801
  return e.offsetWidth < e.scrollWidth;
@@ -10846,7 +10848,7 @@ var Label = function Label(_ref) {
10846
10848
  var LabelElement = React__default["default"].createElement("label", {
10847
10849
  htmlFor: htmlFor,
10848
10850
  id: labelId,
10849
- className: classnames__default["default"](styles$1y['label'], (_classNames = {}, _classNames[styles$1y['label--truncate']] = shouldTruncate, _classNames))
10851
+ className: classnames__default["default"](styles$1z['label'], (_classNames = {}, _classNames[styles$1z['label--truncate']] = shouldTruncate, _classNames))
10850
10852
  }, children);
10851
10853
  if (showTooltip) {
10852
10854
  return React__default["default"].createElement(Tooltip, {
@@ -10857,18 +10859,18 @@ var Label = function Label(_ref) {
10857
10859
  return LabelElement;
10858
10860
  };
10859
10861
 
10860
- var styles$1x = {"caption":"_Qrxg5"};
10862
+ var styles$1y = {"caption":"_Qrxg5"};
10861
10863
 
10862
10864
  var Caption = function Caption(_ref) {
10863
10865
  var fieldId = _ref.fieldId,
10864
10866
  children = _ref.children;
10865
10867
  return React__default["default"].createElement("div", {
10866
10868
  id: fieldId && fieldId + "-describer",
10867
- className: styles$1x['caption']
10869
+ className: styles$1y['caption']
10868
10870
  }, children);
10869
10871
  };
10870
10872
 
10871
- var styles$1w = {"error-message":"_eS4YO"};
10873
+ var styles$1x = {"error-message":"_eS4YO"};
10872
10874
 
10873
10875
  var ErrorMessage = function ErrorMessage(_ref) {
10874
10876
  var fieldId = _ref.fieldId,
@@ -10876,7 +10878,7 @@ var ErrorMessage = function ErrorMessage(_ref) {
10876
10878
  testId = _ref.testId;
10877
10879
  return React__default["default"].createElement("div", {
10878
10880
  id: fieldId && fieldId + "-error-message",
10879
- className: styles$1w['error-message'],
10881
+ className: styles$1x['error-message'],
10880
10882
  "data-testid": testId
10881
10883
  }, React__default["default"].createElement(Inline, {
10882
10884
  space: 8,
@@ -10915,7 +10917,7 @@ var ALIGNMENTS = {
10915
10917
  JUSTIFY: 'justify'
10916
10918
  };
10917
10919
 
10918
- var styles$1v = {"text":"_6SgoN","text--bold":"_i2LHD","text__body":"_SF95f","text__caption":"_HHohB","text__insight":"_xdhK0","text__span":"_yZbuO","text__paragraph":"_T91Eo","text__tagline":"_uetB-","text--italic":"_NgSTT","text--underline":"_ouqVK","text--dotted-underline":"_zZ55-","text--monospace":"_Vi-V1","text--line-through":"_psV6T","text--align-left":"_tfSIf","text--align-right":"_AK1Nr","text--align-center":"_N-tR4","text--align-justify":"_LkMr0"};
10920
+ var styles$1w = {"text":"_6SgoN","text--bold":"_i2LHD","text__body":"_SF95f","text__caption":"_HHohB","text__insight":"_xdhK0","text__span":"_yZbuO","text__paragraph":"_T91Eo","text__tagline":"_uetB-","text--italic":"_NgSTT","text--underline":"_ouqVK","text--dotted-underline":"_zZ55-","text--monospace":"_Vi-V1","text--line-through":"_psV6T","text--align-left":"_tfSIf","text--align-right":"_AK1Nr","text--align-center":"_N-tR4","text--align-justify":"_LkMr0"};
10919
10921
 
10920
10922
  var _excluded$bp = ["children", "as", "emphasis", "alignment", "color", "testId", "textWrap"];
10921
10923
  var TextComponent = function TextComponent(_ref, ref) {
@@ -10941,7 +10943,7 @@ var TextComponent = function TextComponent(_ref, ref) {
10941
10943
  color: getColor(color),
10942
10944
  textWrap: textWrap
10943
10945
  }, positionStyles),
10944
- className: classnames__default["default"](styles$1v['text'], (_classnames = {}, _classnames[styles$1v['text--bold']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.BOLD), _classnames[styles$1v['text--italic']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.ITALIC), _classnames[styles$1v['text--underline']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.UNDERLINE), _classnames[styles$1v['text--dotted-underline']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.DOTTED_UNDERLINE), _classnames[styles$1v['text--monospace']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.MONOSPACE), _classnames[styles$1v['text--line-through']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.STRIKETHROUGH), _classnames[styles$1v['text--align-left']] = alignment === ALIGNMENTS.LEFT, _classnames[styles$1v['text--align-right']] = alignment === ALIGNMENTS.RIGHT, _classnames[styles$1v['text--align-center']] = alignment === ALIGNMENTS.CENTER, _classnames[styles$1v['text--align-justify']] = alignment === ALIGNMENTS.JUSTIFY, _classnames[styles$1v['text__body']] = as === TEXT_TYPES.BODY, _classnames[styles$1v['text__insight']] = as === TEXT_TYPES.INSIGHT, _classnames[styles$1v['text__caption']] = as === TEXT_TYPES.CAPTION, _classnames[styles$1v['text__span']] = as === TEXT_TYPES.SPAN, _classnames[styles$1v['text__paragraph']] = as === TEXT_TYPES.PARAGRAPH, _classnames[styles$1v['text__tagline']] = as === TEXT_TYPES.TAGLINE, _classnames)),
10946
+ className: classnames__default["default"](styles$1w['text'], (_classnames = {}, _classnames[styles$1w['text--bold']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.BOLD), _classnames[styles$1w['text--italic']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.ITALIC), _classnames[styles$1w['text--underline']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.UNDERLINE), _classnames[styles$1w['text--dotted-underline']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.DOTTED_UNDERLINE), _classnames[styles$1w['text--monospace']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.MONOSPACE), _classnames[styles$1w['text--line-through']] = emphasis == null ? void 0 : emphasis.includes(FONT_EMPHASIS.STRIKETHROUGH), _classnames[styles$1w['text--align-left']] = alignment === ALIGNMENTS.LEFT, _classnames[styles$1w['text--align-right']] = alignment === ALIGNMENTS.RIGHT, _classnames[styles$1w['text--align-center']] = alignment === ALIGNMENTS.CENTER, _classnames[styles$1w['text--align-justify']] = alignment === ALIGNMENTS.JUSTIFY, _classnames[styles$1w['text__body']] = as === TEXT_TYPES.BODY, _classnames[styles$1w['text__insight']] = as === TEXT_TYPES.INSIGHT, _classnames[styles$1w['text__caption']] = as === TEXT_TYPES.CAPTION, _classnames[styles$1w['text__span']] = as === TEXT_TYPES.SPAN, _classnames[styles$1w['text__paragraph']] = as === TEXT_TYPES.PARAGRAPH, _classnames[styles$1w['text__tagline']] = as === TEXT_TYPES.TAGLINE, _classnames)),
10945
10947
  'data-testid': testId
10946
10948
  }, dataProps, other, {
10947
10949
  ref: ref
@@ -10956,21 +10958,21 @@ var Text = React.forwardRef(TextComponent);
10956
10958
  var Bold = function Bold(_ref) {
10957
10959
  var children = _ref.children;
10958
10960
  return React__default["default"].createElement("span", {
10959
- className: classnames__default["default"](styles$1v['text--bold'], styles$1v['text'])
10961
+ className: classnames__default["default"](styles$1w['text--bold'], styles$1w['text'])
10960
10962
  }, children);
10961
10963
  };
10962
10964
 
10963
10965
  var Underline = function Underline(_ref) {
10964
10966
  var children = _ref.children;
10965
10967
  return React__default["default"].createElement("span", {
10966
- className: classnames__default["default"](styles$1v['text--underline'], styles$1v['text'])
10968
+ className: classnames__default["default"](styles$1w['text--underline'], styles$1w['text'])
10967
10969
  }, children);
10968
10970
  };
10969
10971
 
10970
10972
  var Italic = function Italic(_ref) {
10971
10973
  var children = _ref.children;
10972
10974
  return React__default["default"].createElement("span", {
10973
- className: classnames__default["default"](styles$1v['text--italic'], styles$1v['text'])
10975
+ className: classnames__default["default"](styles$1w['text--italic'], styles$1w['text'])
10974
10976
  }, children);
10975
10977
  };
10976
10978
 
@@ -11119,7 +11121,7 @@ var useFieldControllers = function useFieldControllers(_ref) {
11119
11121
  return controllers;
11120
11122
  };
11121
11123
 
11122
- var styles$1u = {"text-field":"_G6LsE","text-field--invalid":"_2ZYtt","text-field--prefixed":"_rWp7H","text-field--suffixed":"_Xq8xX"};
11124
+ var styles$1v = {"text-field":"_G6LsE","text-field--invalid":"_2ZYtt","text-field--prefixed":"_rWp7H","text-field--suffixed":"_Xq8xX"};
11123
11125
 
11124
11126
  var _excluded$bn = ["autoComplete", "autoFocus", "defaultValue", "disabled", "error", "id", "maxLength", "name", "caption", "label", "onBlur", "onChange", "onFocus", "onKeyDown", "placeholder", "value", "ref", "testId"];
11125
11127
  var useTextField = function useTextField(_ref) {
@@ -11159,7 +11161,7 @@ var useTextField = function useTextField(_ref) {
11159
11161
  'aria-invalid': hasError,
11160
11162
  autoComplete: autoComplete,
11161
11163
  autoFocus: autoFocus,
11162
- className: classnames__default["default"](styles$1u['text-field'], (_classnames = {}, _classnames[styles$1u['text-field--invalid']] = hasError, _classnames)),
11164
+ className: classnames__default["default"](styles$1v['text-field'], (_classnames = {}, _classnames[styles$1v['text-field--invalid']] = hasError, _classnames)),
11163
11165
  'data-testid': testId,
11164
11166
  disabled: disabled,
11165
11167
  defaultValue: defaultValue,
@@ -11189,7 +11191,7 @@ var useTextField = function useTextField(_ref) {
11189
11191
  };
11190
11192
  };
11191
11193
 
11192
- var styles$1t = {"affix-container":"_F8QOB","prefix":"_yPPIy","suffix":"_Y3yFd","affix-container--prefixed":"_vU4SU","affix-container--suffixed":"_4rDXi"};
11194
+ var styles$1u = {"affix-container":"_F8QOB","prefix":"_yPPIy","suffix":"_Y3yFd","affix-container--prefixed":"_vU4SU","affix-container--suffixed":"_4rDXi"};
11193
11195
 
11194
11196
  var AffixContainer = function AffixContainer(_ref) {
11195
11197
  var _classnames;
@@ -11224,16 +11226,16 @@ var AffixContainer = function AffixContainer(_ref) {
11224
11226
  if (!hasPrefix && !hasSuffix) {
11225
11227
  return children;
11226
11228
  }
11227
- var classes = classnames__default["default"](styles$1t['affix-container'], (_classnames = {}, _classnames[styles$1t['affix-container--prefixed']] = hasPrefix, _classnames[styles$1t['affix-container--suffixed']] = hasSuffix, _classnames));
11229
+ var classes = classnames__default["default"](styles$1u['affix-container'], (_classnames = {}, _classnames[styles$1u['affix-container--prefixed']] = hasPrefix, _classnames[styles$1u['affix-container--suffixed']] = hasSuffix, _classnames));
11228
11230
  return React__default["default"].createElement("div", {
11229
11231
  className: classes,
11230
11232
  ref: container,
11231
11233
  "data-testid": testId
11232
11234
  }, hasPrefix && React__default["default"].createElement("div", {
11233
- className: styles$1t['prefix'],
11235
+ className: styles$1u['prefix'],
11234
11236
  ref: prefixElement
11235
11237
  }, prefix), children, hasSuffix && React__default["default"].createElement("div", {
11236
- className: styles$1t['suffix'],
11238
+ className: styles$1u['suffix'],
11237
11239
  ref: suffixElement
11238
11240
  }, suffix));
11239
11241
  };
@@ -11447,7 +11449,7 @@ var Dropdown = function Dropdown(_ref) {
11447
11449
  paneRef: paneRef
11448
11450
  }
11449
11451
  }, triggerIsKnownButton ? React__default["default"].cloneElement(trigger, _extends({}, trigger.props, triggerProps)) : React__default["default"].createElement("button", _extends({}, triggerProps, {
11450
- className: styles$1z['dropdown__trigger'],
11452
+ className: styles$1A['dropdown__trigger'],
11451
11453
  ref: updatedRef,
11452
11454
  onFocus: handleFocus
11453
11455
  }), trigger), React__default["default"].createElement(DropdownPane, {
@@ -11461,7 +11463,7 @@ var Dropdown = function Dropdown(_ref) {
11461
11463
  }, children));
11462
11464
  };
11463
11465
 
11464
- var styles$1s = {"dropdown-list":"_91hvH","dropdown-list__item":"_NrB4V","dropdown-list__item--hover":"_aMs9c"};
11466
+ var styles$1t = {"dropdown-list":"_91hvH","dropdown-list__item":"_NrB4V","dropdown-list__item--hover":"_aMs9c"};
11465
11467
 
11466
11468
  var findNextActiveIndex = function findNextActiveIndex(items, startAt) {
11467
11469
  var startIndex = 0;
@@ -11626,16 +11628,33 @@ var updateIconSize = function updateIconSize(child) {
11626
11628
  }));
11627
11629
  };
11628
11630
 
11629
- var styles$1r = {"dropdown-list-divider":"_ISJ4M"};
11631
+ var styles$1s = {"dropdown-list-divider":"_ISJ4M"};
11630
11632
 
11631
- var DropdownListDivider = function DropdownListDivider(_ref) {
11633
+ var styles$1r = {"dropdown-list-divider-line":"_GlMQ1"};
11634
+
11635
+ var DropdownListDividerLine = function DropdownListDividerLine(_ref) {
11632
11636
  var testId = _ref.testId;
11633
11637
  return React__default["default"].createElement("div", {
11634
- className: styles$1r['dropdown-list-divider'],
11638
+ className: styles$1r['dropdown-list-divider-line'],
11635
11639
  "data-testid": testId
11636
11640
  });
11637
11641
  };
11638
11642
 
11643
+ var DropdownListDivider = function DropdownListDivider(_ref) {
11644
+ var testId = _ref.testId,
11645
+ children = _ref.children,
11646
+ line = _ref.line;
11647
+ if (!children) {
11648
+ return React__default["default"].createElement(DropdownListDividerLine, {
11649
+ testId: testId
11650
+ });
11651
+ }
11652
+ return React__default["default"].createElement(React.Fragment, null, (line === 'top' || line === 'both') && React__default["default"].createElement(DropdownListDividerLine, null), React__default["default"].createElement("div", {
11653
+ className: classnames__default["default"](styles$1s['dropdown-list-divider']),
11654
+ "data-testid": testId
11655
+ }, children), (line === 'bottom' || line === 'both') && React__default["default"].createElement(DropdownListDividerLine, null));
11656
+ };
11657
+
11639
11658
  var styles$1q = {"dropdown-list-item":"_W12mF","dropdown-list-item--selected":"_Zu9cD","dropdown-list-item__content":"_xS6fS","dropdown-list-item__caption":"_7EI7m","dropdown-list-item--disabled":"_0OB5b","dropdown-list-item__prefix":"_dpo67","dropdown-list-item__suffix":"_ObP6B","dropdown-list-item__container":"_IBrNj","dropdown-list-item__link":"_vC0uY","dropdown-list-item__suffix-spot":"_UA23u","dropdown-list-item__suffix-button":"_rvaeI"};
11640
11659
 
11641
11660
  var styles$1p = {"dropdown-submenu":"_X4fIx"};
@@ -12046,7 +12065,7 @@ var DropdownList = function DropdownList(_ref) {
12046
12065
  // eslint-disable-next-line react-hooks/exhaustive-deps
12047
12066
  }, [highlightItemIndex]);
12048
12067
  return React__default["default"].createElement("ul", {
12049
- className: styles$1s['dropdown-list'],
12068
+ className: styles$1t['dropdown-list'],
12050
12069
  "data-testid": testId,
12051
12070
  ref: listRef
12052
12071
  }, React__default["default"].Children.toArray(children).filter(Boolean).map(function (child, index) {
@@ -12058,7 +12077,7 @@ var DropdownList = function DropdownList(_ref) {
12058
12077
  var divider = (_items$index2 = items[index]) == null ? void 0 : _items$index2.divider;
12059
12078
  return React__default["default"].createElement("li", {
12060
12079
  key: index,
12061
- className: classnames__default["default"](styles$1s['dropdown-list__item'], (_classNames = {}, _classNames[styles$1s['dropdown-list__item--hover']] = focusedItem === index && isInteractive, _classNames)),
12080
+ className: classnames__default["default"](styles$1t['dropdown-list__item'], (_classNames = {}, _classNames[styles$1t['dropdown-list__item--hover']] = focusedItem === index && isInteractive, _classNames)),
12062
12081
  onMouseEnter: divider ? undefined : function () {
12063
12082
  return setFocusOnItem(index);
12064
12083
  },
@@ -12306,7 +12325,7 @@ var styles$1i = {"menu-item":"_SebbU","menu-item--active":"_CDEVl","menu-item--w
12306
12325
 
12307
12326
  var styles$1h = {"badge":"_RXV4h","badge--warning":"_2An1I","badge--danger":"_-Bw8L","badge--success":"_RxlMz","badge--info":"_dzCH-","badge--numeric":"_Ix9tP"};
12308
12327
 
12309
- var styles$1g = {"overlay":"_0yTe8","overlay--after-open":"_yJBtA","overlay--before-close":"_iWogn","content":"_ntozd","content--after-open":"_EQjDq","content--before-close":"_ZTY3B"};
12328
+ var styles$1g = {"overlay":"_0yTe8","overlay--after-open":"_yJBtA","overlay--before-close":"_iWogn","content":"_ntozd","content--after-open":"_EQjDq","content--before-close":"_ZTY3B","overlay--draggable":"_6SSP8","content--draggable":"_5rHXj","draggable-inner":"_cq2CU"};
12310
12329
 
12311
12330
  var styles$1f = {"header":"_tgpG9","header__close-button":"_b1dgU","sub-header":"_c2nm4"};
12312
12331
 
@@ -12344,14 +12363,108 @@ var ModalHeader = function ModalHeader(_ref) {
12344
12363
  };
12345
12364
 
12346
12365
  var ModalContext = React.createContext({
12347
- isModalMounted: false
12366
+ isModalMounted: false,
12367
+ draggable: false
12348
12368
  });
12349
12369
  var useModalContext = function useModalContext() {
12350
12370
  var context = React.useContext(ModalContext);
12351
12371
  return context || {};
12352
12372
  };
12353
12373
 
12354
- var _excluded$bk = ["children", "header", "subHeader", "onClose", "loading", "zIndex", "rootElementId", "width", "height", "maxWidth", "shouldReturnFocusAfterClose", "testId"];
12374
+ var DEFAULT_WIDTH = 566;
12375
+ var DEFAULT_HEIGHT = 266;
12376
+ /**
12377
+ * Encapsulates the ref, initial positioning, and viewport-aware bounds for a
12378
+ * draggable modal. Pass the returned values to <Draggable> and the ReactModal
12379
+ * style.content object.
12380
+ *
12381
+ * Bounds are expressed as pixel offsets from the element's rendered position
12382
+ * (react-draggable v4.7+ no longer accepts "window" as a string shorthand).
12383
+ *
12384
+ * Initial bounds are estimated from the numeric width/height props (falling
12385
+ * back to the CSS min-width/min-height defaults). After mount, the element is
12386
+ * measured and bounds are corrected to the actual rendered dimensions so the
12387
+ * modal cannot be dragged outside the viewport even when width/height are CSS
12388
+ * strings or the content exceeds the fallback height.
12389
+ */
12390
+ function useDraggableModal(_ref) {
12391
+ var _initialPosition$top, _initialPosition$left;
12392
+ var width = _ref.width,
12393
+ height = _ref.height,
12394
+ initialPosition = _ref.initialPosition;
12395
+ var nodeRef = React.useRef(null);
12396
+ var resolvedWidth = typeof width === 'number' ? width : DEFAULT_WIDTH;
12397
+ var resolvedHeight = typeof height === 'number' ? height : DEFAULT_HEIGHT;
12398
+ // Initialise from resolved props; corrected after mount with real pixel dimensions.
12399
+ var _useState = React.useState(resolvedWidth),
12400
+ measuredWidth = _useState[0],
12401
+ setMeasuredWidth = _useState[1];
12402
+ var _useState2 = React.useState(resolvedHeight),
12403
+ measuredHeight = _useState2[0],
12404
+ setMeasuredHeight = _useState2[1];
12405
+ // Track the DOM node via state so the measurement effect can depend on it.
12406
+ // A plain useEffect([], []) misses two cases: (a) the node mounting later
12407
+ // because `draggable` was false on first render, and (b) the element
12408
+ // resizing after mount due to dynamic content.
12409
+ var _useState3 = React.useState(null),
12410
+ node = _useState3[0],
12411
+ setNode = _useState3[1];
12412
+ // callbackRef: pass as the inner div's `ref`. It keeps nodeRef.current in
12413
+ // sync for react-draggable and triggers the measurement effect whenever the
12414
+ // element mounts or unmounts.
12415
+ var callbackRef = React.useCallback(function (el) {
12416
+ nodeRef.current = el;
12417
+ setNode(el);
12418
+ }, []);
12419
+ React.useEffect(function () {
12420
+ if (!node) return;
12421
+ var measure = function measure() {
12422
+ var w = node.offsetWidth;
12423
+ var h = node.offsetHeight;
12424
+ // offsetWidth/offsetHeight are 0 in SSR/jsdom — keep fallback values.
12425
+ if (w === 0) return;
12426
+ setMeasuredWidth(w);
12427
+ setMeasuredHeight(h);
12428
+ };
12429
+ measure(); // initial measurement when node first becomes available
12430
+ // ResizeObserver keeps bounds accurate as content grows or shrinks.
12431
+ if (typeof ResizeObserver === 'undefined') return;
12432
+ var observer = new ResizeObserver(measure);
12433
+ observer.observe(node);
12434
+ return function () {
12435
+ return observer.disconnect();
12436
+ };
12437
+ }, [node]);
12438
+ var top = (_initialPosition$top = initialPosition == null ? void 0 : initialPosition.top) != null ? _initialPosition$top : typeof window !== 'undefined' ? Math.round(window.innerHeight * 0.25) : 0;
12439
+ var left = (_initialPosition$left = initialPosition == null ? void 0 : initialPosition.left) != null ? _initialPosition$left : typeof window !== 'undefined' ? Math.round((window.innerWidth - resolvedWidth) / 2) : 0;
12440
+ var bounds = typeof window !== 'undefined' ? {
12441
+ left: -left,
12442
+ top: -top,
12443
+ right: window.innerWidth - left - measuredWidth,
12444
+ bottom: window.innerHeight - top - measuredHeight
12445
+ } : {
12446
+ left: 0,
12447
+ top: 0,
12448
+ right: 9999,
12449
+ bottom: 9999
12450
+ };
12451
+ return {
12452
+ nodeRef: nodeRef,
12453
+ callbackRef: callbackRef,
12454
+ contentPosition: {
12455
+ top: top,
12456
+ left: left
12457
+ },
12458
+ bounds: bounds
12459
+ };
12460
+ }
12461
+
12462
+ var _excluded$bk = ["children", "header", "subHeader", "onClose", "loading", "zIndex", "rootElementId", "width", "height", "maxWidth", "shouldReturnFocusAfterClose", "testId", "draggable", "initialPosition"];
12463
+ // react-draggable declares `props: DraggableProps` on the class instance, overriding
12464
+ // the `React.Component<Partial<DraggableProps>>` generic. This cast restores the
12465
+ // intended partial-props behaviour for JSX usage.
12466
+ var Draggable = DraggableLib__default["default"];
12467
+ var DRAG_HANDLE_CLASS = 'modal-drag-handle';
12355
12468
  /**
12356
12469
  * Modal is a focused overlay that interrupts the current experience and demands the user's attention. It blocks all interaction with the rest of the page until the user responds — making it best suited for decisions, confirmations, and self-contained flows where that level of focus is warranted.
12357
12470
  */
@@ -12371,22 +12484,60 @@ var Modal = function Modal(_ref) {
12371
12484
  _ref$shouldReturnFocu = _ref.shouldReturnFocusAfterClose,
12372
12485
  shouldReturnFocusAfterClose = _ref$shouldReturnFocu === void 0 ? true : _ref$shouldReturnFocu,
12373
12486
  testId = _ref.testId,
12487
+ _ref$draggable = _ref.draggable,
12488
+ draggable = _ref$draggable === void 0 ? false : _ref$draggable,
12489
+ initialPosition = _ref.initialPosition,
12374
12490
  otherProps = _objectWithoutPropertiesLoose(_ref, _excluded$bk);
12491
+ var _useDraggableModal = useDraggableModal({
12492
+ width: width,
12493
+ height: height,
12494
+ initialPosition: initialPosition
12495
+ }),
12496
+ draggableNodeRef = _useDraggableModal.nodeRef,
12497
+ draggableCallbackRef = _useDraggableModal.callbackRef,
12498
+ contentPosition = _useDraggableModal.contentPosition,
12499
+ draggableBounds = _useDraggableModal.bounds;
12375
12500
  var style = {
12376
- content: {
12501
+ // When draggable, top/left position the fixed content div directly so
12502
+ // react-draggable can measure the element's real viewport position for bounds.
12503
+ content: draggable ? _extends({}, contentPosition, {
12504
+ width: width,
12505
+ height: height,
12506
+ maxWidth: maxWidth
12507
+ }) : {
12377
12508
  width: width,
12378
12509
  height: height,
12379
12510
  maxWidth: maxWidth
12380
12511
  },
12381
- overlay: {
12512
+ overlay: _extends({
12382
12513
  zIndex: getZIndex(zIndex)
12383
- }
12514
+ }, draggable && {
12515
+ pointerEvents: 'none'
12516
+ })
12384
12517
  };
12385
12518
  // The `ReactModal` library already adds the `data-*` preffix, so I need to remove it from the `getDataProps`
12386
12519
  var _getDataProps = getDataProps(otherProps, {
12387
12520
  removeDataPrefix: true
12388
12521
  }),
12389
12522
  dataProps = _getDataProps.dataProps;
12523
+ var modalContent = React__default["default"].createElement(React.Fragment, null, draggable ? React__default["default"].createElement("div", {
12524
+ className: DRAG_HANDLE_CLASS
12525
+ }, React__default["default"].createElement(ModalHeader, {
12526
+ header: header,
12527
+ subHeader: subHeader,
12528
+ onClose: onClose,
12529
+ loading: loading
12530
+ })) : React__default["default"].createElement(ModalHeader, {
12531
+ header: header,
12532
+ subHeader: subHeader,
12533
+ onClose: onClose,
12534
+ loading: loading
12535
+ }), React__default["default"].createElement(ModalContext.Provider, {
12536
+ value: {
12537
+ isModalMounted: true,
12538
+ draggable: draggable
12539
+ }
12540
+ }, children));
12390
12541
  return React__default["default"].createElement(ReactModal__default["default"], {
12391
12542
  isOpen: true,
12392
12543
  testId: testId,
@@ -12399,26 +12550,29 @@ var Modal = function Modal(_ref) {
12399
12550
  contentLabel: "Modal",
12400
12551
  appElement: rootElementId && document.getElementById(rootElementId) || undefined,
12401
12552
  overlayClassName: {
12402
- base: styles$1g['overlay'],
12553
+ base: classnames__default["default"](styles$1g['overlay'], draggable && styles$1g['overlay--draggable']),
12403
12554
  afterOpen: styles$1g['overlay--after-open'],
12404
12555
  beforeClose: styles$1g['overlay--before-close']
12405
12556
  },
12406
12557
  className: {
12407
- base: styles$1g['content'],
12558
+ base: classnames__default["default"](styles$1g['content'], draggable && styles$1g['content--draggable']),
12408
12559
  afterOpen: styles$1g['content--after-open'],
12409
12560
  beforeClose: styles$1g['content--before-close']
12410
12561
  },
12411
12562
  data: dataProps
12412
- }, React__default["default"].createElement(ModalHeader, {
12413
- header: header,
12414
- subHeader: subHeader,
12415
- onClose: onClose,
12416
- loading: loading
12417
- }), React__default["default"].createElement(ModalContext.Provider, {
12418
- value: {
12419
- isModalMounted: true
12563
+ }, draggable ? React__default["default"].createElement(Draggable, {
12564
+ nodeRef: draggableNodeRef,
12565
+ handle: "." + DRAG_HANDLE_CLASS,
12566
+ bounds: draggableBounds
12567
+ }, React__default["default"].createElement("div", {
12568
+ ref: draggableCallbackRef,
12569
+ className: styles$1g['draggable-inner'],
12570
+ style: {
12571
+ width: width,
12572
+ height: height,
12573
+ maxWidth: maxWidth
12420
12574
  }
12421
- }, children));
12575
+ }, modalContent)) : modalContent);
12422
12576
  };
12423
12577
  // The user can set the main app root id so when the modal is open it only allows iteracting with the modal when pressing tab
12424
12578
  Modal.setAppElement = function (rootElement) {
@@ -13227,7 +13381,7 @@ var useLocalStorage = function useLocalStorage(key, initialValue) {
13227
13381
 
13228
13382
  var styles$18 = {"hint-modal":"_NwD6V","hint-modal--after-open":"_4ofZb","hint-modal--before-close":"_hGoMD","hint-modal__overlay":"_iK5zl","hint-modal__image":"_V9hLa","hint-modal__body":"_oOqUg","hint-modal__close-button":"_5zcBK"};
13229
13383
 
13230
- var _excluded$bi = ["header", "children", "mediaUrl", "onClose", "modalId", "primaryButton", "secondaryButton", "testId", "onSetDoNotShowAgainStatus"];
13384
+ var _excluded$bi = ["header", "children", "mediaUrl", "onClose", "modalId", "primaryButton", "secondaryButton", "testId", "onSetDoNotShowAgainStatus", "hideDoNotShowAgainCheckbox"];
13231
13385
  /**
13232
13386
  * Hint Modal is a lightweight modal used to surface tips, guidance, or onboarding callouts to users the first time they encounter a feature or page. Unlike a regular Modal, it is not triggered by a user action — it appears automatically when the user navigates somewhere that warrants a guided introduction. It includes a "Don't show this again" option so users can dismiss it permanently once they've absorbed the information.
13233
13387
  */
@@ -13241,6 +13395,8 @@ var HintModal = function HintModal(_ref) {
13241
13395
  secondaryButton = _ref.secondaryButton,
13242
13396
  testId = _ref.testId,
13243
13397
  onSetDoNotShowAgainStatus = _ref.onSetDoNotShowAgainStatus,
13398
+ _ref$hideDoNotShowAga = _ref.hideDoNotShowAgainCheckbox,
13399
+ hideDoNotShowAgainCheckbox = _ref$hideDoNotShowAga === void 0 ? false : _ref$hideDoNotShowAga,
13244
13400
  positionProps = _objectWithoutPropertiesLoose(_ref, _excluded$bi);
13245
13401
  var __ = useTranslation('HintModal');
13246
13402
  var _useState = React.useState(false),
@@ -13250,6 +13406,11 @@ var HintModal = function HintModal(_ref) {
13250
13406
  persistedDoNotShow = _useLocalStorage[0],
13251
13407
  setPersistedDoNotShow = _useLocalStorage[1];
13252
13408
  var persistDoNotShowAgain = function persistDoNotShowAgain(value) {
13409
+ // Without the checkbox the user was never offered the choice, so there
13410
+ // is no preference to store or report.
13411
+ if (hideDoNotShowAgainCheckbox) {
13412
+ return;
13413
+ }
13253
13414
  setPersistedDoNotShow(value);
13254
13415
  if (onSetDoNotShowAgainStatus) {
13255
13416
  onSetDoNotShowAgainStatus(value);
@@ -13317,7 +13478,7 @@ var HintModal = function HintModal(_ref) {
13317
13478
  as: "h3"
13318
13479
  }, header), React__default["default"].createElement(Text, null, children)), React__default["default"].createElement(Stack, {
13319
13480
  space: 32
13320
- }, React__default["default"].createElement(CheckboxField, {
13481
+ }, !hideDoNotShowAgainCheckbox && React__default["default"].createElement(CheckboxField, {
13321
13482
  name: "hint-modal-do-not-show-checkbox",
13322
13483
  checked: doNotShowAgain,
13323
13484
  label: __('dontShowAgainLabel'),
@@ -13342,6 +13503,37 @@ var Popover = function Popover(props) {
13342
13503
  return React__default["default"].createElement(Dropdown, _extends({}, props));
13343
13504
  };
13344
13505
 
13506
+ /**
13507
+ * Returns the current modal position and an updater that centers the modal on
13508
+ * the provided mouse event's coordinates, clamped to a 20px viewport margin.
13509
+ * Useful when opening a draggable Modal relative to a user click.
13510
+ */
13511
+ var useModalPosition = function useModalPosition(modalWidth, modalHeight) {
13512
+ if (modalWidth === void 0) {
13513
+ modalWidth = 566;
13514
+ }
13515
+ if (modalHeight === void 0) {
13516
+ modalHeight = 360;
13517
+ }
13518
+ var _useState = React.useState(undefined),
13519
+ position = _useState[0],
13520
+ setPosition = _useState[1];
13521
+ var updatePosition = React.useCallback(function (event) {
13522
+ var MARGIN = 20;
13523
+ var windowWidth = window.innerWidth;
13524
+ var windowHeight = window.innerHeight;
13525
+ var left = event.clientX - modalWidth / 2;
13526
+ var top = event.clientY - modalHeight / 2;
13527
+ if (left + modalWidth > windowWidth) left = Math.max(MARGIN, windowWidth - modalWidth - MARGIN);else if (left < 0) left = MARGIN;
13528
+ if (top + modalHeight > windowHeight) top = Math.max(MARGIN, windowHeight - modalHeight - MARGIN);else if (top < 0) top = MARGIN;
13529
+ setPosition({
13530
+ top: top,
13531
+ left: left
13532
+ });
13533
+ }, [modalWidth, modalHeight]);
13534
+ return [position, updatePosition];
13535
+ };
13536
+
13345
13537
  var _excluded$bh = ["children", "theme", "title", "testId"];
13346
13538
  var BadgeElement = function BadgeElement(_ref, forwardedRef) {
13347
13539
  var _classnames;
@@ -14171,7 +14363,7 @@ var PersistentBanner = function PersistentBanner(_ref) {
14171
14363
  flex: [1],
14172
14364
  alignItems: "center"
14173
14365
  }, React__default["default"].createElement(BannerContent, null), React__default["default"].createElement(Button, {
14174
- theme: theme === PERSISTENT_BANNER_THEME.WARNING ? 'link-primary' : 'link-contrast',
14366
+ theme: "link-contrast",
14175
14367
  onClick: onDismiss
14176
14368
  }, React__default["default"].createElement(IconTimes, null))) : React__default["default"].createElement(BannerContent, null));
14177
14369
  };
@@ -15653,7 +15845,7 @@ var CreateInputForm = function CreateInputForm(_ref) {
15653
15845
  flex: [1],
15654
15846
  flexItems: true
15655
15847
  }, React__default["default"].createElement("input", {
15656
- className: classnames__default["default"](styles$1u['text-field'], inputClassName),
15848
+ className: classnames__default["default"](styles$1v['text-field'], inputClassName),
15657
15849
  autoCorrect: "off",
15658
15850
  autoComplete: "off",
15659
15851
  spellCheck: "false",
@@ -18872,7 +19064,7 @@ var usePhoneField = function usePhoneField(_ref) {
18872
19064
  'aria-describedby': hasError ? controllers.id + "-error-message" : controllers.id + "-describer",
18873
19065
  'aria-invalid': hasError,
18874
19066
  autoFocus: autoFocus,
18875
- className: classnames__default["default"](styles$1u['text-field'], (_classnames = {}, _classnames[styles$1u['text-field--invalid']] = hasError, _classnames)),
19067
+ className: classnames__default["default"](styles$1v['text-field'], (_classnames = {}, _classnames[styles$1v['text-field--invalid']] = hasError, _classnames)),
18876
19068
  'data-testid': testId,
18877
19069
  disabled: disabled,
18878
19070
  id: controllers.id,
@@ -65519,4 +65711,5 @@ exports.lastOfMonth = lastOfMonth;
65519
65711
  exports.nthWeekdayOfMonth = nthWeekdayOfMonth;
65520
65712
  exports.toast = toast;
65521
65713
  exports.useDataTableContext = useDataTableContext;
65714
+ exports.useModalPosition = useModalPosition;
65522
65715
  //# sourceMappingURL=index.js.map