@digital-ai/dot-components 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/CHANGE_LOG.md +24 -3
  2. package/dot-components.esm.js +452 -265
  3. package/dot-components.umd.js +466 -281
  4. package/lib/components/BaseButtonProps.d.ts +2 -2
  5. package/lib/components/auto-complete/AutoComplete.d.ts +3 -3
  6. package/lib/components/avatar/Avatar.d.ts +2 -2
  7. package/lib/components/breadcrumbs/Breadcrumbs.data.d.ts +2 -0
  8. package/lib/components/breadcrumbs/Breadcrumbs.styles.d.ts +2 -0
  9. package/lib/components/breadcrumbs/utils/helpers.d.ts +19 -0
  10. package/lib/components/breadcrumbs/utils/useBreadcrumbsObserver.d.ts +11 -0
  11. package/lib/components/breadcrumbs/utils/useBreadcrumbsResizer.d.ts +16 -0
  12. package/lib/components/button/IconButton.d.ts +2 -2
  13. package/lib/components/button-toggle/ButtonToggle.d.ts +2 -2
  14. package/lib/components/chip/Chip.d.ts +4 -4
  15. package/lib/components/css-grid/CssCell.d.ts +5 -5
  16. package/lib/components/css-grid/CssGrid.d.ts +4 -4
  17. package/lib/components/drawer/Drawer.d.ts +4 -4
  18. package/lib/components/dynamic-form/models.d.ts +8 -8
  19. package/lib/components/index.d.ts +1 -0
  20. package/lib/components/list/List.d.ts +1 -1
  21. package/lib/components/menu/Menu.d.ts +4 -4
  22. package/lib/components/radio/RadioButton.d.ts +2 -2
  23. package/lib/components/sidebar/Sidebar.d.ts +2 -2
  24. package/lib/components/table/Table.d.ts +6 -6
  25. package/lib/components/table/TableCell.d.ts +1 -1
  26. package/lib/components/table/TableDataWithPagination.d.ts +4 -4
  27. package/lib/components/table/TableHeader.d.ts +2 -2
  28. package/lib/testing-utils/resize-observer-mock.d.ts +1 -0
  29. package/package.json +1 -1
