@zextras/carbonio-design-system 2.3.0 → 3.0.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.
@@ -7009,6 +7009,27 @@ const Spinner = /*#__PURE__*/React__namespace.default.forwardRef(function Spinne
7009
7009
  }, rest));
7010
7010
  });
7011
7011
 
7012
+ /**
7013
+ * This method returns `undefined`.
7014
+ *
7015
+ * @static
7016
+ * @memberOf _
7017
+ * @since 2.3.0
7018
+ * @category Util
7019
+ * @example
7020
+ *
7021
+ * _.times(2, _.noop);
7022
+ * // => [undefined, undefined]
7023
+ */
7024
+
7025
+ function noop$1() {
7026
+ // No operation performed.
7027
+ }
7028
+
7029
+ var noop_1 = noop$1;
7030
+
7031
+ var _noop = /*@__PURE__*/getDefaultExportFromCjs(noop_1);
7032
+
7012
7033
  /**
7013
7034
  * A specialized version of `_.forEach` for arrays without support for
7014
7035
  * iteratee shorthands.
@@ -7173,178 +7194,178 @@ var _map = /*@__PURE__*/getDefaultExportFromCjs(map_1);
7173
7194
 
7174
7195
  function getFocusableElement(focusedElement, direction) {
7175
7196
  const siblingElement = focusedElement[direction];
7176
- if (!siblingElement) {
7197
+ if (!(siblingElement instanceof HTMLElement)) {
7177
7198
  return null;
7178
7199
  }
7179
7200
  if (siblingElement.tabIndex >= 0) {
7180
- return focusedElement[direction];
7201
+ return siblingElement;
7181
7202
  }
7182
7203
  return getFocusableElement(siblingElement, direction);
7183
7204
  }
7184
- function getKeyboardPreset(type, callback) {
7185
- let ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
7186
- let keys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
7187
- let modifier = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
7188
- function handleArrowUp() {
7189
- if (ref?.current) {
7190
- const focusedElement = ref.current.querySelector('[tabindex]:focus');
7191
- if (focusedElement) {
7192
- const prevEl = getFocusableElement(focusedElement, 'previousElementSibling');
7193
- if (prevEl) {
7194
- prevEl.focus();
7195
- } else {
7196
- const lastChild = ref.current.querySelector('[tabindex]:last-child');
7197
- lastChild && lastChild.focus();
7198
- }
7205
+ function handleArrowUp(ref) {
7206
+ if (ref?.current) {
7207
+ const focusedElement = ref.current.querySelector('[tabindex]:focus');
7208
+ if (focusedElement) {
7209
+ const prevEl = getFocusableElement(focusedElement, 'previousElementSibling');
7210
+ if (prevEl) {
7211
+ prevEl.focus();
7199
7212
  } else {
7200
- const firstChild = ref.current.querySelector('[tabindex]:first-child');
7201
- firstChild && firstChild.focus();
7213
+ const lastChild = ref.current.querySelector('[tabindex]:last-child');
7214
+ lastChild && lastChild.focus();
7202
7215
  }
7216
+ } else {
7217
+ const firstChild = ref.current.querySelector('[tabindex]:first-child');
7218
+ firstChild && firstChild.focus();
7203
7219
  }
7204
7220
  }
7205
- function handleArrowDown() {
7206
- if (ref?.current) {
7207
- const focusedElement = ref.current.querySelector('[tabindex]:focus');
7208
- if (focusedElement) {
7209
- const nextEl = getFocusableElement(focusedElement, 'nextElementSibling');
7210
- if (nextEl) {
7211
- nextEl.focus();
7212
- } else {
7213
- const firstChild = ref.current.querySelector('[tabindex]:first-child');
7214
- firstChild && firstChild.focus();
7215
- }
7221
+ }
7222
+ function handleArrowDown(ref) {
7223
+ if (ref?.current) {
7224
+ const focusedElement = ref.current.querySelector('[tabindex]:focus');
7225
+ if (focusedElement) {
7226
+ const nextEl = getFocusableElement(focusedElement, 'nextElementSibling');
7227
+ if (nextEl) {
7228
+ nextEl.focus();
7216
7229
  } else {
7217
7230
  const firstChild = ref.current.querySelector('[tabindex]:first-child');
7218
7231
  firstChild && firstChild.focus();
7219
7232
  }
7233
+ } else {
7234
+ const firstChild = ref.current.querySelector('[tabindex]:first-child');
7235
+ firstChild && firstChild.focus();
7220
7236
  }
7221
7237
  }
7222
- function handleEscape() {
7223
- if (ref?.current) {
7224
- const focusedElement = ref.current.querySelector('[tabindex]:focus');
7225
- if (focusedElement) {
7226
- focusedElement.blur();
7227
- }
7238
+ }
7239
+ function handleEscape(ref) {
7240
+ if (ref?.current) {
7241
+ const focusedElement = ref.current.querySelector('[tabindex]:focus');
7242
+ if (focusedElement) {
7243
+ focusedElement.blur();
7228
7244
  }
7229
7245
  }
7230
- const findFirstChildWithClick = element => {
7231
- let result = element;
7232
- while (!result?.onclick && result !== null) {
7233
- result = result.firstElementChild;
7234
- }
7235
- return result;
7236
- };
7237
- const handleEnter = () => {
7238
- if (ref?.current) {
7239
- const focusedElement = ref.current.querySelector('[tabindex]:focus');
7240
- if (focusedElement) {
7241
- const firstChild = findFirstChildWithClick(focusedElement);
7242
- if (firstChild) {
7243
- firstChild.click();
7244
- }
7246
+ }
7247
+ const findFirstChildWithClick = element => {
7248
+ let result = element;
7249
+ while (!result?.onclick && result !== null) {
7250
+ result = result.firstElementChild;
7251
+ }
7252
+ return result;
7253
+ };
7254
+ const handleEnter = ref => {
7255
+ if (ref?.current) {
7256
+ const focusedElement = ref.current.querySelector('[tabindex]:focus');
7257
+ if (focusedElement) {
7258
+ const firstChild = findFirstChildWithClick(focusedElement);
7259
+ if (firstChild) {
7260
+ firstChild.click();
7245
7261
  }
7246
7262
  }
7247
- };
7248
- function handleCtrlArrowUp() {
7249
- if (ref?.current) {
7250
- const firstChild = ref.current.querySelector('[tabindex]:first-child');
7251
- firstChild && firstChild.focus();
7252
- }
7253
7263
  }
7254
- function handleCtrlArrowDown() {
7255
- if (ref?.current) {
7256
- const lastChild = ref.current.querySelector('[tabindex]:last-child');
7257
- lastChild && lastChild.focus();
7258
- }
7264
+ };
7265
+ function handleCtrlArrowUp(ref) {
7266
+ if (ref?.current) {
7267
+ const firstChild = ref.current.querySelector('[tabindex]:first-child');
7268
+ firstChild && firstChild.focus();
7259
7269
  }
7260
- const eventsArray = [];
7270
+ }
7271
+ function handleCtrlArrowDown(ref) {
7272
+ if (ref?.current) {
7273
+ const lastChild = ref.current.querySelector('[tabindex]:last-child');
7274
+ lastChild && lastChild.focus();
7275
+ }
7276
+ }
7277
+ function getListItemKeyboardPreset(callback, modifier) {
7278
+ return [{
7279
+ type: 'keypress',
7280
+ callback,
7281
+ keys: ['Enter', 'NumpadEnter'],
7282
+ modifier
7283
+ }];
7284
+ }
7285
+ function getButtonKeyboardPreset(callback, modifier) {
7286
+ return [{
7287
+ type: 'keyup',
7288
+ callback,
7289
+ keys: ['Space'],
7290
+ modifier
7291
+ }, {
7292
+ type: 'keypress',
7293
+ callback: e => e.preventDefault(),
7294
+ keys: ['Space'],
7295
+ modifier
7296
+ }, {
7297
+ type: 'keypress',
7298
+ callback,
7299
+ keys: ['Enter', 'NumpadEnter'],
7300
+ modifier
7301
+ }];
7302
+ }
7303
+ function getListKeyboardPreset(ref, modifier) {
7304
+ return [{
7305
+ type: 'keydown',
7306
+ callback: () => handleArrowUp(ref),
7307
+ keys: ['ArrowUp'],
7308
+ modifier
7309
+ }, {
7310
+ type: 'keydown',
7311
+ callback: () => handleArrowDown(ref),
7312
+ keys: ['ArrowDown'],
7313
+ modifier
7314
+ }, {
7315
+ type: 'keydown',
7316
+ callback: () => handleCtrlArrowUp(ref),
7317
+ keys: ['ArrowUp'],
7318
+ modifier: true
7319
+ }, {
7320
+ type: 'keydown',
7321
+ callback: () => handleCtrlArrowDown(ref),
7322
+ keys: ['ArrowDown'],
7323
+ modifier: true
7324
+ }, {
7325
+ type: 'keydown',
7326
+ callback: () => handleEscape(ref),
7327
+ keys: ['Escape'],
7328
+ modifier
7329
+ }, {
7330
+ type: 'keydown',
7331
+ callback: () => handleEnter(ref),
7332
+ keys: ['Enter', 'NumpadEnter'],
7333
+ modifier
7334
+ }];
7335
+ }
7336
+ function getKeyboardPreset(type) {
7337
+ let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _noop;
7338
+ let ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
7339
+ let keys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
7340
+ let modifier = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
7261
7341
  switch (type) {
7262
7342
  case 'listItem':
7263
- {
7264
- eventsArray.push({
7265
- type: 'keypress',
7266
- callback,
7267
- keys: ['Enter', 'NumpadEnter'],
7268
- modifier
7269
- });
7270
- break;
7271
- }
7343
+ return getListItemKeyboardPreset(callback, modifier);
7272
7344
  case 'button':
7273
- {
7274
- eventsArray.push({
7275
- type: 'keyup',
7276
- callback,
7277
- keys: ['Space'],
7278
- modifier
7279
- });
7280
- eventsArray.push({
7281
- type: 'keypress',
7282
- callback: e => e.preventDefault(),
7283
- keys: ['Space'],
7284
- modifier
7285
- });
7286
- eventsArray.push({
7287
- type: 'keypress',
7288
- callback,
7289
- keys: ['Enter', 'NumpadEnter'],
7290
- modifier
7291
- });
7292
- break;
7293
- }
7345
+ return getButtonKeyboardPreset(callback, modifier);
7294
7346
  case 'list':
7295
- {
7296
- eventsArray.push({
7297
- type: 'keydown',
7298
- callback: handleArrowUp,
7299
- keys: ['ArrowUp'],
7300
- modifier
7301
- });
7302
- eventsArray.push({
7303
- type: 'keydown',
7304
- callback: handleArrowDown,
7305
- keys: ['ArrowDown'],
7306
- modifier
7307
- });
7308
- eventsArray.push({
7309
- type: 'keydown',
7310
- callback: handleCtrlArrowUp,
7311
- keys: ['ArrowUp'],
7312
- modifier: true
7313
- });
7314
- eventsArray.push({
7315
- type: 'keydown',
7316
- callback: handleCtrlArrowDown,
7317
- keys: ['ArrowDown'],
7318
- modifier: true
7319
- });
7320
- eventsArray.push({
7321
- type: 'keydown',
7322
- callback: handleEscape,
7323
- keys: ['Escape'],
7324
- modifier
7325
- });
7326
- eventsArray.push({
7327
- type: 'keydown',
7328
- callback: handleEnter,
7329
- keys: ['Enter', 'NumpadEnter'],
7330
- modifier
7331
- });
7332
- break;
7333
- }
7347
+ return getListKeyboardPreset(ref, modifier);
7334
7348
  case 'chipInputKeys':
7335
- {
7336
- eventsArray.push({
7337
- type: 'keypress',
7338
- callback,
7339
- keys,
7340
- modifier
7341
- });
7342
- break;
7343
- }
7349
+ return [{
7350
+ type: 'keypress',
7351
+ callback,
7352
+ keys,
7353
+ modifier
7354
+ }];
7355
+ default:
7356
+ return [];
7344
7357
  }
7345
- return eventsArray;
7346
7358
  }
7359
+
7360
+ /**
7361
+ * Attach listeners for the given events to the given ref.
7362
+ *
7363
+ * Note: an event with the `keys` field set to an empty array is considered as an event for any key.
7364
+ * In order to have an event for no key, you should either provide an event with the `keys` field set
7365
+ * to an array with an empty key (`['']`), or not provide an event at all.
7366
+ */
7347
7367
  function useKeyboard(ref, events) {
7368
+ let registerListener = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
7348
7369
  const keyEvents = React.useMemo(() => _map(events, _ref => {
7349
7370
  let {
7350
7371
  keys,
@@ -7362,12 +7383,12 @@ function useKeyboard(ref, events) {
7362
7383
  };
7363
7384
  }), [events]);
7364
7385
  React.useEffect(() => {
7365
- if (ref.current) {
7386
+ const refSave = ref.current;
7387
+ if (refSave && registerListener) {
7366
7388
  _forEach(keyEvents, (keyEvent, index) => {
7367
- ref.current && ref.current.addEventListener(events[index].type, keyEvent);
7389
+ refSave.addEventListener(events[index].type, keyEvent);
7368
7390
  });
7369
7391
  }
7370
- const refSave = ref.current;
7371
7392
  return () => {
7372
7393
  if (refSave) {
7373
7394
  _forEach(keyEvents, (keyEvent, index) => {
@@ -7375,8 +7396,7 @@ function useKeyboard(ref, events) {
7375
7396
  });
7376
7397
  }
7377
7398
  };
7378
- // eslint-disable-next-line react-hooks/exhaustive-deps
7379
- }, [events, keyEvents, ref, ref.current]);
7399
+ }, [events, keyEvents, ref, registerListener]);
7380
7400
  }
7381
7401
 
7382
7402
  const StyledIcon = styled__default.default(Icon).withConfig({
@@ -7408,7 +7428,7 @@ const StyledIcon = styled__default.default(Icon).withConfig({
7408
7428
  } = _ref5;
7409
7429
  return $size;
7410
7430
  });
7411
- const StyledText$1 = styled__default.default(Text).withConfig({
7431
+ const StyledText$2 = styled__default.default(Text).withConfig({
7412
7432
  displayName: "Button__StyledText",
7413
7433
  componentId: "sc-1oof15b-1"
7414
7434
  })(["user-select:none;text-transform:uppercase;font-size:", ";", ";"], _ref6 => {
@@ -7462,7 +7482,7 @@ const StyledButton = styled__default.default.button.attrs(_ref8 => {
7462
7482
  iconPlacement = 'left'
7463
7483
  } = _ref12;
7464
7484
  return iconPlacement === 'left' && 1 || iconPlacement === 'right' && 2;
7465
- }, StyledText$1, _ref13 => {
7485
+ }, StyledText$2, _ref13 => {
7466
7486
  let {
7467
7487
  iconPlacement = 'left'
7468
7488
  } = _ref13;
@@ -7618,6 +7638,7 @@ const Button$1 = /*#__PURE__*/React__namespace.default.forwardRef(function Butto
7618
7638
  buttonRef = null,
7619
7639
  ...rest
7620
7640
  } = _ref22;
7641
+ const gridRef = useCombinedRefs(ref);
7621
7642
  const innerButtonRef = useCombinedRefs(buttonRef);
7622
7643
  const clickHandler = React.useCallback(e => {
7623
7644
  if (!disabled && onClick && !e.defaultPrevented) {
@@ -7636,11 +7657,22 @@ const Button$1 = /*#__PURE__*/React__namespace.default.forwardRef(function Butto
7636
7657
  type,
7637
7658
  ...rest
7638
7659
  }), [type, rest]);
7660
+ const setFocusOnPrimaryButton = React.useCallback(() => {
7661
+ innerButtonRef.current?.focus();
7662
+ }, [innerButtonRef]);
7663
+ React.useEffect(() => {
7664
+ const gridElement = gridRef.current;
7665
+ gridElement?.addEventListener('focus', setFocusOnPrimaryButton);
7666
+ return () => {
7667
+ gridElement?.removeEventListener('focus', setFocusOnPrimaryButton);
7668
+ };
7669
+ }, [gridRef, setFocusOnPrimaryButton]);
7639
7670
  return /*#__PURE__*/React__namespace.default.createElement(StyledGrid, {
7640
7671
  width: width,
7641
7672
  minWidth: minWidth,
7642
7673
  padding: SIZES$2[size].padding,
7643
- ref: ref
7674
+ ref: gridRef,
7675
+ tabIndex: -1
7644
7676
  }, /*#__PURE__*/React__namespace.default.createElement(StyledButton, _extends({}, rest, {
7645
7677
  backgroundColor: colors.backgroundColor,
7646
7678
  color: colors.color,
@@ -7660,7 +7692,7 @@ const Button$1 = /*#__PURE__*/React__namespace.default.forwardRef(function Butto
7660
7692
  color: "currentColor",
7661
7693
  $size: SIZES$2[size].icon,
7662
7694
  $loading: loading
7663
- }), label && /*#__PURE__*/React__namespace.default.createElement(StyledText$1, {
7695
+ }), label && /*#__PURE__*/React__namespace.default.createElement(StyledText$2, {
7664
7696
  color: "currentColor",
7665
7697
  $size: SIZES$2[size].label,
7666
7698
  $loading: loading
@@ -8326,7 +8358,8 @@ const Checkbox = /*#__PURE__*/React__namespace.default.forwardRef(function Check
8326
8358
  style: {
8327
8359
  cursor: disabled ? 'default' : 'pointer'
8328
8360
  },
8329
- crossAlignment: "flex-start"
8361
+ crossAlignment: "flex-start",
8362
+ "data-testid": 'checkbox'
8330
8363
  }, rest), /*#__PURE__*/React__namespace.default.createElement(IconWrapper$2, {
8331
8364
  iconColor: iconColor,
8332
8365
  disabled: disabled,
@@ -8476,27 +8509,6 @@ function arrayIncludesWith$1(array, value, comparator) {
8476
8509
 
8477
8510
  var _arrayIncludesWith = arrayIncludesWith$1;
8478
8511
 
8479
- /**
8480
- * This method returns `undefined`.
8481
- *
8482
- * @static
8483
- * @memberOf _
8484
- * @since 2.3.0
8485
- * @category Util
8486
- * @example
8487
- *
8488
- * _.times(2, _.noop);
8489
- * // => [undefined, undefined]
8490
- */
8491
-
8492
- function noop$1() {
8493
- // No operation performed.
8494
- }
8495
-
8496
- var noop_1 = noop$1;
8497
-
8498
- var _noop = /*@__PURE__*/getDefaultExportFromCjs(noop_1);
8499
-
8500
8512
  var Set$1 = _Set,
8501
8513
  noop = noop_1,
8502
8514
  setToArray$1 = _setToArray;
@@ -9763,6 +9775,15 @@ function usePrevious(value) {
9763
9775
  */
9764
9776
  const INPUT_BACKGROUND_COLOR = 'gray5';
9765
9777
  const INPUT_DIVIDER_COLOR = 'gray3';
9778
+ const TIMERS = {
9779
+ DROPDOWN: {
9780
+ IS_OPEN: 1,
9781
+ CLOSE_NESTED: 500
9782
+ },
9783
+ MODAL: {
9784
+ DELAY_OPEN: 1
9785
+ }
9786
+ };
9766
9787
 
9767
9788
  const ActionIcon = styled__default.default(Icon).withConfig({
9768
9789
  displayName: "Chip__ActionIcon",
@@ -10119,6 +10140,37 @@ var some_1 = some;
10119
10140
 
10120
10141
  var _some = /*@__PURE__*/getDefaultExportFromCjs(some_1);
10121
10142
 
10143
+ /**
10144
+ * Gets the first element of `array`.
10145
+ *
10146
+ * @static
10147
+ * @memberOf _
10148
+ * @since 0.1.0
10149
+ * @alias first
10150
+ * @category Array
10151
+ * @param {Array} array The array to query.
10152
+ * @returns {*} Returns the first element of `array`.
10153
+ * @example
10154
+ *
10155
+ * _.head([1, 2, 3]);
10156
+ * // => 1
10157
+ *
10158
+ * _.head([]);
10159
+ * // => undefined
10160
+ */
10161
+
10162
+ function head(array) {
10163
+ return (array && array.length) ? array[0] : undefined;
10164
+ }
10165
+
10166
+ var head_1 = head;
10167
+
10168
+ var _head = /*@__PURE__*/getDefaultExportFromCjs(head_1);
10169
+
10170
+ var first = head_1;
10171
+
10172
+ var _first = /*@__PURE__*/getDefaultExportFromCjs(first);
10173
+
10122
10174
  const ContainerEl$2 = styled__default.default(Container).withConfig({
10123
10175
  displayName: "Dropdown__ContainerEl",
10124
10176
  componentId: "sc-1jmq2vf-0"
@@ -10208,7 +10260,8 @@ function PopperListItem(_ref3) {
10208
10260
  tabIndex: disabled ? -1 : 0,
10209
10261
  $disabled: disabled,
10210
10262
  $selectedBackgroundColor: selected ? selectedBackgroundColor : undefined,
10211
- background: selected && selectedBackgroundColor ? selectedBackgroundColor : undefined
10263
+ background: selected && selectedBackgroundColor ? selectedBackgroundColor : undefined,
10264
+ "data-testid": 'dropdown-item'
10212
10265
  }, rest), customComponent || /*#__PURE__*/React__namespace.default.createElement(ListItemContent, {
10213
10266
  icon: icon,
10214
10267
  label: label,
@@ -10226,7 +10279,6 @@ function NestListItem(_ref4) {
10226
10279
  label,
10227
10280
  onClick,
10228
10281
  selected,
10229
- open,
10230
10282
  customComponent,
10231
10283
  disabled = false,
10232
10284
  items,
@@ -10235,13 +10287,101 @@ function NestListItem(_ref4) {
10235
10287
  itemTextSize,
10236
10288
  itemPaddingBetween,
10237
10289
  keepOpen,
10238
- dropdownListRef,
10290
+ dropdownListRef = null,
10239
10291
  tooltipLabel,
10292
+ onOpen,
10293
+ onClose,
10240
10294
  ...rest
10241
10295
  } = _ref4;
10296
+ const [open, setOpen] = React.useState(false);
10242
10297
  const itemRef = React.useRef(null);
10243
- const keyEvents = React.useMemo(() => onClick && getKeyboardPreset('listItem', onClick) || [], [onClick]);
10244
- useKeyboard(itemRef, keyEvents);
10298
+ const innerDropdownListRef = useCombinedRefs(dropdownListRef);
10299
+ const closeNestedDropdownTimeoutRef = React.useRef();
10300
+ React.useEffect(() => () => {
10301
+ if (closeNestedDropdownTimeoutRef.current !== undefined) {
10302
+ clearTimeout(closeNestedDropdownTimeoutRef.current);
10303
+ }
10304
+ }, []);
10305
+ const openNestedDropdown = React.useCallback(() => {
10306
+ if (closeNestedDropdownTimeoutRef.current !== undefined) {
10307
+ clearTimeout(closeNestedDropdownTimeoutRef.current);
10308
+ closeNestedDropdownTimeoutRef.current = undefined;
10309
+ }
10310
+ setOpen(true);
10311
+ onOpen?.();
10312
+ }, [onOpen]);
10313
+ const closeNestedDropdown = React.useCallback(() => {
10314
+ if (closeNestedDropdownTimeoutRef.current !== undefined) {
10315
+ clearTimeout(closeNestedDropdownTimeoutRef.current);
10316
+ closeNestedDropdownTimeoutRef.current = undefined;
10317
+ }
10318
+ setOpen(false);
10319
+ onClose?.();
10320
+ itemRef.current?.focus({
10321
+ preventScroll: true
10322
+ });
10323
+ }, [onClose]);
10324
+ const itemKeyEvents = React.useMemo(() => {
10325
+ const presets = [{
10326
+ type: 'keydown',
10327
+ callback: openNestedDropdown,
10328
+ keys: ['ArrowRight']
10329
+ }];
10330
+ if (onClick) {
10331
+ presets.push(...getKeyboardPreset('listItem', onClick));
10332
+ }
10333
+ return presets;
10334
+ }, [onClick, openNestedDropdown]);
10335
+ useKeyboard(itemRef, itemKeyEvents);
10336
+ const dropdownKeyEvents = React.useMemo(() => [{
10337
+ type: 'keydown',
10338
+ callback: closeNestedDropdown,
10339
+ keys: ['Escape']
10340
+ }, {
10341
+ type: 'keydown',
10342
+ callback: closeNestedDropdown,
10343
+ keys: ['ArrowLeft']
10344
+ }], [closeNestedDropdown]);
10345
+ const [registerNestedListener, setRegisterNestedListener] = React.useState(open);
10346
+ React.useEffect(() => {
10347
+ let timeout;
10348
+ if (open) {
10349
+ timeout = setTimeout(() => {
10350
+ setRegisterNestedListener(true);
10351
+ }, TIMERS.DROPDOWN.IS_OPEN);
10352
+ }
10353
+ return () => {
10354
+ setRegisterNestedListener(false);
10355
+ if (timeout) {
10356
+ clearTimeout(timeout);
10357
+ }
10358
+ };
10359
+ }, [open]);
10360
+ useKeyboard(innerDropdownListRef, dropdownKeyEvents, registerNestedListener);
10361
+ const closeOnMouseLeave = React.useCallback(event => {
10362
+ if (event.target instanceof Node) {
10363
+ const eventIsOnTrigger = itemRef.current?.contains(event.target);
10364
+ const eventIsOnDropdown = innerDropdownListRef.current?.contains(event.target);
10365
+ if (!eventIsOnDropdown && !eventIsOnTrigger) {
10366
+ if (closeNestedDropdownTimeoutRef.current === undefined) {
10367
+ closeNestedDropdownTimeoutRef.current = setTimeout(() => {
10368
+ closeNestedDropdown();
10369
+ }, TIMERS.DROPDOWN.CLOSE_NESTED);
10370
+ }
10371
+ } else if (closeNestedDropdownTimeoutRef.current !== undefined) {
10372
+ clearTimeout(closeNestedDropdownTimeoutRef.current);
10373
+ closeNestedDropdownTimeoutRef.current = undefined;
10374
+ }
10375
+ }
10376
+ }, [closeNestedDropdown, innerDropdownListRef]);
10377
+ React.useEffect(() => {
10378
+ if (open) {
10379
+ window.addEventListener('mouseover', closeOnMouseLeave);
10380
+ }
10381
+ return () => {
10382
+ window.removeEventListener('mouseover', closeOnMouseLeave);
10383
+ };
10384
+ }, [closeOnMouseLeave, open]);
10245
10385
  return /*#__PURE__*/React__namespace.default.createElement(ContainerEl$2, _extends({
10246
10386
  "data-keep-open": keepOpen,
10247
10387
  ref: itemRef,
@@ -10254,7 +10394,9 @@ function NestListItem(_ref4) {
10254
10394
  onClick: disabled ? undefined : onClick,
10255
10395
  tabIndex: disabled ? undefined : 0,
10256
10396
  $disabled: disabled,
10257
- $selectedBackgroundColor: selected ? selectedBackgroundColor : undefined
10397
+ $selectedBackgroundColor: selected ? selectedBackgroundColor : undefined,
10398
+ "data-testid": 'dropdown-item',
10399
+ onMouseEnter: openNestedDropdown
10258
10400
  }, rest), /*#__PURE__*/React__namespace.default.createElement(Dropdown, {
10259
10401
  display: "block",
10260
10402
  items: items,
@@ -10264,7 +10406,7 @@ function NestListItem(_ref4) {
10264
10406
  itemIconSize: itemIconSize,
10265
10407
  itemTextSize: itemTextSize,
10266
10408
  itemPaddingBetween: itemPaddingBetween,
10267
- dropdownListRef: dropdownListRef
10409
+ dropdownListRef: innerDropdownListRef
10268
10410
  }, /*#__PURE__*/React__namespace.default.createElement(Container, {
10269
10411
  orientation: "horizontal",
10270
10412
  mainAlignment: "space-between",
@@ -10359,14 +10501,14 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10359
10501
  onOpen,
10360
10502
  onClose,
10361
10503
  children,
10362
- triggerRef = /*#__PURE__*/React.createRef(),
10504
+ triggerRef = null,
10363
10505
  disablePortal = false,
10364
10506
  preventDefault = true,
10365
10507
  selectedBackgroundColor,
10366
10508
  itemIconSize = 'medium',
10367
10509
  itemTextSize = 'medium',
10368
10510
  itemPaddingBetween = 'small',
10369
- dropdownListRef = /*#__PURE__*/React.createRef(),
10511
+ dropdownListRef = null,
10370
10512
  ...rest
10371
10513
  } = _ref14;
10372
10514
  const {
@@ -10380,29 +10522,24 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10380
10522
  const startSentinelRef = React.useRef(null);
10381
10523
  const endSentinelRef = React.useRef(null);
10382
10524
  const [position, setPosition] = React.useState(null);
10383
- const [currentHover, setCurrentHover] = React.useState(null);
10384
- const openPopperTimoutRef = React.useRef();
10385
10525
  const nestedDropdownsRef = React.useRef([]);
10386
- React.useEffect(
10387
- // clear timers on unmount
10388
- () => () => {
10389
- openPopperTimoutRef.current && clearTimeout(openPopperTimoutRef.current);
10390
- }, []);
10391
10526
  React.useEffect(() => {
10392
10527
  setOpen(forceOpen);
10528
+ openRef.current = forceOpen;
10393
10529
  }, [forceOpen]);
10394
10530
  const openPopper = React.useCallback(() => {
10395
10531
  setOpen(true);
10396
- onOpen && onOpen();
10532
+ openRef.current = true;
10533
+ onOpen?.();
10397
10534
  }, [onOpen]);
10398
10535
  const closePopper = React.useCallback(e => {
10399
- e && e.stopPropagation();
10536
+ e?.stopPropagation();
10400
10537
  setOpen(forceOpen);
10401
- setCurrentHover(null);
10402
- !disableRestoreFocus && innerTriggerRef.current && innerTriggerRef.current.focus();
10403
- onClose && onClose();
10538
+ openRef.current = forceOpen;
10539
+ !disableRestoreFocus && innerTriggerRef.current?.focus();
10540
+ onClose?.();
10404
10541
  }, [disableRestoreFocus, forceOpen, innerTriggerRef, onClose]);
10405
- const handleClick = React.useCallback(e => {
10542
+ const toggleOpen = React.useCallback(e => {
10406
10543
  if (openRef.current) {
10407
10544
  e.preventDefault();
10408
10545
  closePopper();
@@ -10411,12 +10548,10 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10411
10548
  openPopper();
10412
10549
  }
10413
10550
  }, [closePopper, disabled, openPopper]);
10414
-
10415
- // TODO: it probably makes sense to merge this callback and the handleClick
10416
10551
  const handleLeftClick = React.useCallback(e => {
10417
- children.props.onClick && children.props.onClick(e);
10418
- handleClick(e);
10419
- }, [children.props, handleClick]);
10552
+ children.props.onClick?.(e);
10553
+ toggleOpen(e);
10554
+ }, [children.props, toggleOpen]);
10420
10555
  const handleRightClick = React.useCallback(e => {
10421
10556
  e.preventDefault();
10422
10557
  const virtualElement = {
@@ -10429,16 +10564,13 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10429
10564
  left: e.clientX,
10430
10565
  x: e.clientX,
10431
10566
  y: e.clientY,
10432
- toJSON: () => 'TODO' // TODO: check what this should return
10567
+ toJSON: () => ''
10433
10568
  })
10434
10569
  };
10435
-
10436
10570
  setPosition(virtualElement);
10437
- openPopperTimoutRef.current = setTimeout(() => {
10438
- if (!disabled && !openRef.current) {
10439
- openPopper();
10440
- }
10441
- }, 1);
10571
+ if (!disabled && !openRef.current) {
10572
+ openPopper();
10573
+ }
10442
10574
  }, [disabled, openPopper]);
10443
10575
  const clickOutsidePopper = React.useCallback(e => {
10444
10576
  const clickedOnDropdown = dropdownRef.current && (e.target === dropdownRef.current || dropdownRef.current.contains(e.target));
@@ -10451,31 +10583,24 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10451
10583
  }
10452
10584
  }, [closePopper, contextMenu, dropdownRef, innerTriggerRef]);
10453
10585
  const onStartSentinelFocus = React.useCallback(() => {
10454
- const lastChild = popperItemsRef.current && popperItemsRef.current.querySelector('div[tabindex]:last-child');
10455
- lastChild && lastChild.focus();
10586
+ const lastChild = popperItemsRef.current?.querySelector('[tabindex]:last-child');
10587
+ lastChild?.focus();
10456
10588
  }, []);
10457
10589
  const onEndSentinelFocus = React.useCallback(() => {
10458
- const lastChild = popperItemsRef.current && popperItemsRef.current.querySelector('div[tabindex]:first-child');
10459
- lastChild && lastChild.focus();
10590
+ const firstChild = popperItemsRef.current?.querySelector('[tabindex]:first-child');
10591
+ firstChild?.focus();
10460
10592
  }, []);
10461
- const triggerEvents = React.useMemo(() => handleTriggerEvents ? getKeyboardPreset('button', handleClick) : [], [handleClick, handleTriggerEvents]);
10593
+ const triggerEvents = React.useMemo(() => handleTriggerEvents ? getKeyboardPreset('button', toggleOpen) : [], [toggleOpen, handleTriggerEvents]);
10462
10594
  useKeyboard(innerTriggerRef, triggerEvents);
10463
-
10464
- // We need to add 'open' as dependency because we want to reattach these events each time we open the dropdown
10465
- const listEvents = React.useMemo(() => getKeyboardPreset('list', () => undefined, popperItemsRef),
10466
- // eslint-disable-next-line react-hooks/exhaustive-deps
10467
- [open, popperItemsRef]);
10468
- useKeyboard(popperItemsRef, listEvents);
10469
- // We need to add 'open' as dependency because we want to reattach these events each time we open the dropdown
10595
+ const listEvents = React.useMemo(() => getKeyboardPreset('list', undefined, popperItemsRef), [popperItemsRef]);
10596
+ useKeyboard(popperItemsRef, listEvents, open);
10470
10597
  const escapeEvent = React.useMemo(() => [{
10471
10598
  type: 'keydown',
10472
10599
  callback: closePopper,
10473
10600
  keys: ['Escape'],
10474
10601
  modifier: false
10475
- }],
10476
- // eslint-disable-next-line react-hooks/exhaustive-deps
10477
- [open, closePopper]);
10478
- useKeyboard(dropdownRef, escapeEvent);
10602
+ }], [closePopper]);
10603
+ useKeyboard(dropdownRef, escapeEvent, open);
10479
10604
  React.useLayoutEffect(() => {
10480
10605
  let popperInstance;
10481
10606
  if (open) {
@@ -10495,27 +10620,29 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10495
10620
  let timeout;
10496
10621
  if (!disableAutoFocus && open) {
10497
10622
  timeout = setTimeout(() => {
10498
- const selectedItems = dropdownRef.current ? dropdownRef.current.querySelectorAll('.zapp-selected') : [];
10499
- selectedItems.length > 0 ? selectedItems[0].focus() : popperItemsRef.current && popperItemsRef.current.children[0] && popperItemsRef.current.children[0] instanceof HTMLElement && popperItemsRef.current.children[0].focus();
10500
- }, 1);
10623
+ const selectedItems = dropdownRef.current?.querySelectorAll('.zapp-selected');
10624
+ if (selectedItems && selectedItems.length > 0) {
10625
+ selectedItems[0].focus();
10626
+ } else {
10627
+ const firstElement = _first(popperItemsRef.current?.children);
10628
+ if (firstElement instanceof HTMLElement) {
10629
+ firstElement.focus();
10630
+ }
10631
+ }
10632
+ }, TIMERS.DROPDOWN.IS_OPEN);
10501
10633
  }
10502
10634
  return () => {
10503
10635
  timeout && clearTimeout(timeout);
10504
10636
  };
10505
10637
  }, [disableAutoFocus, dropdownRef, open]);
10506
10638
  React.useEffect(() => {
10507
- openRef.current = open;
10508
- let timeout;
10509
10639
  if (open) {
10510
- timeout = setTimeout(() => {
10511
- windowObj.document.addEventListener('click', clickOutsidePopper, true);
10512
- contextMenu && windowObj.document.addEventListener('contextmenu', clickOutsidePopper, true);
10513
- }, 1);
10640
+ windowObj.document.addEventListener('click', clickOutsidePopper, true);
10641
+ contextMenu && windowObj.document.addEventListener('contextmenu', clickOutsidePopper, true);
10514
10642
  }
10515
10643
  return () => {
10516
10644
  windowObj.document.removeEventListener('click', clickOutsidePopper, true);
10517
10645
  windowObj.document.removeEventListener('contextmenu', clickOutsidePopper, true);
10518
- timeout && clearTimeout(timeout);
10519
10646
  };
10520
10647
  }, [open, closePopper, clickOutsidePopper, contextMenu, windowObj.document]);
10521
10648
  React.useEffect(() => {
@@ -10523,24 +10650,23 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10523
10650
  const startSentinelRefElement = startSentinelRef.current;
10524
10651
  const endSentinelRefElement = endSentinelRef.current;
10525
10652
  if (open && !disableAutoFocus) {
10526
- popperItemRefElement && popperItemRefElement.focus({
10653
+ popperItemRefElement?.focus({
10527
10654
  preventScroll: true
10528
10655
  });
10529
- startSentinelRefElement && startSentinelRefElement.addEventListener('focus', onStartSentinelFocus);
10530
- endSentinelRefElement && endSentinelRefElement.addEventListener('focus', onEndSentinelFocus);
10656
+ startSentinelRefElement?.addEventListener('focus', onStartSentinelFocus);
10657
+ endSentinelRefElement?.addEventListener('focus', onEndSentinelFocus);
10531
10658
  }
10532
10659
  return () => {
10533
- startSentinelRefElement && startSentinelRefElement.removeEventListener('focus', onStartSentinelFocus);
10534
- endSentinelRefElement && endSentinelRefElement.removeEventListener('focus', onEndSentinelFocus);
10660
+ startSentinelRefElement?.removeEventListener('focus', onStartSentinelFocus);
10661
+ endSentinelRefElement?.removeEventListener('focus', onEndSentinelFocus);
10535
10662
  };
10536
10663
  }, [open, startSentinelRef, endSentinelRef, onStartSentinelFocus, onEndSentinelFocus, disableAutoFocus]);
10537
10664
  const listItemClickHandler = React.useCallback((onClick, keepOpen) => event => {
10538
- onClick && onClick(event);
10539
- !multiple && !keepOpen && closePopper();
10665
+ onClick?.(event);
10666
+ if (!multiple && !keepOpen) {
10667
+ closePopper();
10668
+ }
10540
10669
  }, [closePopper, multiple]);
10541
- const listItemMouseEnterHandler = React.useCallback(id => () => {
10542
- setCurrentHover(id);
10543
- }, []);
10544
10670
  const popperListItems = React.useMemo(() => {
10545
10671
  nestedDropdownsRef.current = [];
10546
10672
  if (items) {
@@ -10568,12 +10694,10 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10568
10694
  onClick: listItemClickHandler(onClick, keepOpen),
10569
10695
  keepOpen: keepOpen,
10570
10696
  selected: selected,
10571
- open: currentHover === id,
10572
10697
  key: id,
10573
10698
  customComponent: customComponent,
10574
10699
  disabled: itemDisabled,
10575
10700
  items: subItems,
10576
- onMouseEnter: listItemMouseEnterHandler(id),
10577
10701
  selectedBackgroundColor: selectedBackgroundColor,
10578
10702
  itemIconSize: itemIconSize,
10579
10703
  itemTextSize: itemTextSize,
@@ -10588,7 +10712,6 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10588
10712
  key: id,
10589
10713
  customComponent: customComponent,
10590
10714
  disabled: itemDisabled,
10591
- onMouseEnter: listItemMouseEnterHandler(id),
10592
10715
  selectedBackgroundColor: selectedBackgroundColor,
10593
10716
  itemIconSize: itemIconSize,
10594
10717
  itemTextSize: itemTextSize,
@@ -10597,7 +10720,7 @@ const Dropdown = /*#__PURE__*/React__namespace.default.forwardRef(function Dropd
10597
10720
  });
10598
10721
  }
10599
10722
  return null;
10600
- }, [items, listItemClickHandler, currentHover, listItemMouseEnterHandler, selectedBackgroundColor, itemIconSize, itemTextSize, itemPaddingBetween]);
10723
+ }, [items, listItemClickHandler, selectedBackgroundColor, itemIconSize, itemTextSize, itemPaddingBetween]);
10601
10724
  const popperListPreventDefaultHandler = React.useCallback(event => {
10602
10725
  preventDefault && event.preventDefault();
10603
10726
  }, [preventDefault]);
@@ -10685,7 +10808,7 @@ const ContainerEl$1 = styled__default.default(Container).withConfig({
10685
10808
  const ScrollContainer = styled__default.default.div.withConfig({
10686
10809
  displayName: "ChipInput__ScrollContainer",
10687
10810
  componentId: "sc-1y52mik-1"
10688
- })(["display:flex;flex:1 1 auto;justify-content:flex-start;align-items:center;width:auto;gap:0.5rem;flex-wrap:", ";overflow-x:auto;overflow-x:overlay;-ms-overflow-style:", ";scrollbar-width:", ";&::-webkit-scrollbar{display:", ";}margin-top:", ";max-height:", ";overflow-y:auto;"], _ref6 => {
10811
+ })(["display:flex;flex:1 1 auto;justify-content:flex-start;align-items:center;width:auto;gap:0.5rem;flex-wrap:", ";overflow-x:auto;-ms-overflow-style:", ";scrollbar-width:", ";&::-webkit-scrollbar{display:", ";}margin-top:", ";max-height:", ";overflow-y:auto;"], _ref6 => {
10689
10812
  let {
10690
10813
  wrap
10691
10814
  } = _ref6;
@@ -10720,7 +10843,7 @@ const ScrollContainer = styled__default.default.div.withConfig({
10720
10843
  const InputEl$2 = styled__default.default.input.withConfig({
10721
10844
  displayName: "ChipInput__InputEl",
10722
10845
  componentId: "sc-1y52mik-2"
10723
- })(["border:none !important;height:auto !important;width:1em;outline:0;background:transparent !important;font-size:", ";font-weight:", ";font-family:", ";color:", ";&:disabled{color:", ";pointer-events:none;}transition:background 0.2s ease-out;line-height:1.5;padding:0;min-width:1em;overflow-wrap:break-word;max-width:100%;&::placeholder{color:transparent;}"], _ref12 => {
10846
+ })(["border:none !important;height:auto !important;width:1em;outline:0;background:transparent !important;font-size:", ";font-weight:", ";font-family:", ";color:", ";&:disabled{color:", ";pointer-events:none;}transition:background 0.2s ease-out;line-height:1.5;padding:0;min-width:1em;overflow-wrap:break-word;max-width:100%;&::placeholder{color:transparent;font-size:0;user-select:none;}"], _ref12 => {
10724
10847
  let {
10725
10848
  theme
10726
10849
  } = _ref12;
@@ -10999,7 +11122,7 @@ const ChipInput = /*#__PURE__*/React__namespace.default.forwardRef(function Chip
10999
11122
  const inputValue = inputElRef.current?.value || '';
11000
11123
  inputValue.length && saveValue(inputValue);
11001
11124
  }, [inputElRef, saveValue]);
11002
- const saveCurrentEvent = React.useMemo(() => getKeyboardPreset('chipInputKeys', saveCurrentValue, undefined, separatorKeys), [saveCurrentValue, separatorKeys]);
11125
+ const saveCurrentEvent = React.useMemo(() => separatorKeys.length > 0 ? getKeyboardPreset('chipInputKeys', saveCurrentValue, undefined, separatorKeys) : [], [saveCurrentValue, separatorKeys]);
11003
11126
  useKeyboard(inputElRef, saveCurrentEvent);
11004
11127
  const onBackspace = React.useCallback(e => {
11005
11128
  const inputElement = e.currentTarget instanceof HTMLInputElement && e.currentTarget;
@@ -11593,7 +11716,7 @@ const InputContainer = styled__default.default(Container).withConfig({
11593
11716
  const InputEl$1 = styled__default.default.input.withConfig({
11594
11717
  displayName: "Input__InputEl",
11595
11718
  componentId: "sc-1ssz6rm-0"
11596
- })(["border:none !important;height:auto !important;width:100%;outline:0;background:transparent !important;font-size:", ";font-weight:", ";font-family:", ";color:", ";&:disabled{color:", ";}transition:background 0.2s ease-out;line-height:1.5;padding:0;&::placeholder{color:transparent;font-size:0;}"], _ref => {
11719
+ })(["border:none !important;height:auto !important;width:100%;outline:0;background:transparent !important;font-size:", ";font-weight:", ";font-family:", ";color:", ";&:disabled{color:", ";}transition:background 0.2s ease-out;line-height:1.5;padding:0;&::placeholder{color:transparent;font-size:0;user-select:none;}"], _ref => {
11597
11720
  let {
11598
11721
  theme
11599
11722
  } = _ref;
@@ -12317,7 +12440,7 @@ const SelectComponent = /*#__PURE__*/React__namespace.default.forwardRef(functio
12317
12440
  let {
12318
12441
  background = INPUT_BACKGROUND_COLOR,
12319
12442
  disabled = false,
12320
- items = [],
12443
+ items,
12321
12444
  label,
12322
12445
  onChange,
12323
12446
  defaultSelection,
@@ -21352,7 +21475,7 @@ const AccordionContainerEl = styled__default.default(Container).withConfig({
21352
21475
  } = _ref4;
21353
21476
  return !$disableHover && pseudoClasses(theme, $active ? 'highlight' : background);
21354
21477
  });
21355
- const StyledText = styled__default.default(Text).withConfig({
21478
+ const StyledText$1 = styled__default.default(Text).withConfig({
21356
21479
  displayName: "Accordion__StyledText",
21357
21480
  componentId: "sc-gwif5c-1"
21358
21481
  })(["min-width:0;flex-basis:0;flex-grow:1;"]);
@@ -21382,7 +21505,7 @@ const AccordionItem = /*#__PURE__*/React__namespace.default.forwardRef(function
21382
21505
  customColor: item.iconCustomColor,
21383
21506
  color: item.iconColor,
21384
21507
  size: "large"
21385
- })), item.label && /*#__PURE__*/React__namespace.default.createElement(StyledText, _extends({
21508
+ })), item.label && /*#__PURE__*/React__namespace.default.createElement(StyledText$1, _extends({
21386
21509
  size: "medium"
21387
21510
  }, item.textProps), item.label), item.badgeCounter !== undefined && /*#__PURE__*/React__namespace.default.createElement(Padding, {
21388
21511
  left: "small"
@@ -21521,33 +21644,6 @@ var last_1 = last;
21521
21644
 
21522
21645
  var _last = /*@__PURE__*/getDefaultExportFromCjs(last_1);
21523
21646
 
21524
- /**
21525
- * Gets the first element of `array`.
21526
- *
21527
- * @static
21528
- * @memberOf _
21529
- * @since 0.1.0
21530
- * @alias first
21531
- * @category Array
21532
- * @param {Array} array The array to query.
21533
- * @returns {*} Returns the first element of `array`.
21534
- * @example
21535
- *
21536
- * _.head([1, 2, 3]);
21537
- * // => 1
21538
- *
21539
- * _.head([]);
21540
- * // => undefined
21541
- */
21542
-
21543
- function head(array) {
21544
- return (array && array.length) ? array[0] : undefined;
21545
- }
21546
-
21547
- var head_1 = head;
21548
-
21549
- var _head = /*@__PURE__*/getDefaultExportFromCjs(head_1);
21550
-
21551
21647
  var baseSlice = _baseSlice,
21552
21648
  toInteger = toInteger_1;
21553
21649
 
@@ -21967,8 +22063,7 @@ const List = /*#__PURE__*/React__namespace.default.forwardRef(function ListFn(_r
21967
22063
  } = _ref6;
21968
22064
  const selecting = React.useMemo(() => _some(selected, i => !!i), [selected]);
21969
22065
  const listRef = React.useRef(null);
21970
- const useKeyboardShortcuts = () => undefined;
21971
- const keyEvents = React.useMemo(() => keyboardShortcutsIsDisabled ? [] : getKeyboardPreset('list', useKeyboardShortcuts, listRef), [listRef, keyboardShortcutsIsDisabled]);
22066
+ const keyEvents = React.useMemo(() => keyboardShortcutsIsDisabled ? [] : getKeyboardPreset('list', undefined, listRef), [listRef, keyboardShortcutsIsDisabled]);
21972
22067
  useKeyboard(listRef, keyEvents);
21973
22068
  return /*#__PURE__*/React__namespace.default.createElement("div", {
21974
22069
  ref: listRef,
@@ -22039,8 +22134,7 @@ const ListV2 = /*#__PURE__*/React__namespace.default.forwardRef(function ListV2F
22039
22134
  ...rest
22040
22135
  } = _ref3;
22041
22136
  const listRef = useCombinedRefs(ref);
22042
- const useKeyboardShortcuts = () => undefined;
22043
- const keyEvents = React.useMemo(() => keyboardShortcutsIsDisabled ? [] : getKeyboardPreset('list', useKeyboardShortcuts, listRef), [listRef, keyboardShortcutsIsDisabled]);
22137
+ const keyEvents = React.useMemo(() => keyboardShortcutsIsDisabled ? [] : getKeyboardPreset('list', undefined, listRef), [listRef, keyboardShortcutsIsDisabled]);
22044
22138
  useKeyboard(listRef, keyEvents);
22045
22139
  const listItems = React.useMemo(() => children.map(child => /*#__PURE__*/React__namespace.default.cloneElement(child, {
22046
22140
  listRef,
@@ -22350,57 +22444,79 @@ const Popover = /*#__PURE__*/React__namespace.default.forwardRef(function Popove
22350
22444
  }, children));
22351
22445
  });
22352
22446
 
22353
- const TableRow = styled__default.default.tr.withConfig({
22354
- displayName: "Table__TableRow",
22447
+ const StyledCheckbox = styled__default.default(Checkbox).withConfig({
22448
+ displayName: "Table__StyledCheckbox",
22355
22449
  componentId: "sc-1ez1j74-0"
22356
- })(["transition:background-color 0.2s ease-out;&:nth-child(odd){background-color:", ";&:hover{background-color:", ";}}&:nth-child(even){background-color:", ";&:hover{background-color:", ";}}", ";", ";"], _ref => {
22450
+ })(["display:", ";"], _ref => {
22357
22451
  let {
22358
- theme
22452
+ show
22359
22453
  } = _ref;
22360
- return theme.palette.gray6.regular;
22361
- }, _ref2 => {
22454
+ return show ? 'block' : 'none';
22455
+ });
22456
+ const StyledText = styled__default.default(Text).withConfig({
22457
+ displayName: "Table__StyledText",
22458
+ componentId: "sc-1ez1j74-1"
22459
+ })([""]);
22460
+ const StyledTr = styled__default.default.tr.withConfig({
22461
+ displayName: "Table__StyledTr",
22462
+ componentId: "sc-1ez1j74-2"
22463
+ })(["&:hover,&:focus{", "{display:block;}}"], StyledCheckbox);
22464
+ const TableRow = styled__default.default.tr.withConfig({
22465
+ displayName: "Table__TableRow",
22466
+ componentId: "sc-1ez1j74-3"
22467
+ })(["transition:background-color 0.2s ease-out;&:nth-child(odd){background-color:", ";&:hover{background-color:", ";}}&:nth-child(even){background-color:", ";&:hover{background-color:", ";}}", ";", ";&:hover,&:focus{", "{display:block;}}", ";"], _ref2 => {
22362
22468
  let {
22363
22469
  theme
22364
22470
  } = _ref2;
22365
- return theme.palette.gray6.hover;
22471
+ return theme.palette.gray6.regular;
22366
22472
  }, _ref3 => {
22367
22473
  let {
22368
22474
  theme
22369
22475
  } = _ref3;
22370
- return theme.palette.gray5.regular;
22476
+ return theme.palette.gray6.hover;
22371
22477
  }, _ref4 => {
22372
22478
  let {
22373
22479
  theme
22374
22480
  } = _ref4;
22375
- return theme.palette.gray5.hover;
22481
+ return theme.palette.gray5.regular;
22376
22482
  }, _ref5 => {
22483
+ let {
22484
+ theme
22485
+ } = _ref5;
22486
+ return theme.palette.gray5.hover;
22487
+ }, _ref6 => {
22377
22488
  let {
22378
22489
  selected,
22379
22490
  highlight,
22380
22491
  theme
22381
- } = _ref5;
22492
+ } = _ref6;
22382
22493
  return (selected || highlight) && styled.css(["background-color:", " !important;"], theme.palette.highlight.regular);
22383
- }, _ref6 => {
22494
+ }, _ref7 => {
22384
22495
  let {
22385
22496
  clickable,
22386
22497
  showCheckbox
22387
- } = _ref6;
22498
+ } = _ref7;
22388
22499
  return (clickable === true || typeof clickable === 'undefined' && showCheckbox === false) && styled.css(["cursor:pointer;"]);
22500
+ }, StyledCheckbox, _ref8 => {
22501
+ let {
22502
+ showCheckbox
22503
+ } = _ref8;
22504
+ return showCheckbox && styled.css(["&:hover,&:focus{", "{display:none;}}"], StyledText);
22389
22505
  });
22390
22506
  const TableContainer = styled__default.default.div.withConfig({
22391
22507
  displayName: "Table__TableContainer",
22392
- componentId: "sc-1ez1j74-1"
22508
+ componentId: "sc-1ez1j74-4"
22393
22509
  })(["position:relative;display:block;"]);
22394
22510
  const StyledTable = styled__default.default.table.withConfig({
22395
22511
  displayName: "Table__StyledTable",
22396
- componentId: "sc-1ez1j74-2"
22397
- })(["border-collapse:collapse;table-layout:fixed;&,thead,tbody,tr{width:100%;}thead{&,th{background-color:", ";}th{position:sticky;top:0;}}th,td{padding:0 0.5rem;height:1.875rem;}"], _ref7 => {
22512
+ componentId: "sc-1ez1j74-5"
22513
+ })(["border-collapse:collapse;table-layout:fixed;&,thead,tbody,tr{width:100%;}thead{&,th{background-color:", ";}th{position:sticky;top:0;}}th,td{padding:0 0.5rem;height:1.875rem;}"], _ref9 => {
22398
22514
  let {
22399
22515
  theme
22400
- } = _ref7;
22516
+ } = _ref9;
22401
22517
  return theme.palette.gray3.regular;
22402
22518
  });
22403
- const DefaultHeaderFactory = _ref8 => {
22519
+ const DefaultHeaderFactory = _ref10 => {
22404
22520
  let {
22405
22521
  headers,
22406
22522
  onChange,
@@ -22408,16 +22524,15 @@ const DefaultHeaderFactory = _ref8 => {
22408
22524
  selectionMode,
22409
22525
  multiSelect,
22410
22526
  showCheckbox
22411
- } = _ref8;
22412
- const [showCkb, setShowCkb] = React.useState(false);
22527
+ } = _ref10;
22413
22528
  const trRef = React.useRef(null);
22414
- const LabelFactory = React.useCallback(_ref9 => {
22529
+ const LabelFactory = React.useCallback(_ref11 => {
22415
22530
  let {
22416
22531
  label,
22417
22532
  open,
22418
22533
  focus,
22419
22534
  bold
22420
- } = _ref9;
22535
+ } = _ref11;
22421
22536
  return /*#__PURE__*/React__namespace.default.createElement(Container, {
22422
22537
  orientation: "horizontal",
22423
22538
  width: "fill",
@@ -22443,29 +22558,6 @@ const DefaultHeaderFactory = _ref8 => {
22443
22558
  }
22444
22559
  }));
22445
22560
  }, []);
22446
- const displayCheckbox = React.useCallback(() => {
22447
- setShowCkb(true);
22448
- }, []);
22449
- const hideCheckbox = React.useCallback(() => {
22450
- setShowCkb(false);
22451
- }, []);
22452
- React.useEffect(() => {
22453
- const refSave = trRef.current;
22454
- if (refSave && showCheckbox) {
22455
- refSave.addEventListener('mouseenter', displayCheckbox);
22456
- refSave.addEventListener('mouseleave', hideCheckbox);
22457
- refSave.addEventListener('focus', displayCheckbox);
22458
- refSave.addEventListener('blur', hideCheckbox);
22459
- }
22460
- return () => {
22461
- if (refSave) {
22462
- refSave.removeEventListener('mouseenter', displayCheckbox);
22463
- refSave.removeEventListener('mouseleave', hideCheckbox);
22464
- refSave.removeEventListener('focus', displayCheckbox);
22465
- refSave.removeEventListener('blur', hideCheckbox);
22466
- }
22467
- };
22468
- }, [displayCheckbox, hideCheckbox, showCheckbox]);
22469
22561
  const headerData = React.useMemo(() => headers.map(column => {
22470
22562
  const hasItems = column.items !== undefined && column.items.length > 0;
22471
22563
  return /*#__PURE__*/React__namespace.default.createElement("th", {
@@ -22487,18 +22579,19 @@ const DefaultHeaderFactory = _ref8 => {
22487
22579
  weight: column.bold ? 'bold' : 'regular'
22488
22580
  }, column.label));
22489
22581
  }), [LabelFactory, headers]);
22490
- return /*#__PURE__*/React__namespace.default.createElement("tr", {
22582
+ return /*#__PURE__*/React__namespace.default.createElement(StyledTr, {
22491
22583
  ref: trRef
22492
22584
  }, /*#__PURE__*/React__namespace.default.createElement("th", {
22493
22585
  align: "center"
22494
- }, showCheckbox && multiSelect && (showCkb || selectionMode || allSelected) && /*#__PURE__*/React__namespace.default.createElement(Checkbox, {
22586
+ }, showCheckbox && multiSelect && /*#__PURE__*/React__namespace.default.createElement(StyledCheckbox, {
22495
22587
  size: 'small',
22496
22588
  value: allSelected,
22497
22589
  onClick: onChange,
22498
- iconColor: selectionMode ? 'primary' : 'text'
22590
+ iconColor: selectionMode ? 'primary' : 'text',
22591
+ show: selectionMode
22499
22592
  })), headerData);
22500
22593
  };
22501
- const DefaultRowFactory = _ref10 => {
22594
+ const DefaultRowFactory = _ref12 => {
22502
22595
  let {
22503
22596
  index,
22504
22597
  row,
@@ -22507,10 +22600,9 @@ const DefaultRowFactory = _ref10 => {
22507
22600
  selectionMode,
22508
22601
  multiSelect,
22509
22602
  showCheckbox
22510
- } = _ref10;
22603
+ } = _ref12;
22511
22604
  const ckbRef = React.useRef(null);
22512
22605
  const trRef = React.useRef(null);
22513
- const [showCkb, setShowCkb] = React.useState(selected || selectionMode);
22514
22606
  const clickableRow = React.useMemo(() => !showCheckbox && typeof row.clickable === undefined || row.clickable, [showCheckbox, row.clickable]);
22515
22607
  const _onChange = () => {
22516
22608
  !clickableRow && onChange(row.id);
@@ -22519,32 +22611,10 @@ const DefaultRowFactory = _ref10 => {
22519
22611
  showCheckbox && ckbRef.current && e.target !== ckbRef.current && !ckbRef.current.contains(e.target) && row.onClick && row.onClick(e);
22520
22612
  clickableRow && onChange(row.id);
22521
22613
  }, [row, onChange, clickableRow, showCheckbox]);
22522
- const displayCheckbox = React.useCallback(() => {
22523
- setShowCkb(true);
22524
- }, []);
22525
- const hideCheckbox = React.useCallback(() => {
22526
- setShowCkb(false);
22527
- }, []);
22528
- React.useEffect(() => {
22529
- const refSave = trRef.current;
22530
- if (refSave && showCheckbox) {
22531
- refSave.addEventListener('mouseenter', displayCheckbox);
22532
- refSave.addEventListener('mouseleave', hideCheckbox);
22533
- refSave.addEventListener('focus', displayCheckbox);
22534
- refSave.addEventListener('blur', hideCheckbox);
22535
- }
22536
- return () => {
22537
- if (refSave) {
22538
- refSave.removeEventListener('mouseenter', displayCheckbox);
22539
- refSave.removeEventListener('mouseleave', hideCheckbox);
22540
- refSave.removeEventListener('focus', displayCheckbox);
22541
- refSave.removeEventListener('blur', hideCheckbox);
22542
- }
22543
- };
22544
- }, [displayCheckbox, hideCheckbox, showCheckbox]);
22545
22614
  const rowData = React.useMemo(() => row.columns.map((column, i) => /*#__PURE__*/React__namespace.default.createElement("td", {
22546
22615
  key: i
22547
22616
  }, typeof column === 'string' ? /*#__PURE__*/React__namespace.default.createElement(Text, null, column) : column)), [row.columns]);
22617
+ const displayBlockCheckbox = React.useMemo(() => selected || selectionMode && multiSelect, [multiSelect, selected, selectionMode]);
22548
22618
  return /*#__PURE__*/React__namespace.default.createElement(TableRow, {
22549
22619
  ref: trRef,
22550
22620
  onClick: onClick,
@@ -22554,13 +22624,14 @@ const DefaultRowFactory = _ref10 => {
22554
22624
  showCheckbox: showCheckbox
22555
22625
  }, /*#__PURE__*/React__namespace.default.createElement("td", null, /*#__PURE__*/React__namespace.default.createElement(Row, {
22556
22626
  mainAlignment: 'center'
22557
- }, showCheckbox && (showCkb || selected || multiSelect && selectionMode) ? /*#__PURE__*/React__namespace.default.createElement(Checkbox, {
22627
+ }, showCheckbox && /*#__PURE__*/React__namespace.default.createElement(StyledCheckbox, {
22558
22628
  ref: ckbRef,
22559
22629
  size: 'small',
22560
22630
  value: selected,
22561
22631
  onClick: _onChange,
22562
- iconColor: multiSelect && selectionMode || selected ? 'primary' : 'text'
22563
- }) : /*#__PURE__*/React__namespace.default.createElement(Text, null, index))), rowData);
22632
+ iconColor: displayBlockCheckbox ? 'primary' : 'text',
22633
+ show: displayBlockCheckbox
22634
+ }), (!showCheckbox || !displayBlockCheckbox) && /*#__PURE__*/React__namespace.default.createElement(StyledText, null, index))), rowData);
22564
22635
  };
22565
22636
  const SELECT_ACTION = {
22566
22637
  TOGGLE: 'toggle',
@@ -22595,7 +22666,7 @@ function selectedReducer(state, action) {
22595
22666
  }
22596
22667
  }
22597
22668
  }
22598
- const Table = /*#__PURE__*/React__namespace.default.forwardRef(function TableFn(_ref11, ref) {
22669
+ const Table = /*#__PURE__*/React__namespace.default.forwardRef(function TableFn(_ref13, ref) {
22599
22670
  let {
22600
22671
  rows = [],
22601
22672
  headers = [],
@@ -22607,7 +22678,7 @@ const Table = /*#__PURE__*/React__namespace.default.forwardRef(function TableFn(
22607
22678
  selectedRows,
22608
22679
  multiSelect = true,
22609
22680
  ...rest
22610
- } = _ref11;
22681
+ } = _ref13;
22611
22682
  const [selected, dispatchSelected] = React.useReducer(selectedReducer, defaultSelection || selectedRows || []);
22612
22683
  const controlledMode = React.useMemo(() => selectedRows !== undefined, [selectedRows]);
22613
22684
  const controlledOnToggle = React.useCallback(id => {
@@ -22845,12 +22916,14 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
22845
22916
  maxHeight,
22846
22917
  zIndex = 999,
22847
22918
  onClick,
22919
+ containerWindow,
22848
22920
  ...rest
22849
22921
  } = _ref;
22850
22922
  const [delayedOpen, setDelayedOpen] = React.useState(false);
22851
22923
  const {
22852
- windowObj
22924
+ windowObj: themeWindowObj
22853
22925
  } = React.useContext(styled.ThemeContext);
22926
+ const windowObj = containerWindow ?? themeWindowObj;
22854
22927
  const modalRef = useCombinedRefs(ref);
22855
22928
  const modalContentRef = React.useRef(null);
22856
22929
  const startSentinelRef = React.useRef(null);
@@ -22910,19 +22983,17 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
22910
22983
  };
22911
22984
  }, [open, onStartSentinelFocus, onEndSentinelFocus, windowObj]);
22912
22985
  React.useEffect(() => {
22913
- const timeout = setTimeout(() => setDelayedOpen(open), 1);
22986
+ // delay the open of the modal after the show of the portal
22987
+ // in order to make the transition visible
22988
+ const timeout = setTimeout(() => setDelayedOpen(open), TIMERS.MODAL.DELAY_OPEN);
22914
22989
  return () => {
22915
22990
  clearTimeout(timeout);
22916
22991
  };
22917
22992
  }, [open]);
22918
- const modalWrapperClickHandler = React.useCallback(e => {
22919
- if (e) {
22920
- e.preventDefault();
22921
- }
22922
- }, []);
22923
22993
  return /*#__PURE__*/React__namespace.default.createElement(Portal, {
22924
22994
  show: open,
22925
- disablePortal: disablePortal
22995
+ disablePortal: disablePortal,
22996
+ container: windowObj.document.body
22926
22997
  }, /*#__PURE__*/React__namespace.default.createElement(ModalContainer, _extends({
22927
22998
  ref: modalRef,
22928
22999
  open: delayedOpen,
@@ -22936,9 +23007,7 @@ const CustomModal = /*#__PURE__*/React__namespace.default.forwardRef(function Mo
22936
23007
  }), /*#__PURE__*/React__namespace.default.createElement(Transition, {
22937
23008
  type: "scale-in",
22938
23009
  apply: delayedOpen
22939
- }, /*#__PURE__*/React__namespace.default.createElement(ModalWrapper, {
22940
- onClick: modalWrapperClickHandler
22941
- }, /*#__PURE__*/React__namespace.default.createElement(ModalContent, {
23010
+ }, /*#__PURE__*/React__namespace.default.createElement(ModalWrapper, null, /*#__PURE__*/React__namespace.default.createElement(ModalContent, {
22942
23011
  ref: modalContentRef,
22943
23012
  background: background,
22944
23013
  $size: size,
@@ -23173,11 +23242,8 @@ function copyToClipboard(node, windowObj) {
23173
23242
  }
23174
23243
  const Modal = /*#__PURE__*/React__namespace.default.forwardRef(function ModalFn(_ref, ref) {
23175
23244
  let {
23176
- background = 'gray6',
23177
23245
  type = 'default',
23178
23246
  title: Title,
23179
- size = 'small',
23180
- open = false,
23181
23247
  centered = false,
23182
23248
  onConfirm,
23183
23249
  confirmLabel = 'OK',
@@ -23191,113 +23257,21 @@ const Modal = /*#__PURE__*/React__namespace.default.forwardRef(function ModalFn(
23191
23257
  customFooter,
23192
23258
  hideFooter = false,
23193
23259
  showCloseIcon = true,
23194
- minHeight,
23195
- maxHeight,
23196
23260
  children,
23197
23261
  containerWindow,
23198
- disablePortal = false,
23199
- zIndex = 999,
23200
- onClick,
23201
23262
  closeIconTooltip,
23202
23263
  ...rest
23203
23264
  } = _ref;
23204
- const [delayedOpen, setDelayedOpen] = React.useState(false);
23205
23265
  const {
23206
23266
  windowObj: themeWindowObj
23207
23267
  } = React.useContext(styled.ThemeContext);
23208
23268
  const windowObj = containerWindow ?? themeWindowObj;
23209
- const innerRef = React.useRef(null);
23210
- const modalRef = useCombinedRefs(ref, innerRef);
23211
- const modalContentRef = React.useRef(null);
23212
23269
  const modalBodyRef = React.useRef(null);
23213
- const startSentinelRef = React.useRef(null);
23214
- const endSentinelRef = React.useRef(null);
23215
- const onBackdropClick = React.useCallback(e => {
23216
- if (e) {
23217
- e.stopPropagation();
23218
- }
23219
- if (!e.defaultPrevented && modalContentRef.current && e.target instanceof Node && !modalContentRef.current.contains(e.target) && onClose) {
23220
- onClose(e);
23221
- }
23222
- }, [onClose]);
23223
23270
  const onCopyClipboard = React.useCallback(() => copyToClipboard(modalBodyRef.current, windowObj), [windowObj]);
23224
- const onStartSentinelFocus = React.useCallback(() => {
23225
- if (modalContentRef.current) {
23226
- const nodeList = modalContentRef.current.querySelectorAll('[tabindex]');
23227
- nodeList[nodeList.length - 1].focus();
23228
- }
23229
- }, []);
23230
- const onEndSentinelFocus = React.useCallback(() => {
23231
- if (modalContentRef.current != null) {
23232
- modalContentRef.current.querySelector('[tabindex]')?.focus();
23233
- }
23234
- }, []);
23235
- const escapeEvent = React.useMemo(() => [{
23236
- type: 'keydown',
23237
- callback: onClose || _noop,
23238
- keys: ['Escape'],
23239
- modifier: false
23240
- }], [onClose]);
23241
- useKeyboard(modalRef, escapeEvent);
23242
- React.useEffect(() => {
23243
- if (open) {
23244
- const defaultOverflowY = windowObj.document.body.style.overflowY;
23245
- const defaultPaddingRight = windowObj.document.body.style.paddingRight;
23246
- windowObj.document.body.style.overflowY = 'hidden';
23247
- modalRef.current != null && isBodyOverflowing(modalRef, windowObj) && (windowObj.document.body.style.paddingRight = `${getScrollbarSize(windowObj)}px`);
23248
- return () => {
23249
- windowObj.document.body.style.overflowY = defaultOverflowY;
23250
- windowObj.document.body.style.paddingRight = defaultPaddingRight;
23251
- };
23252
- }
23253
- return () => undefined;
23254
- }, [modalRef, open, windowObj]);
23255
- React.useEffect(() => {
23256
- const focusedElement = windowObj.document.activeElement;
23257
- if (open) {
23258
- modalContentRef.current?.focus();
23259
- startSentinelRef.current?.addEventListener('focus', onStartSentinelFocus);
23260
- endSentinelRef.current?.addEventListener('focus', onEndSentinelFocus);
23261
- }
23262
- const startSentinelRefSave = startSentinelRef.current;
23263
- const endSentinelRefSave = endSentinelRef.current;
23264
- return () => {
23265
- startSentinelRefSave && startSentinelRefSave.removeEventListener('focus', onStartSentinelFocus);
23266
- endSentinelRefSave && endSentinelRefSave.removeEventListener('focus', onEndSentinelFocus);
23267
- open && focusedElement && focusedElement.focus();
23268
- };
23269
- }, [open, onStartSentinelFocus, onEndSentinelFocus, windowObj]);
23270
- React.useEffect(() => {
23271
- const timeout = setTimeout(() => setDelayedOpen(open), 1);
23272
- return () => {
23273
- clearTimeout(timeout);
23274
- };
23275
- }, [open]);
23276
- return /*#__PURE__*/React__namespace.default.createElement(Portal, {
23277
- show: open,
23278
- disablePortal: disablePortal,
23279
- container: windowObj.document.body
23280
- }, /*#__PURE__*/React__namespace.default.createElement(ModalContainer, _extends({
23281
- ref: modalRef,
23282
- open: delayedOpen,
23283
- mounted: open,
23284
- onClick: onBackdropClick,
23285
- zIndex: zIndex,
23286
- "data-testid": "modal"
23287
- }, rest), /*#__PURE__*/React__namespace.default.createElement("div", {
23288
- tabIndex: 0,
23289
- ref: startSentinelRef
23290
- }), /*#__PURE__*/React__namespace.default.createElement(Transition, {
23291
- type: "scale-in",
23292
- apply: delayedOpen
23293
- }, /*#__PURE__*/React__namespace.default.createElement(ModalWrapper, null, /*#__PURE__*/React__namespace.default.createElement(ModalContent, {
23294
- ref: modalContentRef,
23295
- background: background,
23296
- $size: size,
23297
- minHeight: minHeight,
23298
- maxHeight: maxHeight,
23299
- onClick: onClick
23300
- }, /*#__PURE__*/React__namespace.default.createElement(ModalHeader, {
23271
+ return /*#__PURE__*/React__namespace.default.createElement(CustomModal, _extends({
23272
+ onClose: onClose,
23273
+ ref: ref
23274
+ }, rest), /*#__PURE__*/React__namespace.default.createElement(ModalHeader, {
23301
23275
  centered: centered,
23302
23276
  type: type,
23303
23277
  title: Title,
@@ -23321,9 +23295,6 @@ const Modal = /*#__PURE__*/React__namespace.default.forwardRef(function ModalFn(
23321
23295
  secondaryActionLabel: secondaryActionLabel,
23322
23296
  onErrorAction: onCopyClipboard,
23323
23297
  errorActionLabel: copyLabel
23324
- }))))), /*#__PURE__*/React__namespace.default.createElement("div", {
23325
- tabIndex: 0,
23326
- ref: endSentinelRef
23327
23298
  })));
23328
23299
  });
23329
23300
 
@@ -23772,7 +23743,7 @@ const Snackbar = /*#__PURE__*/React__namespace.default.forwardRef(function Snack
23772
23743
  "data-testid": "snackbar",
23773
23744
  padding: {
23774
23745
  top: '0.5rem',
23775
- right: '0.5rem',
23746
+ right: hideButton ? '1.5rem' : '0.5rem',
23776
23747
  bottom: '0.5rem',
23777
23748
  left: '1.5rem'
23778
23749
  },
@@ -25886,6 +25857,24 @@ const SvgBug = props => /*#__PURE__*/React__namespace.createElement("svg", _exte
25886
25857
  }));
25887
25858
  var SvgBug$1 = SvgBug;
25888
25859
 
25860
+ const SvgBuilding = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
25861
+ xmlns: "http://www.w3.org/2000/svg",
25862
+ width: 24,
25863
+ height: 24,
25864
+ fill: "none"
25865
+ }, props), /*#__PURE__*/React__namespace.createElement("g", {
25866
+ clipPath: "url(#a)"
25867
+ }, /*#__PURE__*/React__namespace.createElement("path", {
25868
+ fillRule: "evenodd",
25869
+ d: "M9 9V4a2 2 0 0 1 2-2h7a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-9a2 2 0 0 1 2-2h3Zm3-3.4a.6.6 0 0 1 .6-.6h.8a.6.6 0 0 1 .6.6v.8a.6.6 0 0 1-.6.6h-.8a.6.6 0 0 1-.6-.6v-.8Zm3.6-.6a.6.6 0 0 0-.6.6v.8a.6.6 0 0 0 .6.6h.8a.6.6 0 0 0 .6-.6v-.8a.6.6 0 0 0-.6-.6h-.8ZM12 8.6a.6.6 0 0 1 .6-.6h.8a.6.6 0 0 1 .6.6v.8a.6.6 0 0 1-.6.6h-.8a.6.6 0 0 1-.6-.6v-.8Zm3.6-.6a.6.6 0 0 0-.6.6v.8a.6.6 0 0 0 .6.6h.8a.6.6 0 0 0 .6-.6v-.8a.6.6 0 0 0-.6-.6h-.8ZM12 11.6a.6.6 0 0 1 .6-.6h.8a.6.6 0 0 1 .6.6v.8a.6.6 0 0 1-.6.6h-.8a.6.6 0 0 1-.6-.6v-.8Zm3.6-.6a.6.6 0 0 0-.6.6v.8a.6.6 0 0 0 .6.6h.8a.6.6 0 0 0 .6-.6v-.8a.6.6 0 0 0-.6-.6h-.8ZM12 14.6a.6.6 0 0 1 .6-.6h.8a.6.6 0 0 1 .6.6v.8a.6.6 0 0 1-.6.6h-.8a.6.6 0 0 1-.6-.6v-.8Zm3.6-.6a.6.6 0 0 0-.6.6v.8a.6.6 0 0 0 .6.6h.8a.6.6 0 0 0 .6-.6v-.8a.6.6 0 0 0-.6-.6h-.8ZM7 12.6a.6.6 0 0 1 .6-.6h.8a.6.6 0 0 1 .6.6v.8a.6.6 0 0 1-.6.6h-.8a.6.6 0 0 1-.6-.6v-.8Zm.6 2.4a.6.6 0 0 0-.6.6v.8a.6.6 0 0 0 .6.6h.8a.6.6 0 0 0 .6-.6v-.8a.6.6 0 0 0-.6-.6h-.8Z",
25870
+ clipRule: "evenodd"
25871
+ })), /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
25872
+ id: "a"
25873
+ }, /*#__PURE__*/React__namespace.createElement("path", {
25874
+ d: "M0 0h24v24H0z"
25875
+ }))));
25876
+ var SvgBuilding$1 = SvgBuilding;
25877
+
25889
25878
  const SvgBulb = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
25890
25879
  xmlns: "http://www.w3.org/2000/svg",
25891
25880
  viewBox: "0 0 24 24"
@@ -29713,6 +29702,7 @@ var fillData = /*#__PURE__*/Object.freeze({
29713
29702
  Brush: SvgBrush$1,
29714
29703
  Bucket: SvgBucket$1,
29715
29704
  Bug: SvgBug$1,
29705
+ Building: SvgBuilding$1,
29716
29706
  Bulb: SvgBulb$1,
29717
29707
  Cake: SvgCake$1,
29718
29708
  Calendar: SvgCalendar$1,
@@ -30849,6 +30839,84 @@ const SvgBugOutline = props => /*#__PURE__*/React__namespace.createElement("svg"
30849
30839
  }));
30850
30840
  var SvgBugOutline$1 = SvgBugOutline;
30851
30841
 
30842
+ const SvgBuildingOutline = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
30843
+ xmlns: "http://www.w3.org/2000/svg",
30844
+ width: 24,
30845
+ height: 24,
30846
+ fill: "none"
30847
+ }, props), /*#__PURE__*/React__namespace.createElement("g", {
30848
+ clipPath: "url(#a)"
30849
+ }, /*#__PURE__*/React__namespace.createElement("path", {
30850
+ fillRule: "evenodd",
30851
+ d: "M9 4v5H6a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-7a2 2 0 0 0-2 2Zm2 0h7v16H6v-9h5V4Z",
30852
+ clipRule: "evenodd"
30853
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30854
+ width: 2,
30855
+ height: 2,
30856
+ x: 12,
30857
+ y: 5,
30858
+ rx: 0.6
30859
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30860
+ width: 2,
30861
+ height: 2,
30862
+ x: 15,
30863
+ y: 5,
30864
+ rx: 0.6
30865
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30866
+ width: 2,
30867
+ height: 2,
30868
+ x: 12,
30869
+ y: 8,
30870
+ rx: 0.6
30871
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30872
+ width: 2,
30873
+ height: 2,
30874
+ x: 15,
30875
+ y: 8,
30876
+ rx: 0.6
30877
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30878
+ width: 2,
30879
+ height: 2,
30880
+ x: 12,
30881
+ y: 11,
30882
+ rx: 0.6
30883
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30884
+ width: 2,
30885
+ height: 2,
30886
+ x: 15,
30887
+ y: 11,
30888
+ rx: 0.6
30889
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30890
+ width: 2,
30891
+ height: 2,
30892
+ x: 12,
30893
+ y: 14,
30894
+ rx: 0.6
30895
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30896
+ width: 2,
30897
+ height: 2,
30898
+ x: 15,
30899
+ y: 14,
30900
+ rx: 0.6
30901
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30902
+ width: 2,
30903
+ height: 2,
30904
+ x: 7,
30905
+ y: 12,
30906
+ rx: 0.6
30907
+ }), /*#__PURE__*/React__namespace.createElement("rect", {
30908
+ width: 2,
30909
+ height: 2,
30910
+ x: 7,
30911
+ y: 15,
30912
+ rx: 0.6
30913
+ })), /*#__PURE__*/React__namespace.createElement("defs", null, /*#__PURE__*/React__namespace.createElement("clipPath", {
30914
+ id: "a"
30915
+ }, /*#__PURE__*/React__namespace.createElement("path", {
30916
+ d: "M0 0h24v24H0z"
30917
+ }))));
30918
+ var SvgBuildingOutline$1 = SvgBuildingOutline;
30919
+
30852
30920
  const SvgBulbOutline = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
30853
30921
  xmlns: "http://www.w3.org/2000/svg",
30854
30922
  viewBox: "0 0 24 24"
@@ -35028,6 +35096,7 @@ var outlineData = /*#__PURE__*/Object.freeze({
35028
35096
  BrushOutline: SvgBrushOutline$1,
35029
35097
  BucketOutline: SvgBucketOutline$1,
35030
35098
  BugOutline: SvgBugOutline$1,
35099
+ BuildingOutline: SvgBuildingOutline$1,
35031
35100
  BulbOutline: SvgBulbOutline$1,
35032
35101
  CakeOutline: SvgCakeOutline$1,
35033
35102
  CalendarBookShareWithMeOutline: SvgCalendarBookShareWithMeOutline$1,