@@ -127,12 +127,10 @@ var DotAccordion = function DotAccordion(_ref) {
127
127
  className = _ref.className,
128
128
  _ref$dataTestid = _ref['data-testid'],
129
129
  dataTestId = _ref$dataTestid === void 0 ? 'dot-accordion' : _ref$dataTestid,
130
- _ref$defaultExpanded = _ref.defaultExpanded,
131
- defaultExpanded = _ref$defaultExpanded === void 0 ? null : _ref$defaultExpanded,
130
+ defaultExpanded = _ref.defaultExpanded,
132
131
  _ref$disabled = _ref.disabled,
133
132
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
134
- _ref$expanded = _ref.expanded,
135
- expanded = _ref$expanded === void 0 ? null : _ref$expanded,
133
+ expanded = _ref.expanded,
136
134
  _ref$hasElevation = _ref.hasElevation,
137
135
  hasElevation = _ref$hasElevation === void 0 ? false : _ref$hasElevation,
138
136
  onChange = _ref.onChange,
@@ -149,11 +147,11 @@ var DotAccordion = function DotAccordion(_ref) {
149
147
  setElevation = _useState[1];
150
148
 
151
149
  useEffect(function () {
152
- if (defaultExpanded !== null) {
150
+ if (defaultExpanded !== undefined) {
153
151
  console.warn('The use of `defaultExpanded` is deprecated and will be removed in the next major release, please use `expanded` instead.');
154
152
  }
155
153
 
156
- if (onChange && expanded === null) {
154
+ if (onChange && expanded === undefined) {
157
155
  console.warn('The use of an `onChange` callback makes this a controlled component but no `expanded` state has been provided. In effect, this makes the component disabled.');
158
156
  }
159
157
  }, []);
@@ -162,8 +160,8 @@ var DotAccordion = function DotAccordion(_ref) {
162
160
  }, [hasElevation]);
163
161
  var dftExpanded = defaultExpanded;
164
162
 
165
- if (dftExpanded === null) {
166
- dftExpanded = expanded === null ? false : expanded;
163
+ if (dftExpanded === undefined) {
164
+ dftExpanded = expanded === undefined ? false : expanded;
167
165
  }
168
166
 
169
167
  return /*#__PURE__*/React__default.createElement(StyledAccordion, {
@@ -172,8 +170,8 @@ var DotAccordion = function DotAccordion(_ref) {
172
170
  "data-testid": dataTestId,
173
171
  defaultExpanded: dftExpanded,
174
172
  disabled: disabled,
175
- expanded: onChange ? expanded : null,
176
173
  elevation: elevation,
174
+ expanded: onChange ? expanded : undefined,
177
175
  onChange: onChange,
178
176
  square: square
179
177
  }, /*#__PURE__*/React__default.createElement(AccordionSummary, {
@@ -183,8 +181,8 @@ var DotAccordion = function DotAccordion(_ref) {
183
181
  iconId: "chevron-down"
184
182
  })
185
183
  }, startIcon, /*#__PURE__*/React__default.createElement(DotTypography, {
186
- variant: "body1",
187
- noWrap: noWrap
184
+ noWrap: noWrap,
185
+ variant: "body1"
188
186
  }, /*#__PURE__*/React__default.createElement(DotTooltip, {
189
187
  title: noWrap ? summary : ''
190
188
  }, summary))), /*#__PURE__*/React__default.createElement(AccordionDetails, {
@@ -548,8 +546,8 @@ var DotIconButton = function DotIconButton(_ref) {
548
546
  },
549
547
  color: color,
550
548
  "data-testid": dataTestId,
551
- disabled: disabled,
552
549
  disableRipple: disableRipple,
550
+ disabled: disabled,
553
551
  onClick: function onClick(event) {
554
552
  return _onClick && _onClick(event);
555
553
  },
@@ -613,8 +611,8 @@ var DotLink = function DotLink(_ref) {
613
611
  "data-testid": dataTestId,
614
612
  href: href,
615
613
  onClick: onClick,
616
- onMouseEnter: onMouseEnter,
617
614
  onKeyPress: handleKeyPress,
615
+ onMouseEnter: onMouseEnter,
618
616
  rel: rel,
619
617
  tabIndex: tabIndex,
620
618
  target: target,
@@ -1179,34 +1177,13 @@ var getAvatarColorForInputText = function getAvatarColorForInputText(value) {
1179
1177
  return colorOptions[numberFromValue % colorOptions.length];
1180
1178
  };
1181
1179
 
1182
- var DotAvatar = function DotAvatar(_ref) {
1183
- var alt = _ref.alt,
1184
- ariaLabel = _ref.ariaLabel,
1185
- className = _ref.className,
1186
- _ref$component = _ref.component,
1187
- component = _ref$component === void 0 ? 'div' : _ref$component,
1188
- color = _ref.color,
1189
- dataTestId = _ref['data-testid'],
1180
+ var AvatarContent = function AvatarContent(_ref) {
1181
+ var dataTestId = _ref['data-testid'],
1190
1182
  iconId = _ref.iconId,
1191
1183
  imageSrc = _ref.imageSrc,
1192
- _onClick = _ref.onClick,
1193
- _ref$size = _ref.size,
1194
- size = _ref$size === void 0 ? 'medium' : _ref$size,
1195
- _ref$text = _ref.text,
1196
- text = _ref$text === void 0 ? alt : _ref$text,
1197
- _ref$type = _ref.type,
1198
- type = _ref$type === void 0 ? 'image' : _ref$type,
1199
- tooltip = _ref.tooltip,
1200
- _ref$variant = _ref.variant,
1201
- variant = _ref$variant === void 0 ? 'circular' : _ref$variant,
1202
- style = _ref.style;
1203
- var rootClasses = useStylesWithRootClass(rootClassName$C, className);
1204
-
1205
- var getAvatarColor = function getAvatarColor() {
1206
- if (color) return color;
1207
- if (text && text !== alt) return getAvatarColorForInputText(text);
1208
- return 'default';
1209
- };
1184
+ size = _ref.size,
1185
+ text = _ref.text,
1186
+ type = _ref.type;
1210
1187
 
1211
1188
  var parsedText = function parsedText() {
1212
1189
  var textArray = text.split(' ');
@@ -1228,32 +1205,79 @@ var DotAvatar = function DotAvatar(_ref) {
1228
1205
  return size === 'small' ? size : 'medium';
1229
1206
  };
1230
1207
 
1208
+ if (type === 'icon' || type === 'image' && !imageSrc) {
1209
+ return /*#__PURE__*/React__default.createElement(DotIcon, {
1210
+ "data-testid": dataTestId + "-icon",
1211
+ fontSize: getIconFontSizeFromAvatarSize(),
1212
+ iconId: iconId || 'user'
1213
+ });
1214
+ }
1215
+
1216
+ if (type === 'text') {
1217
+ return /*#__PURE__*/React__default.createElement(DotTypography, {
1218
+ variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
1219
+ }, parsedText());
1220
+ }
1221
+
1222
+ return null;
1223
+ };
1224
+
1225
+ var DotAvatar = function DotAvatar(_ref2) {
1226
+ var alt = _ref2.alt,
1227
+ ariaLabel = _ref2.ariaLabel,
1228
+ className = _ref2.className,
1229
+ _ref2$component = _ref2.component,
1230
+ component = _ref2$component === void 0 ? 'div' : _ref2$component,
1231
+ color = _ref2.color,
1232
+ dataTestId = _ref2['data-testid'],
1233
+ iconId = _ref2.iconId,
1234
+ imageSrc = _ref2.imageSrc,
1235
+ _onClick = _ref2.onClick,
1236
+ _ref2$size = _ref2.size,
1237
+ size = _ref2$size === void 0 ? 'medium' : _ref2$size,
1238
+ _ref2$text = _ref2.text,
1239
+ text = _ref2$text === void 0 ? alt : _ref2$text,
1240
+ _ref2$type = _ref2.type,
1241
+ type = _ref2$type === void 0 ? 'image' : _ref2$type,
1242
+ tooltip = _ref2.tooltip,
1243
+ _ref2$variant = _ref2.variant,
1244
+ variant = _ref2$variant === void 0 ? 'circular' : _ref2$variant,
1245
+ style = _ref2.style;
1246
+ var rootClasses = useStylesWithRootClass(rootClassName$C, className);
1247
+
1248
+ var getAvatarColor = function getAvatarColor() {
1249
+ if (color) return color;
1250
+ if (text && text !== alt) return getAvatarColorForInputText(text);
1251
+ return 'default';
1252
+ };
1253
+
1231
1254
  return /*#__PURE__*/React__default.createElement(DotTooltip, {
1232
1255
  title: tooltip
1233
1256
  }, /*#__PURE__*/React__default.createElement(StyledAvatar, {
1234
1257
  alt: alt,
1235
1258
  "aria-label": ariaLabel,
1236
1259
  className: size,
1237
- color: getAvatarColor(),
1238
- component: _onClick ? 'button' : component,
1239
1260
  classes: {
1240
1261
  root: rootClasses,
1241
1262
  img: 'dot-img'
1242
1263
  },
1264
+ color: getAvatarColor(),
1265
+ component: _onClick ? 'button' : component,
1243
1266
  "data-testid": dataTestId,
1244
1267
  onClick: function onClick(event) {
1245
1268
  return _onClick ? _onClick(event) : null;
1246
1269
  },
1247
1270
  src: type === 'image' ? imageSrc : null,
1248
- variant: variant,
1249
- style: style
1250
- }, type === 'icon' || type === 'image' && !imageSrc ? /*#__PURE__*/React__default.createElement(DotIcon, {
1251
- "data-testid": dataTestId + "-icon",
1252
- iconId: iconId ? iconId : 'user',
1253
- fontSize: getIconFontSizeFromAvatarSize()
1254
- }) : type === 'text' ? /*#__PURE__*/React__default.createElement(DotTypography, {
1255
- variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
1256
- }, parsedText()) : null));
1271
+ style: style,
1272
+ variant: variant
1273
+ }, /*#__PURE__*/React__default.createElement(AvatarContent, {
1274
+ "data-testid": dataTestId,
1275
+ iconId: iconId,
1276
+ imageSrc: imageSrc,
1277
+ text: text,
1278
+ type: type,
1279
+ size: size
1280
+ })));
1257
1281
  };
1258
1282
 
1259
1283
  var _templateObject$E;
@@ -1290,16 +1314,16 @@ var DotDrawer = function DotDrawer(_ref) {
1290
1314
  width = _ref$width === void 0 ? '256px' : _ref$width;
1291
1315
  var rootClasses = useStylesWithRootClass(rootClassName$B, className);
1292
1316
  return /*#__PURE__*/React__default.createElement(StyledDrawer, {
1293
- "aria-label": ariaLabel,
1294
- "data-testid": dataTestId,
1317
+ ModalProps: ModalProps,
1318
+ PaperProps: PaperProps,
1295
1319
  anchor: anchor,
1320
+ "aria-label": ariaLabel,
1296
1321
  classes: {
1297
1322
  root: rootClasses,
1298
1323
  paper: 'dot-drawer-paper'
1299
1324
  },
1325
+ "data-testid": dataTestId,
1300
1326
  height: height,
1301
- ModalProps: ModalProps,
1302
- PaperProps: PaperProps,
1303
1327
  onClose: function onClose(event) {
1304
1328
  return _onClose && _onClose(event);
1305
1329
  },
@@ -1490,10 +1514,10 @@ var DotMenu = function DotMenu(_ref) {
1490
1514
  return /*#__PURE__*/React__default.createElement(MenuItem, {
1491
1515
  "aria-label": item.ariaLabel,
1492
1516
  className: "dot-li " + (item.classes ? item.classes : ''),
1517
+ key: index,
1493
1518
  onClick: function onClick(event) {
1494
1519
  return handleSelect(event, item.key);
1495
1520
  },
1496
- key: index,
1497
1521
  style: {
1498
1522
  height: calculateItemHeight()
1499
1523
  }
@@ -1502,7 +1526,7 @@ var DotMenu = function DotMenu(_ref) {
1502
1526
  });
1503
1527
  };
1504
1528
 
1505
- var _templateObject$B, _templateObject2$7;
1529
+ var _templateObject$B, _templateObject2$8;
1506
1530
  var rootClassName$y = 'dot-list';
1507
1531
  var listItemRootClass = 'dot-list-item';
1508
1532
  var nestedListClassName = 'dot-nested-list';
@@ -1514,7 +1538,7 @@ var StyledList = styled(List)(_templateObject$B || (_templateObject$B = _taggedT
1514
1538
  var theme = _ref.theme;
1515
1539
  return css(["&.", "{background:", ";&.", " .", "{padding-left:", "px;}.", " .dot-drawer-paper{z-index:", ";}.MuiListSubheader-root{padding:0;.MuiTypography-root{padding:", "px;}}}"], rootClassName$y, theme.palette.layer.n0, nestedListClassName, listItemRootClass, theme.spacing(4), nestedDrawerClassName, levelBottom, theme.spacing(1));
1516
1540
  });
1517
- var StyledListItem = styled(ListItem)(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
1541
+ var StyledListItem = styled(ListItem)(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
1518
1542
  var theme = _ref2.theme;
1519
1543
  return css(["&.", "{&.", "{padding:0;}p.MuiTypography-root{margin-bottom:0;}.", "{align-items:center;display:flex;flex-grow:2;}.", " .MuiIcon-root{margin-right:", "px;}.dot-list-item-end-icon{min-width:auto;}.dot-icon i:before{color:", ";}}"], listItemRootClass, flyoutListItemClassName, listItemLinkClassName, flyoutItemLinkClassName, theme.spacing(4), theme.palette.text.primary);
1520
1544
  });
@@ -1577,8 +1601,8 @@ var NestedList = function NestedList(_ref) {
1577
1601
  component: href && !onClick ? 'a' : null,
1578
1602
  href: href,
1579
1603
  key: parentItemIndex + "-" + index,
1580
- target: target,
1581
- onClick: onClick
1604
+ onClick: onClick,
1605
+ target: target
1582
1606
  }, /*#__PURE__*/React__default.createElement("span", {
1583
1607
  className: flyoutSpanClasses
1584
1608
  }, startIconId && startIcon, /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -1589,30 +1613,30 @@ var NestedList = function NestedList(_ref) {
1589
1613
  };
1590
1614
  });
1591
1615
  return /*#__PURE__*/React__default.createElement(DotMenu, {
1592
- ariaLabel: ariaLabel,
1593
1616
  anchorEl: anchorEl,
1617
+ ariaLabel: ariaLabel,
1594
1618
  className: flyoutMenuClassName,
1595
1619
  id: CreateUUID(),
1620
+ key: parentItemIndex,
1596
1621
  menuItemHeight: "auto",
1597
1622
  menuItems: menuItems,
1598
1623
  menuPlacement: menuPlacement,
1599
1624
  onLeave: onMenuLeave,
1600
- open: open,
1601
- key: parentItemIndex
1625
+ open: open
1602
1626
  });
1603
1627
  }
1604
1628
 
1605
1629
  if (type === 'drawer') {
1606
1630
  return /*#__PURE__*/React__default.createElement(DotDrawer, {
1607
- anchor: "left",
1608
- className: nestedDrawerClassName,
1609
- "data-testid": "nested-drawer",
1610
- open: open,
1611
1631
  PaperProps: {
1612
1632
  style: {
1613
1633
  left: nestedDrawerLeftSpacing + "px"
1614
1634
  }
1615
1635
  },
1636
+ anchor: "left",
1637
+ className: nestedDrawerClassName,
1638
+ "data-testid": "nested-drawer",
1639
+ open: open,
1616
1640
  variant: "persistent"
1617
1641
  }, /*#__PURE__*/React__default.createElement(DotList, {
1618
1642
  ariaLabel: ariaLabel,
@@ -1705,8 +1729,8 @@ var DotList = function DotList(_ref3) {
1705
1729
 
1706
1730
  if (item.divider) {
1707
1731
  return /*#__PURE__*/React__default.createElement(DotListDivider, {
1708
- item: item,
1709
1732
  index: index,
1733
+ item: item,
1710
1734
  key: "divider-" + index
1711
1735
  });
1712
1736
  }
@@ -1719,12 +1743,12 @@ var DotList = function DotList(_ref3) {
1719
1743
  href: item.href,
1720
1744
  isOpened: listItemIndex === index,
1721
1745
  items: item.items,
1722
- onClick: item.href && !item.onClick ? null : handleListItemClick,
1723
- onMenuLeave: handleMenuLeave,
1724
1746
  key: index,
1725
1747
  menuPlacement: menuPlacement,
1726
1748
  nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1727
1749
  nestedListType: nestedListType,
1750
+ onClick: item.href && !item.onClick ? null : handleListItemClick,
1751
+ onMenuLeave: handleMenuLeave,
1728
1752
  primaryText: item.primaryText,
1729
1753
  secondaryText: item.secondaryText,
1730
1754
  selected: item.selected,
@@ -1857,11 +1881,11 @@ var DotListItem = function DotListItem(_ref4) {
1857
1881
  className: "toggle-display",
1858
1882
  iconId: getChevronIcon()
1859
1883
  })) : endIconId && endIcon)), hasChildren && /*#__PURE__*/React__default.createElement(NestedList, {
1860
- ariaLabel: "nested list",
1861
1884
  anchorEl: anchorEl,
1885
+ ariaLabel: "nested list",
1862
1886
  items: items,
1863
- nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1864
1887
  menuPlacement: menuPlacement,
1888
+ nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1865
1889
  onMenuLeave: handleMenuLeave,
1866
1890
  open: isOpened,
1867
1891
  type: nestedListType
@@ -2134,13 +2158,13 @@ function SvgLogoDigitalAiWhite(_ref, svgRef) {
2134
2158
 
2135
2159
  var ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAiWhite);
2136
2160
 
2137
- var _templateObject$z, _templateObject2$6;
2161
+ var _templateObject$z, _templateObject2$7;
2138
2162
  var rootClassName$w = 'dot-app-toolbar';
2139
2163
  var denseClassName = 'dense';
2140
2164
  var StyledMainMenu = styled(DotDrawer)(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n ", "\n"])), function () {
2141
2165
  return css(["&.dot-main-menu{&.", " .dot-drawer-paper{top:48px;.dot-sidebar{height:calc(100vh - 48px);}}.dot-drawer-paper{top:64px;padding:0;.dot-sidebar{height:calc(100vh - 64px);}}}"], denseClassName);
2142
2166
  });
2143
- var StyledAppToolbar = styled.header(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2167
+ var StyledAppToolbar = styled.header(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2144
2168
  var theme = _ref.theme;
2145
2169
  return css(["&.", "{align-items:center;background:", ";border-bottom:4px solid ", ";box-sizing:border-box;color:", ";display:flex;height:64px;padding:", ";position:fixed;width:100%;z-index:", ";top:0;left:0;right:0;&.", "{height:48px;.divider{height:32px;}}.divider{height:36px;width:1px;background:", ";}.dot-icon-btn{border:", ";color:", ";&:hover,&:active,&:focus{background:", ";}}.dot-main-menu-btn{padding:", ";text-align:center;}.dot-branding{align-items:center;display:flex;padding:", ";.primary-logo,.app-logo{margin-right:", "px;}.primary-logo,.dot-app-logo{display:flex;max-width:200px;svg,img{max-height:36px;max-width:200px;}}a{line-height:0;}.dot-product-name{color:", ";font-size:18px;margin:", ";}.divider{margin-left:", "px;}}div.dot-right-side{display:flex;flex-grow:2;justify-content:flex-end;}.avatar-wrapper{display:flex;align-items:center;justify-content:center;width:40px;button.dot-avatar:focus-visible{box-shadow:0px 0px 0px 3px ", ",0px 0px 0px 5px ", ";}}}"], rootClassName$w, theme.palette.product === 'agility' ? theme.palette.agilityInterface.headerBg : theme.palette.grey[700], theme.palette.grey[100], theme.palette.grey[0], theme.spacing(1.5, 2, 1.5, 0), levelFourth, denseClassName, n400$2, theme.palette.product === 'agility' && 'none', theme.palette.grey[100], theme.palette.product === 'agility' && theme.palette.agilityInterface.topBarIconHoverBg, theme.spacing(0, 1), theme.spacing(0, 2), theme.spacing(1.5), theme.palette.grey[100], theme.spacing(0, 1.5), theme.spacing(2), theme.palette.layer.n900, theme.palette.layer.n0);
2146
2170
  });
@@ -2172,8 +2196,9 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2172
2196
  var showMainMenu = mainMenu || mainMenuItems;
2173
2197
  var displayAppLogo = appLogo || appLogoSmall;
2174
2198
  var mainMenuRef = useRef(null);
2175
- var rootClasses = useStylesWithRootClass(rootClassName$w, className, dense ? denseClassName : '');
2176
- var mainMenuClasses = useStylesWithRootClass('dot-main-menu', dense ? denseClassName : '', menuOpen ? 'open' : '');
2199
+ var denseClass = dense ? denseClassName : '';
2200
+ var rootClasses = useStylesWithRootClass(rootClassName$w, className, denseClass);
2201
+ var mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
2177
2202
  var targetBreakpoint = useMediaQuery(function (theme) {
2178
2203
  return theme.breakpoints.up('md');
2179
2204
  });
@@ -2230,8 +2255,8 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2230
2255
  return updateMenuOpen(false);
2231
2256
  },
2232
2257
  open: menuOpen,
2233
- width: mainMenuWidth + 'px',
2234
- variant: "persistent"
2258
+ variant: "persistent",
2259
+ width: mainMenuWidth + 'px'
2235
2260
  }, /*#__PURE__*/React__default.createElement("div", {
2236
2261
  ref: mainMenuRef
2237
2262
  }, mainMenuItems ? /*#__PURE__*/React__default.createElement(DotSidebar, {
@@ -2265,10 +2290,10 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2265
2290
  className: item.className,
2266
2291
  iconId: item.iconId,
2267
2292
  iconSize: "default",
2293
+ key: index,
2268
2294
  onClick: function onClick(event) {
2269
2295
  return item.onClick && item.onClick(event);
2270
2296
  },
2271
- key: index,
2272
2297
  size: "medium",
2273
2298
  tooltip: item.tooltip
2274
2299
  });
@@ -2335,13 +2360,13 @@ var DotChip = function DotChip(_ref) {
2335
2360
  });
2336
2361
  };
2337
2362
 
2338
- var _templateObject$w, _templateObject2$5;
2363
+ var _templateObject$w, _templateObject2$6;
2339
2364
  var rootClassName$t = 'dot-text-field';
2340
2365
  var rootSelectClassName = 'dot-select-field';
2341
2366
  var warningClassName = 'dot-warning';
2342
2367
  var adornmentIconClassName = 'dot-adornment-icon';
2343
2368
  var StyledAdornment = styled(InputAdornment)(_templateObject$w || (_templateObject$w = _taggedTemplateLiteralLoose(["\n .dot-icon {\n font-size: 24px;\n height: 24px;\n padding: 0;\n width: 24px;\n }\n"])));
2344
- var StyledTextField = styled(TextField)(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2369
+ var StyledTextField = styled(TextField)(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2345
2370
  var theme = _ref.theme,
2346
2371
  InputProps = _ref.InputProps;
2347
2372
  return css(["&.", "{.MuiInputBase-root{background:", "}.MuiInputBase-input{box-sizing:content-box;}.MuiOutlinedInput-notchedOutline{border-color:", "}.MuiOutlinedInput-input{padding:", ";}.MuiOutlinedInput-inputMarginDense{padding-top:10.5px;padding-bottom:10.5px;}.MuiOutlinedInput-inputMultiline{padding:0;}}&.", ",&.", "{.dot-adornment-icon .dot-icon i{margin-top:-2px;}.MuiFormLabel-root.Mui-focused{color:", "}select.dot-select{background:", ";}.MuiSelect-select:focus{background-color:transparent;}.Mui-error .", "{color:", ";}.MuiSelect-icon{right:", ";}&.", "{.MuiOutlinedInput-notchedOutline{border-color:", ";}.MuiInputLabel-outlined.MuiInputLabel-shrink{color:", ";}.", "{color:", ";}}.MuiOutlinedInput-adornedStart{padding-left:12px;}.MuiOutlinedInput-adornedEnd{padding-right:12px;}.MuiFormHelperText-root{font-size:", "px;margin:", ";display:flex;align-items:flex-end;&:not(.Mui-error){color:", ";}}.Mui-focused .MuiOutlinedInput-notchedOutline{border-color:", ";}"], rootClassName$t, theme.palette.product === 'agility' && theme.palette.layer.n0, theme.palette.product === 'agility' && theme.palette.layer.n100, InputProps.startAdornment ? "18px 12px 18px 0px" : "18px 12px", rootSelectClassName, rootClassName$t, theme.palette.product === 'agility' && theme.palette.layer.n700, theme.palette.product === 'agility' && theme.palette.layer.n0, adornmentIconClassName, theme.palette.error[500], InputProps.endAdornment ? "44px" : "12px", warningClassName, theme.palette.warning[500], theme.palette.grey[700], adornmentIconClassName, theme.palette.warning[500], theme.typography.body2.fontSize, theme.spacing(0, 0, 0, 2), theme.palette.grey[700], theme.palette.product === 'agility' && agilityGreen);
@@ -2422,18 +2447,18 @@ var DotButton = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
2422
2447
  },
2423
2448
  color: color,
2424
2449
  "data-testid": dataTestId,
2425
- disabled: disabled,
2426
2450
  disableRipple: disableRipple,
2451
+ disabled: disabled,
2427
2452
  endIcon: endIcon,
2428
2453
  fullWidth: fullWidth,
2429
2454
  onClick: function onClick(event) {
2430
2455
  return _onClick && _onClick(event);
2431
2456
  },
2432
2457
  ref: ref,
2433
- variant: variant,
2434
2458
  size: size,
2435
2459
  startIcon: startIcon,
2436
- type: isSubmit ? 'submit' : 'button'
2460
+ type: isSubmit ? 'submit' : 'button',
2461
+ variant: variant
2437
2462
  }, children));
2438
2463
  });
2439
2464
 
@@ -2583,9 +2608,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2583
2608
 
2584
2609
  /* Add this to short circuit blur event (otherwise button click will not work):
2585
2610
  * https://github.com/mui-org/material-ui/issues/19038 */
2586
- onMouseDown: function onMouseDown(e) {
2587
- e.preventDefault();
2588
- },
2611
+ onBlur: handleBlur,
2589
2612
  onKeyDown: function onKeyDown(event) {
2590
2613
  if (event.key === 'Tab' && textFieldInput) {
2591
2614
  event.preventDefault();
@@ -2593,7 +2616,9 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2593
2616
  }
2594
2617
  },
2595
2618
  // We want to close the popper each time focus is shifted from action item
2596
- onBlur: handleBlur
2619
+ onMouseDown: function onMouseDown(e) {
2620
+ e.preventDefault();
2621
+ }
2597
2622
  }, /*#__PURE__*/React__default.createElement(DotButton, {
2598
2623
  "data-testid": "dot-action-item-btn",
2599
2624
  disableRipple: true,
@@ -2609,6 +2634,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2609
2634
  };
2610
2635
 
2611
2636
  return /*#__PURE__*/React__default.createElement(StyledAutocomplete, {
2637
+ PopperComponent: DotPopper,
2612
2638
  "aria-label": ariaLabel,
2613
2639
  classes: {
2614
2640
  root: rootClasses
@@ -2625,6 +2651,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2625
2651
  return option.group;
2626
2652
  } : undefined,
2627
2653
  multiple: multiple,
2654
+ onBlur: handleBlur,
2628
2655
  onChange: function onChange(event, val, reason) {
2629
2656
  valuesChanged({
2630
2657
  event: event,
@@ -2633,20 +2660,18 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2633
2660
  });
2634
2661
  setIsOpened(false);
2635
2662
  },
2636
- open: isOpened,
2637
- options: sortOptions(),
2638
- PopperComponent: DotPopper,
2639
- // We want to close the popper each time focus is shifted from the autocomplete
2640
- onBlur: handleBlur,
2641
2663
  onClose: function onClose(event) {
2642
2664
  // We want to close popper in each occasion where focus isn't set to action item
2643
2665
  if (!('relatedTarget' in event) || event.relatedTarget !== actionItemRef.current) {
2644
2666
  setIsOpened(false);
2645
2667
  }
2646
2668
  },
2669
+ // We want to close the popper each time focus is shifted from the autocomplete
2647
2670
  onOpen: function onOpen() {
2648
2671
  return setIsOpened(true);
2649
2672
  },
2673
+ open: isOpened,
2674
+ options: sortOptions(),
2650
2675
  renderInput: function renderInput(params) {
2651
2676
  return (
2652
2677
  /*#__PURE__*/
@@ -2670,9 +2695,6 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2670
2695
  inputRef: textFieldRef,
2671
2696
  label: label,
2672
2697
  name: label,
2673
- placeholder: showPlaceholder ? placeholder : undefined,
2674
- required: false,
2675
- variant: "outlined",
2676
2698
  onKeyDown: function onKeyDown(event) {
2677
2699
  var _a; // Intercept 'tab' key press while action item element exists
2678
2700
 
@@ -2681,7 +2703,10 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2681
2703
  event.preventDefault();
2682
2704
  (_a = actionItemRef === null || actionItemRef === void 0 ? void 0 : actionItemRef.current) === null || _a === void 0 ? void 0 : _a.focus();
2683
2705
  }
2684
- }
2706
+ },
2707
+ placeholder: showPlaceholder ? placeholder : undefined,
2708
+ required: false,
2709
+ variant: "outlined"
2685
2710
  }))
2686
2711
  );
2687
2712
  },
@@ -2754,28 +2779,221 @@ var DotBadge = function DotBadge(_ref) {
2754
2779
  }, children);
2755
2780
  };
2756
2781
 
2757
- var _templateObject$t;
2782
+ var _templateObject$t, _templateObject2$5;
2758
2783
  var rootClassName$q = 'dot-breadcrumbs';
2759
- var StyledBreadcrumbs = styled(Breadcrumbs)(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2784
+ var breadcrumbsWrapperClass = 'dot-breadcrumbs-wrapper';
2785
+ var StyledBreadcrumbsWrapper = styled.div(_templateObject$t || (_templateObject$t = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
2760
2786
  var theme = _ref.theme;
2761
- return css(["&.", "{margin-bottom:0;.MuiBreadcrumbs-ol{flex-wrap:nowrap;}.MuiBreadcrumbs-li,.separator{color:", ";margin:0;white-space:nowrap;}.separator{font-size:12px;width:20px;height:20px;padding:0;}.MuiBreadcrumbs-separator{margin:0;}.MuiLink-underlineHover{cursor:pointer;}}.breadcrumb{padding:", ";}.current-page{color:", ";cursor:default;}"], rootClassName$q, theme.palette.grey[300], theme.spacing(0.5, 2), theme.palette.grey[700]);
2787
+ return css(["&.", "{overflow:hidden;.dot-breadcrumbs-menu{.MuiMenuItem-root{padding:0;}a.breadcrumb{width:100%;padding:", ";}}}"], rootClassName$q, theme.spacing(0.5, 2));
2788
+ });
2789
+ var StyledBreadcrumbs = styled(Breadcrumbs)(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref2) {
2790
+ var theme = _ref2.theme;
2791
+ return css(["&.", "{margin-bottom:0;.MuiBreadcrumbs-ol{flex-wrap:nowrap;}.MuiBreadcrumbs-li,.separator{color:", ";margin:0;white-space:nowrap;}.separator{font-size:12px;width:20px;height:20px;padding:0;}.MuiBreadcrumbs-separator{margin:0;}.MuiLink-underlineHover{cursor:pointer;}.MuiBreadcrumbs-li:last-child{overflow:hidden;text-overflow:ellipsis;}.breadcrumb{padding:", ";}.current-page{color:", ";cursor:default;}}"], rootClassName$q, theme.palette.grey[300], theme.spacing(0.5, 2), theme.palette.grey[700]);
2762
2792
  });
2763
2793
 
2764
2794
  var compareWidth = function compareWidth(parentEl, childEl) {
2765
2795
  return parentEl.getBoundingClientRect().width < childEl.getBoundingClientRect().width;
2766
2796
  };
2767
2797
 
2798
+ var getItemsAfterCollapse = function getItemsAfterCollapse(adjustMaxItems, visibleItemsNumber, maxItems) {
2799
+ // Check if maximum number of items is defined via prop
2800
+ if (maxItems) {
2801
+ return adjustMaxItems ? 1 : 2;
2802
+ }
2803
+
2804
+ if (visibleItemsNumber > 1) return visibleItemsNumber - 1;
2805
+ if (visibleItemsNumber === 1) return visibleItemsNumber;
2806
+ return undefined;
2807
+ };
2808
+ var getMaxItems = function getMaxItems(adjustMaxItems, visibleItemsNumber, maxItems) {
2809
+ // Check if maximum number of items is defined via prop
2810
+ if (maxItems) {
2811
+ return adjustMaxItems ? 2 : maxItems;
2812
+ }
2813
+
2814
+ return visibleItemsNumber > 0 ? visibleItemsNumber : undefined;
2815
+ };
2816
+ var getWidthFromRef = function getWidthFromRef(ref) {
2817
+ var _a;
2818
+
2819
+ return (_a = ref === null || ref === void 0 ? void 0 : ref.current) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect().width;
2820
+ };
2821
+ var checkIfFirstItemAfterCollapse = function checkIfFirstItemAfterCollapse(currentIndex, items, itemsAfterCollapse) {
2822
+ return currentIndex === items.length - itemsAfterCollapse;
2823
+ };
2824
+ var getExpandElement = function getExpandElement(breadcrumbElement) {
2825
+ var elements = breadcrumbElement.getElementsByClassName('MuiBreadcrumbs-ol');
2826
+ if (!elements || elements.length !== 1) return null;
2827
+ return elements[0].getElementsByClassName('MuiButtonBase-root')[0];
2828
+ };
2829
+ var getInitialMaxVisibleItems = function getInitialMaxVisibleItems(items, maxItems) {
2830
+ return maxItems || items && Array.isArray(items) && items.length || 0;
2831
+ };
2832
+ var getMenuItems = function getMenuItems(items, itemsAfterCollapse) {
2833
+ if (!items || !items.length || !isFinite(itemsAfterCollapse) || itemsAfterCollapse < 1 || itemsAfterCollapse >= items.length - 1) return [];
2834
+ var sliceEnd = items.length - itemsAfterCollapse;
2835
+ var menuItems = items.slice(1, sliceEnd);
2836
+ if (!menuItems.length) return [];
2837
+ return menuItems.map(function (item, index) {
2838
+ var itemChildren = /*#__PURE__*/React__default.createElement(DotLink, {
2839
+ ariaLabel: item.ariaLabel,
2840
+ className: "breadcrumb",
2841
+ color: "inherit",
2842
+ href: item.href,
2843
+ key: index,
2844
+ onClick: item.onClick,
2845
+ tabIndex: 0,
2846
+ underline: "none"
2847
+ }, item.text);
2848
+ return {
2849
+ children: itemChildren,
2850
+ key: index.toString()
2851
+ };
2852
+ });
2853
+ };
2854
+ var addListenersToMenu = function addListenersToMenu(expandElement, eventListener) {
2855
+ expandElement.addEventListener('click', eventListener);
2856
+ expandElement.addEventListener('keydown', eventListener);
2857
+ };
2858
+ var removeListenersFromMenu = function removeListenersFromMenu(expandElement, eventListener) {
2859
+ expandElement.removeEventListener('click', eventListener);
2860
+ expandElement.removeEventListener('keydown', eventListener);
2861
+ };
2862
+ var mapBreadcrumbItems = function mapBreadcrumbItems(items, refs, itemsAfterCollapse) {
2863
+ var firstItemRef = refs.firstItemRef,
2864
+ lastItemRef = refs.lastItemRef;
2865
+ return items.map(function (item, index) {
2866
+ var ariaLabel = item.ariaLabel,
2867
+ href = item.href,
2868
+ onClick = item.onClick,
2869
+ text = item.text,
2870
+ underline = item.underline;
2871
+
2872
+ if (index === items.length - 1) {
2873
+ return /*#__PURE__*/React__default.createElement("span", {
2874
+ "aria-label": ariaLabel,
2875
+ className: "breadcrumb current-page",
2876
+ key: index,
2877
+ ref: lastItemRef
2878
+ }, text);
2879
+ } else {
2880
+ var isFirstItemAfterCollapse = checkIfFirstItemAfterCollapse(index, items, itemsAfterCollapse);
2881
+ return /*#__PURE__*/React__default.createElement("div", {
2882
+ key: index,
2883
+ ref: isFirstItemAfterCollapse ? firstItemRef : undefined
2884
+ }, /*#__PURE__*/React__default.createElement(DotLink, {
2885
+ ariaLabel: ariaLabel,
2886
+ className: "breadcrumb",
2887
+ color: "inherit",
2888
+ href: href,
2889
+ onClick: onClick,
2890
+ tabIndex: 0,
2891
+ underline: underline
2892
+ }, text));
2893
+ }
2894
+ });
2895
+ };
2896
+
2897
+ var useBreadcrumbsResizer = function useBreadcrumbsResizer(breadcrumbsRightCoord, breadcrumbItemsProps, refs) {
2898
+ var firstItemRef = refs.firstItemRef,
2899
+ lastItemRef = refs.lastItemRef;
2900
+ var items = breadcrumbItemsProps.items,
2901
+ maxItems = breadcrumbItemsProps.maxItems;
2902
+ var initialMaxVisibleItems = {
2903
+ maxVisibleItems: getInitialMaxVisibleItems(items, maxItems),
2904
+ lastRemovedItemWidth: undefined
2905
+ };
2906
+
2907
+ var _useState = useState(initialMaxVisibleItems),
2908
+ breadcrumbsSettings = _useState[0],
2909
+ setBreadcrumbsSettings = _useState[1];
2910
+ /* Adjust number of visible items after collapse */
2911
+
2912
+
2913
+ useEffect(function () {
2914
+ // Automatic resizing is performed only when 'maxItem' is NOT set
2915
+ if (maxItems !== undefined || !(lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current) || !breadcrumbsRightCoord) return; // Get width of breadcrumb's last item
2916
+
2917
+ var lastItemWidth = getWidthFromRef(lastItemRef); // Get width of breadcrumb's first item after collapse
2918
+ // Sometimes first item can also be last item
2919
+
2920
+ var firstItemWidth = getWidthFromRef(firstItemRef) || lastItemWidth; // Get left coordinate of the last item
2921
+
2922
+ var lastItemLeftCoord = lastItemRef.current.getBoundingClientRect().left;
2923
+ var lastRemovedItemWidth = breadcrumbsSettings.lastRemovedItemWidth,
2924
+ maxVisibleItems = breadcrumbsSettings.maxVisibleItems;
2925
+ var availableSpace = breadcrumbsRightCoord - lastItemLeftCoord;
2926
+ var hasHiddenItems = maxVisibleItems < items.length;
2927
+ var isLastRemovedItemSuitable = lastRemovedItemWidth !== undefined ? availableSpace - lastRemovedItemWidth > MIN_AVAILABLE_SPACE : false;
2928
+
2929
+ if (availableSpace < MIN_AVAILABLE_SPACE && maxVisibleItems > 2) {
2930
+ setBreadcrumbsSettings(function (prevValue) {
2931
+ return {
2932
+ maxVisibleItems: prevValue.maxVisibleItems - 1,
2933
+ lastRemovedItemWidth: firstItemWidth + ITEMS_SEPARATOR_SPACE
2934
+ };
2935
+ });
2936
+ } else if (hasHiddenItems && (lastRemovedItemWidth === undefined || isLastRemovedItemSuitable)) {
2937
+ setBreadcrumbsSettings(function (prevValue) {
2938
+ return {
2939
+ maxVisibleItems: prevValue.maxVisibleItems + 1,
2940
+ lastRemovedItemWidth: undefined
2941
+ };
2942
+ });
2943
+ }
2944
+ }, [maxItems, breadcrumbsRightCoord, lastItemRef === null || lastItemRef === void 0 ? void 0 : lastItemRef.current, firstItemRef === null || firstItemRef === void 0 ? void 0 : firstItemRef.current, breadcrumbsSettings]);
2945
+ return [breadcrumbsSettings];
2946
+ };
2947
+
2948
+ var MIN_AVAILABLE_SPACE = 60;
2949
+ var ITEMS_SEPARATOR_SPACE = 20;
2950
+ var useBreadcrumbsObserver = function useBreadcrumbsObserver(items, maxItems) {
2951
+ var breadcrumbRef = useRef();
2952
+ var firstItemRef = useRef();
2953
+ var lastItemRef = useRef();
2954
+
2955
+ var _useState = useState(null),
2956
+ breadcrumbsRightCoord = _useState[0],
2957
+ setBreadcrumbsRightCoord = _useState[1];
2958
+
2959
+ var _useBreadcrumbsResize = useBreadcrumbsResizer(breadcrumbsRightCoord, {
2960
+ items: items,
2961
+ maxItems: maxItems
2962
+ }, {
2963
+ firstItemRef: firstItemRef,
2964
+ lastItemRef: lastItemRef
2965
+ }),
2966
+ breadcrumbsSettings = _useBreadcrumbsResize[0];
2967
+ /* Observe breadcrumbs width change and store it in state */
2968
+
2969
+
2970
+ useEffect(function () {
2971
+ // Automatic resizing is performed only when 'maxItem' is NOT set
2972
+ if (maxItems !== undefined) return;
2973
+ var breadcrumbsObserver = new ResizeObserver(function (entries) {
2974
+ setBreadcrumbsRightCoord(entries[0].target.getBoundingClientRect().right);
2975
+ });
2976
+ breadcrumbsObserver.observe(breadcrumbRef.current);
2977
+ return function () {
2978
+ breadcrumbRef.current && breadcrumbsObserver.unobserve(breadcrumbRef.current);
2979
+ };
2980
+ }, [maxItems, breadcrumbRef, setBreadcrumbsRightCoord]);
2981
+ return [{
2982
+ breadcrumbRef: breadcrumbRef,
2983
+ firstItemRef: firstItemRef,
2984
+ lastItemRef: lastItemRef
2985
+ }, breadcrumbsSettings.maxVisibleItems];
2986
+ };
2987
+
2768
2988
  var DotBreadcrumbs = function DotBreadcrumbs(_ref) {
2769
2989
  var className = _ref.className,
2770
2990
  dataTestId = _ref['data-testid'],
2771
2991
  _ref$expansionMenu = _ref.expansionMenu,
2772
2992
  expansionMenu = _ref$expansionMenu === void 0 ? false : _ref$expansionMenu,
2773
2993
  items = _ref.items,
2774
- _ref$maxItems = _ref.maxItems,
2775
- maxItems = _ref$maxItems === void 0 ? 3 : _ref$maxItems,
2994
+ maxItems = _ref.maxItems,
2776
2995
  minWidth = _ref.minWidth;
2777
- var rootClasses = useStylesWithRootClass(rootClassName$q, className);
2778
- var breadcrumbRef = useRef();
2996
+ var wrapperRootClasses = useStylesWithRootClass(breadcrumbsWrapperClass, className);
2779
2997
  var wrapperRef = useRef();
2780
2998
 
2781
2999
  var _useState = useState(null),
@@ -2790,111 +3008,80 @@ var DotBreadcrumbs = function DotBreadcrumbs(_ref) {
2790
3008
  adjustMaxItems = _useState3[0],
2791
3009
  setAdjustMaxItems = _useState3[1];
2792
3010
 
3011
+ var _useBreadcrumbsObserv = useBreadcrumbsObserver(items, maxItems),
3012
+ _useBreadcrumbsObserv2 = _useBreadcrumbsObserv[0],
3013
+ breadcrumbRef = _useBreadcrumbsObserv2.breadcrumbRef,
3014
+ firstItemRef = _useBreadcrumbsObserv2.firstItemRef,
3015
+ lastItemRef = _useBreadcrumbsObserv2.lastItemRef,
3016
+ maxVisibleItems = _useBreadcrumbsObserv[1];
3017
+
3018
+ var itemsAfterCollapse = getItemsAfterCollapse(adjustMaxItems, maxVisibleItems, maxItems);
3019
+ var menuItems = items.length > maxVisibleItems ? getMenuItems(items, itemsAfterCollapse) : [];
3020
+ var breadcrumbItemRefs = {
3021
+ firstItemRef: firstItemRef,
3022
+ lastItemRef: lastItemRef
3023
+ };
3024
+
2793
3025
  var clickListener = function clickListener(event) {
3026
+ if (event instanceof KeyboardEvent && event.key !== 'Enter') return;
2794
3027
  event.stopPropagation();
2795
3028
  setMenuOpen(function (currentMenuOpen) {
2796
3029
  return !currentMenuOpen;
2797
3030
  });
2798
3031
  };
2799
3032
 
2800
- var getExpandElement = function getExpandElement() {
2801
- var elements = document.getElementsByClassName('MuiBreadcrumbs-ol');
2802
- return elements.length === 1 ? elements[0].getElementsByClassName('MuiButtonBase-root')[0] : null;
2803
- };
2804
-
2805
- var getMenuItems = function getMenuItems() {
2806
- return items.slice(1, items.length - 2).map(function (item, index) {
2807
- var itemChildren = /*#__PURE__*/React__default.createElement(DotLink, {
2808
- ariaLabel: item.ariaLabel,
2809
- className: "breadcrumb",
2810
- color: "inherit",
2811
- href: item.href,
2812
- key: index,
2813
- onClick: item.onClick,
2814
- tabIndex: 0,
2815
- underline: item.underline
2816
- }, item.text);
2817
- return {
2818
- children: itemChildren,
2819
- key: index.toString()
2820
- };
2821
- });
2822
- };
2823
-
2824
- var menuItems = items.length > maxItems ? getMenuItems() : null;
2825
-
2826
3033
  var onMenuLeave = function onMenuLeave(_event) {
2827
3034
  setMenuOpen(false);
2828
3035
  };
3036
+ /* Build and connect expansion menu if 'expansionMenu' is set to true.
3037
+ In order for this to be functioning properly we need to set 'items' in
3038
+ the dependencies list as it will re-trigger hook if items array change.
3039
+ */
3040
+
2829
3041
 
2830
3042
  useEffect(function () {
2831
- if (expansionMenu) {
2832
- var expandElement = getExpandElement();
2833
-
2834
- if (expandElement) {
2835
- setAnchorEl(expandElement);
2836
- expandElement.addEventListener('click', clickListener);
2837
- return function () {
2838
- expandElement.removeEventListener('click', clickListener);
2839
- };
2840
- }
3043
+ if (!expansionMenu || !breadcrumbRef || !breadcrumbRef.current) return;
3044
+ var expandElement = getExpandElement(breadcrumbRef.current);
3045
+
3046
+ if (expandElement) {
3047
+ setAnchorEl(expandElement);
3048
+ addListenersToMenu(expandElement, clickListener);
3049
+ return function () {
3050
+ return removeListenersFromMenu(expandElement, clickListener);
3051
+ };
2841
3052
  }
2842
- }, []);
3053
+ }, [expansionMenu, maxVisibleItems, adjustMaxItems, items]);
2843
3054
  useEffect(function () {
2844
- if ((breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current) && (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current)) {
3055
+ if (maxItems && (breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current) && (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current)) {
2845
3056
  setAdjustMaxItems(compareWidth(wrapperRef.current, breadcrumbRef.current));
2846
3057
  }
2847
- }, [breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current, wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current]);
2848
- return /*#__PURE__*/React__default.createElement("div", {
2849
- ref: wrapperRef,
2850
- style: {
2851
- overflow: 'hidden'
2852
- }
3058
+ }, [maxItems, breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current, wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current]);
3059
+ return /*#__PURE__*/React__default.createElement(StyledBreadcrumbsWrapper, {
3060
+ className: wrapperRootClasses,
3061
+ "data-testid": dataTestId && dataTestId + "-wrapper",
3062
+ ref: wrapperRef
2853
3063
  }, /*#__PURE__*/React__default.createElement(StyledBreadcrumbs, {
2854
3064
  "aria-label": "breadcrumb",
2855
3065
  classes: {
2856
- root: rootClasses,
3066
+ root: rootClassName$q,
2857
3067
  ol: 'dot-ol',
2858
3068
  li: 'dot-li'
2859
3069
  },
2860
3070
  "data-testid": dataTestId,
2861
- itemsAfterCollapse: adjustMaxItems ? 1 : 2,
2862
- maxItems: adjustMaxItems ? 2 : maxItems,
3071
+ itemsAfterCollapse: itemsAfterCollapse,
3072
+ maxItems: getMaxItems(adjustMaxItems, maxVisibleItems, maxItems),
2863
3073
  ref: breadcrumbRef,
2864
3074
  separator: /*#__PURE__*/React__default.createElement(DotIcon, {
2865
- iconId: "chevron-right",
2866
- className: "separator"
3075
+ className: "separator",
3076
+ iconId: "chevron-right"
2867
3077
  }),
2868
3078
  style: {
2869
3079
  width: minWidth
2870
3080
  }
2871
- }, items.map(function (item, index) {
2872
- var ariaLabel = item.ariaLabel,
2873
- href = item.href,
2874
- onClick = item.onClick,
2875
- text = item.text,
2876
- underline = item.underline;
2877
-
2878
- if (index === items.length - 1) {
2879
- return /*#__PURE__*/React__default.createElement("span", {
2880
- "aria-label": ariaLabel,
2881
- className: "breadcrumb current-page",
2882
- key: index
2883
- }, text);
2884
- } else {
2885
- return /*#__PURE__*/React__default.createElement(DotLink, {
2886
- ariaLabel: ariaLabel,
2887
- className: "breadcrumb",
2888
- color: "inherit",
2889
- href: href,
2890
- key: index,
2891
- onClick: onClick,
2892
- tabIndex: 0,
2893
- underline: underline
2894
- }, text);
2895
- }
2896
- })), /*#__PURE__*/React__default.createElement(DotMenu, {
3081
+ }, mapBreadcrumbItems(items, breadcrumbItemRefs, itemsAfterCollapse)), /*#__PURE__*/React__default.createElement(DotMenu, {
2897
3082
  anchorEl: anchorEl,
3083
+ className: "dot-breadcrumbs-menu",
3084
+ disablePortal: true,
2898
3085
  id: "expand-menu",
2899
3086
  menuItems: menuItems,
2900
3087
  menuPlacement: "bottom-start",
@@ -2943,9 +3130,9 @@ var DotButtonToggle = function DotButtonToggle(_ref) {
2943
3130
  }, buttonOptions.map(function (option, key) {
2944
3131
  return /*#__PURE__*/React__default.createElement(ToggleButton, {
2945
3132
  "aria-label": option.ariaLabel,
2946
- disabled: option.disabled,
2947
3133
  disableFocusRipple: disableFocusRipple,
2948
3134
  disableRipple: disableRipple,
3135
+ disabled: option.disabled,
2949
3136
  key: key,
2950
3137
  value: option.value
2951
3138
  }, option.iconId && /*#__PURE__*/React__default.createElement(DotIcon, {
@@ -3080,16 +3267,15 @@ function DotCheckbox(_ref) {
3080
3267
 
3081
3268
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
3082
3269
  className: rootClasses,
3083
- labelPlacement: labelPlacement,
3084
3270
  control: /*#__PURE__*/React__default.createElement(StyledCheckbox, {
3271
+ checked: checked,
3085
3272
  classes: {
3086
3273
  root: rootClassName$m
3087
3274
  },
3088
- checked: checked,
3089
3275
  color: "primary",
3090
3276
  "data-testid": dataTestId,
3091
- disabled: disabled,
3092
3277
  disableRipple: disableRipple,
3278
+ disabled: disabled,
3093
3279
  id: id,
3094
3280
  indeterminate: indeterminate,
3095
3281
  inputProps: {
@@ -3103,7 +3289,8 @@ function DotCheckbox(_ref) {
3103
3289
  size: size,
3104
3290
  value: value
3105
3291
  }),
3106
- label: label
3292
+ label: label,
3293
+ labelPlacement: labelPlacement
3107
3294
  });
3108
3295
  }
3109
3296
 
@@ -3142,10 +3329,10 @@ function DotFormGroup(_ref) {
3142
3329
  var rootClasses = useStylesWithRootClass(rootClassName$l, className);
3143
3330
  return /*#__PURE__*/React__default.createElement(StyledFormGroup, {
3144
3331
  "aria-label": ariaLabel,
3145
- "data-testid": dataTestId,
3146
3332
  classes: {
3147
3333
  root: rootClasses
3148
3334
  },
3335
+ "data-testid": dataTestId,
3149
3336
  role: "group",
3150
3337
  row: row
3151
3338
  }, children);
@@ -3223,15 +3410,15 @@ function DotCheckboxGroup(_ref) {
3223
3410
  disabled = _ref2.disabled,
3224
3411
  value = _ref2.value;
3225
3412
  return /*#__PURE__*/React__default.createElement(DotCheckbox, {
3226
- className: checkboxListItemClassName,
3227
3413
  checked: selectedOptions.some(function (option) {
3228
3414
  return option && option.value === value;
3229
3415
  }) || allChecked,
3416
+ className: checkboxListItemClassName,
3230
3417
  disabled: disabled || disableGroup,
3231
- name: name,
3232
3418
  key: value,
3233
3419
  label: label,
3234
3420
  labelPlacement: labelPlacement,
3421
+ name: name,
3235
3422
  onChange: function onChange(event) {
3236
3423
  return handleChange(event, {
3237
3424
  label: label,
@@ -3244,15 +3431,15 @@ function DotCheckboxGroup(_ref) {
3244
3431
  }) : null;
3245
3432
  return /*#__PURE__*/React__default.createElement(StyledCheckboxGroup, {
3246
3433
  "aria-label": ariaLabel,
3247
- "data-testid": dataTestId,
3248
- className: wrapperClassName$1
3434
+ className: wrapperClassName$1,
3435
+ "data-testid": dataTestId
3249
3436
  }, /*#__PURE__*/React__default.createElement(StyledFormControl, {
3250
3437
  classes: {
3251
3438
  root: rootClasses
3252
3439
  },
3440
+ component: "fieldset",
3253
3441
  disabled: disableGroup,
3254
3442
  error: error,
3255
- component: "fieldset",
3256
3443
  required: required
3257
3444
  }, groupLabel && /*#__PURE__*/React__default.createElement(FormLabel, {
3258
3445
  component: "legend"
@@ -3265,8 +3452,8 @@ function DotCheckboxGroup(_ref) {
3265
3452
  }, endIcon)), showSelectAll && /*#__PURE__*/React__default.createElement(DotCheckbox, {
3266
3453
  checked: selectedOptions.length === options.length,
3267
3454
  indeterminate: selectedOptions.length > 0 && selectedOptions.length < options.length,
3268
- name: name ? name + "-select-all" : 'dot-select-all',
3269
3455
  label: selectAllLabel,
3456
+ name: name ? name + "-select-all" : 'dot-select-all',
3270
3457
  onChange: handleSelectAll,
3271
3458
  size: size,
3272
3459
  value: "select-all"
@@ -3338,13 +3525,13 @@ var DotDialog = function DotDialog(_ref) {
3338
3525
 
3339
3526
  return /*#__PURE__*/React__default.createElement(StyledDialog, {
3340
3527
  "aria-label": ariaLabel,
3528
+ "aria-labelledby": "MuiDialogTitle-root",
3341
3529
  classes: {
3342
3530
  root: rootClasses
3343
3531
  },
3344
3532
  "data-testid": dataTestId,
3345
- open: isOpen,
3346
3533
  onClose: handleClickAway,
3347
- "aria-labelledby": "MuiDialogTitle-root"
3534
+ open: isOpen
3348
3535
  }, /*#__PURE__*/React__default.createElement(DialogTitle, {
3349
3536
  disableTypography: true
3350
3537
  }, /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -3365,22 +3552,22 @@ var DotDialog = function DotDialog(_ref) {
3365
3552
  autoFocus: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.autoFocus,
3366
3553
  className: cancelClasses,
3367
3554
  "data-testid": cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps['data-testid'],
3368
- disabled: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disabled,
3369
3555
  disableRipple: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disableRipple,
3556
+ disabled: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disabled,
3370
3557
  endIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.endIcon,
3371
- startIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.startIcon,
3372
3558
  onClick: handleCancel,
3559
+ startIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.startIcon,
3373
3560
  titleTooltip: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.tooltip,
3374
3561
  type: "text"
3375
3562
  }, (cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.label) || 'Cancel'), hasPrimaryAction && /*#__PURE__*/React__default.createElement(DotButton, {
3376
3563
  autoFocus: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.autoFocus,
3377
3564
  className: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.className,
3378
3565
  "data-testid": submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps['data-testid'],
3379
- disabled: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disabled,
3380
3566
  disableRipple: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disableRipple,
3567
+ disabled: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disabled,
3381
3568
  endIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.endIcon,
3382
- startIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.startIcon,
3383
3569
  onClick: handleSubmit,
3570
+ startIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.startIcon,
3384
3571
  titleTooltip: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.tooltip,
3385
3572
  type: (submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.type) || 'primary'
3386
3573
  }, (submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.label) || 'OK')));
@@ -3590,13 +3777,13 @@ var CssGridDebug = function CssGridDebug(_ref) {
3590
3777
  }))), /*#__PURE__*/React__default.createElement("div", {
3591
3778
  className: "message"
3592
3779
  }, "NOT FOR PRODUCTION")), /*#__PURE__*/React__default.createElement(StyledGridOverlay, {
3593
- rows: "minmax(100vh, 100%)",
3594
- className: gridClassName
3780
+ className: gridClassName,
3781
+ rows: "minmax(100vh, 100%)"
3595
3782
  }, [].concat(Array(columns)).map(function (item, i) {
3596
3783
  return /*#__PURE__*/React__default.createElement(CssCell, {
3597
- start: i + 1,
3598
3784
  className: "" + cellClassName,
3599
3785
  key: i,
3786
+ start: i + 1,
3600
3787
  width: 1
3601
3788
  });
3602
3789
  })));
@@ -3624,10 +3811,10 @@ var DotEmptyState = function DotEmptyState(_ref) {
3624
3811
  className: rootClasses,
3625
3812
  "data-testid": dataTestId
3626
3813
  }, imageSrc && /*#__PURE__*/React__default.createElement("img", {
3627
- className: "empty-state-image",
3628
- title: imageAltText || title,
3629
3814
  alt: imageAltText || title,
3630
- src: imageSrc
3815
+ className: "empty-state-image",
3816
+ src: imageSrc,
3817
+ title: imageAltText || title
3631
3818
  }), /*#__PURE__*/React__default.createElement(DotTypography, {
3632
3819
  variant: "h2"
3633
3820
  }, title), subtitle && /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -3985,7 +4172,16 @@ var DotInputText = function DotInputText(_ref) {
3985
4172
 
3986
4173
  var defaultInputValue = hasDebounce ? undefined : defaultValue;
3987
4174
  return /*#__PURE__*/React__default.createElement(StyledTextField, {
3988
- id: id,
4175
+ InputProps: {
4176
+ startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4177
+ className: adornmentIconClassName + " start",
4178
+ position: "start"
4179
+ }, startIcon),
4180
+ endAdornment: endAdornmentIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4181
+ className: adornmentIconClassName + " end",
4182
+ position: "end"
4183
+ }, endAdornmentIcon)
4184
+ },
3989
4185
  "aria-label": name,
3990
4186
  autoComplete: "off",
3991
4187
  autoFocus: autoFocus,
@@ -3997,21 +4193,12 @@ var DotInputText = function DotInputText(_ref) {
3997
4193
  error: error,
3998
4194
  fullWidth: fullWidth,
3999
4195
  helperText: helperText,
4196
+ id: id,
4000
4197
  inputProps: {
4001
4198
  'data-testid': dataTestId,
4002
4199
  className: 'dot-input',
4003
4200
  readOnly: readOnly
4004
4201
  },
4005
- InputProps: {
4006
- startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4007
- className: adornmentIconClassName + " start",
4008
- position: "start"
4009
- }, startIcon),
4010
- endAdornment: endAdornmentIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4011
- className: adornmentIconClassName + " end",
4012
- position: "end"
4013
- }, endAdornmentIcon)
4014
- },
4015
4202
  inputRef: inputRef,
4016
4203
  label: label,
4017
4204
  multiline: multiline,
@@ -4026,8 +4213,8 @@ var DotInputText = function DotInputText(_ref) {
4026
4213
  rowsMax: multiline ? rowsMax : null,
4027
4214
  size: size,
4028
4215
  type: type,
4029
- variant: "outlined",
4030
- value: inputTextValue
4216
+ value: inputTextValue,
4217
+ variant: "outlined"
4031
4218
  });
4032
4219
  };
4033
4220
 
@@ -4065,11 +4252,23 @@ var DotInputSelect = function DotInputSelect(_ref) {
4065
4252
  var rootStyles = useStylesWithRootClass(rootSelectClassName, className);
4066
4253
  var hasWarning = !error && warning && warningClassName;
4067
4254
  return /*#__PURE__*/React__default.createElement(StyledTextField, {
4255
+ InputProps: {
4256
+ startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4257
+ className: adornmentIconClassName + " start",
4258
+ position: "start"
4259
+ }, startIcon),
4260
+ endAdornment: endIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4261
+ className: adornmentIconClassName + " end",
4262
+ position: "end"
4263
+ }, endIcon)
4264
+ },
4265
+ SelectProps: {
4266
+ "native": true
4267
+ },
4068
4268
  autoFocus: autoFocus,
4069
4269
  className: rootStyles + " " + hasWarning,
4070
4270
  defaultValue: defaultValue,
4071
4271
  disabled: disabled,
4072
- value: value,
4073
4272
  error: error,
4074
4273
  fullWidth: fullWidth,
4075
4274
  helperText: helperText,
@@ -4079,16 +4278,6 @@ var DotInputSelect = function DotInputSelect(_ref) {
4079
4278
  'data-testid': dataTestId,
4080
4279
  className: 'dot-select'
4081
4280
  },
4082
- InputProps: {
4083
- startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4084
- className: adornmentIconClassName + " start",
4085
- position: "start"
4086
- }, startIcon),
4087
- endAdornment: endIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4088
- className: adornmentIconClassName + " end",
4089
- position: "end"
4090
- }, endIcon)
4091
- },
4092
4281
  inputRef: inputRef,
4093
4282
  label: label,
4094
4283
  multiline: false,
@@ -4099,10 +4288,8 @@ var DotInputSelect = function DotInputSelect(_ref) {
4099
4288
  onKeyDown: onKeyDown,
4100
4289
  required: required,
4101
4290
  select: true,
4102
- SelectProps: {
4103
- "native": true
4104
- },
4105
4291
  size: size,
4292
+ value: value,
4106
4293
  variant: "outlined"
4107
4294
  }, options.map(function (option) {
4108
4295
  return /*#__PURE__*/React__default.createElement("option", {
@@ -4199,14 +4386,12 @@ function DotRadioButton(_ref) {
4199
4386
 
4200
4387
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
4201
4388
  className: rootClasses,
4202
- labelPlacement: labelPlacement,
4203
- value: value,
4204
4389
  control: /*#__PURE__*/React__default.createElement(StyledRadioButton, {
4205
4390
  "aria-label": ariaLabel,
4391
+ checked: checked,
4206
4392
  classes: {
4207
4393
  root: rootClassName$c
4208
4394
  },
4209
- checked: checked,
4210
4395
  color: "primary",
4211
4396
  "data-testid": dataTestId,
4212
4397
  disabled: disabled,
@@ -4217,7 +4402,9 @@ function DotRadioButton(_ref) {
4217
4402
  required: required,
4218
4403
  size: size
4219
4404
  }),
4220
- label: label
4405
+ label: label,
4406
+ labelPlacement: labelPlacement,
4407
+ value: value
4221
4408
  });
4222
4409
  }
4223
4410
 
@@ -4266,9 +4453,9 @@ var DotRadioGroup = function DotRadioGroup(_ref) {
4266
4453
  value = _ref2.value,
4267
4454
  disabled = _ref2.disabled;
4268
4455
  return /*#__PURE__*/React__default.createElement(DotRadioButton, {
4269
- key: value,
4270
4456
  checked: selectedValue === value,
4271
4457
  disabled: disabled || disableGroup,
4458
+ key: value,
4272
4459
  label: label,
4273
4460
  labelPlacement: labelPlacement,
4274
4461
  size: size,
@@ -4281,8 +4468,8 @@ var DotRadioGroup = function DotRadioGroup(_ref) {
4281
4468
  classes: {
4282
4469
  root: rootClasses
4283
4470
  },
4284
- error: error,
4285
4471
  component: "fieldset",
4472
+ error: error,
4286
4473
  required: required
4287
4474
  }, groupLabel && /*#__PURE__*/React__default.createElement(FormLabel, {
4288
4475
  component: "legend"
@@ -4336,24 +4523,24 @@ var DotSwitch = function DotSwitch(_ref) {
4336
4523
 
4337
4524
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
4338
4525
  className: rootClassName$n,
4339
- labelPlacement: labelPlacement,
4340
4526
  control: /*#__PURE__*/React__default.createElement(StyledSwitch, {
4527
+ checked: checked,
4341
4528
  classes: {
4342
4529
  root: rootClasses
4343
4530
  },
4344
- checked: checked,
4345
4531
  color: color,
4346
4532
  "data-testid": dataTestId,
4347
4533
  disabled: disabled,
4348
4534
  id: id,
4349
- inputRef: inputRef,
4350
4535
  inputProps: {
4351
4536
  'aria-label': ariaLabel ? ariaLabel : label
4352
4537
  },
4538
+ inputRef: inputRef,
4353
4539
  onChange: handleChange,
4354
4540
  size: size
4355
4541
  }),
4356
- label: label
4542
+ label: label,
4543
+ labelPlacement: labelPlacement
4357
4544
  });
4358
4545
  };
4359
4546
 
@@ -5139,6 +5326,13 @@ var DotInlineEdit = function DotInlineEdit(_ref) {
5139
5326
  return onKeyPress(event);
5140
5327
  }
5141
5328
  }, /*#__PURE__*/React__default.createElement(TextField, {
5329
+ InputProps: {
5330
+ endAdornment: /*#__PURE__*/React__default.createElement(InputAdornment, {
5331
+ position: "end"
5332
+ }, /*#__PURE__*/React__default.createElement(DotIcon, {
5333
+ iconId: "edit"
5334
+ }))
5335
+ },
5142
5336
  "aria-label": name,
5143
5337
  autoComplete: "off",
5144
5338
  autoFocus: autoFocus,
@@ -5151,13 +5345,6 @@ var DotInlineEdit = function DotInlineEdit(_ref) {
5151
5345
  className: 'dot-input',
5152
5346
  readOnly: readOnly
5153
5347
  },
5154
- InputProps: {
5155
- endAdornment: /*#__PURE__*/React__default.createElement(InputAdornment, {
5156
- position: "end"
5157
- }, /*#__PURE__*/React__default.createElement(DotIcon, {
5158
- iconId: "edit"
5159
- }))
5160
- },
5161
5348
  multiline: false,
5162
5349
  name: name,
5163
5350
  onChange: function onChange(event) {
@@ -5316,8 +5503,8 @@ var DotSkeleton = function DotSkeleton(_ref) {
5316
5503
  },
5317
5504
  "data-testid": dataTestId,
5318
5505
  height: height,
5319
- width: width,
5320
- variant: skeletonVariant
5506
+ variant: skeletonVariant,
5507
+ width: width
5321
5508
  }, children);
5322
5509
  };
5323
5510
 
@@ -5414,14 +5601,14 @@ var DotSnackbarContainer = function DotSnackbarContainer() {
5414
5601
  return /*#__PURE__*/React__default.createElement(StyledSnackbarContainer, {
5415
5602
  className: rootClassName$5
5416
5603
  }, /*#__PURE__*/React__default.createElement("div", {
5417
- "data-testid": rootClassName$5,
5418
- className: rootClassName$5
5604
+ className: rootClassName$5,
5605
+ "data-testid": rootClassName$5
5419
5606
  }, alerts.slice().reverse().map(function (alert) {
5420
5607
  return /*#__PURE__*/React__default.createElement(DotSnackbar, {
5421
5608
  key: alert.id,
5422
- severity: alert.severity,
5423
5609
  onClose: handleClose(alert.id),
5424
- open: alert.open
5610
+ open: alert.open,
5611
+ severity: alert.severity
5425
5612
  }, alert.message);
5426
5613
  })));
5427
5614
  };
@@ -5542,8 +5729,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5542
5729
  autoFocus: autoFocus,
5543
5730
  className: "label-button",
5544
5731
  "data-testid": dataTestId,
5545
- disabled: disabled,
5546
5732
  disableRipple: disableRipple,
5733
+ disabled: disabled,
5547
5734
  isSubmit: isSubmit,
5548
5735
  onClick: function onClick(event) {
5549
5736
  return handleClick(event);
@@ -5554,8 +5741,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5554
5741
  }, children), /*#__PURE__*/React__default.createElement(DotButton, {
5555
5742
  className: "expand-button",
5556
5743
  "data-testid": dataTestId,
5557
- disabled: disabled,
5558
5744
  disableRipple: disableRipple,
5745
+ disabled: disabled,
5559
5746
  onClick: function onClick() {
5560
5747
  return setOpen(!open);
5561
5748
  },
@@ -5574,8 +5761,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5574
5761
  onLeave: function onLeave() {
5575
5762
  return setOpen(false);
5576
5763
  },
5577
- open: open,
5578
- onSelect: handleClick
5764
+ onSelect: handleClick,
5765
+ open: open
5579
5766
  }));
5580
5767
  };
5581
5768
 
@@ -5643,8 +5830,8 @@ var DotBodyCell = function DotBodyCell(_ref) {
5643
5830
  var getTableCellValue = function getTableCellValue() {
5644
5831
  if (Array.isArray(value)) {
5645
5832
  return /*#__PURE__*/React__default.createElement("div", {
5646
- ref: wrapperRef,
5647
- className: "action-cell-wrapper"
5833
+ className: "action-cell-wrapper",
5834
+ ref: wrapperRef
5648
5835
  }, showMenu ? /*#__PURE__*/React__default.createElement(DotIconButton, {
5649
5836
  className: "dot-table-action-icon",
5650
5837
  iconId: "options",
@@ -5672,8 +5859,8 @@ var DotBodyCell = function DotBodyCell(_ref) {
5672
5859
  };
5673
5860
 
5674
5861
  return /*#__PURE__*/React__default.createElement(TableCell, {
5675
- "aria-label": ariaLabel,
5676
5862
  align: align,
5863
+ "aria-label": ariaLabel,
5677
5864
  classes: {
5678
5865
  root: rootClasses
5679
5866
  },
@@ -5785,8 +5972,8 @@ var DotTableBody = function DotTableBody(_ref) {
5785
5972
  }
5786
5973
  }, data.map(function (row, index) {
5787
5974
  return /*#__PURE__*/React__default.createElement(DotTableRow, {
5788
- columns: columns,
5789
5975
  className: row.className,
5976
+ columns: columns,
5790
5977
  data: row,
5791
5978
  key: index,
5792
5979
  onActionMenuTrigger: handleActionMenuTrigger,
@@ -5838,9 +6025,9 @@ var DotHeaderRow = function DotHeaderRow(_ref) {
5838
6025
  key: CreateUUID(),
5839
6026
  order: order,
5840
6027
  orderBy: orderBy,
5841
- truncate: cell.truncate,
5842
- sortable: sortable && cell.sortable,
5843
6028
  sortDirection: orderBy === cell.id ? order : undefined,
6029
+ sortable: sortable && cell.sortable,
6030
+ truncate: cell.truncate,
5844
6031
  uid: CreateUUID(),
5845
6032
  value: cell.label,
5846
6033
  width: cell.width
@@ -5889,10 +6076,10 @@ var DotHeaderCell = function DotHeaderCell(_ref2) {
5889
6076
  return /*#__PURE__*/React__default.createElement(TableCell, {
5890
6077
  align: align,
5891
6078
  key: uid,
5892
- title: headerTitle,
5893
6079
  style: {
5894
6080
  width: width ? width : ''
5895
- }
6081
+ },
6082
+ title: headerTitle
5896
6083
  }, value);
5897
6084
  };
5898
6085
 
@@ -6185,8 +6372,8 @@ var DotTabs = function DotTabs(_ref) {
6185
6372
  var tabElement = /*#__PURE__*/React__default.createElement(Tab, {
6186
6373
  "aria-label": tab.ariaLabel,
6187
6374
  "data-testid": tab['data-testid'],
6188
- disabled: tab.disabled,
6189
6375
  disableRipple: true,
6376
+ disabled: tab.disabled,
6190
6377
  key: index,
6191
6378
  label: label,
6192
6379
  value: tab.value