@digital-ai/dot-components 1.3.6 → 1.5.1

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 (30) hide show
  1. package/CHANGE_LOG.md +725 -39
  2. package/dot-components.esm.js +469 -262
  3. package/dot-components.umd.js +483 -278
  4. package/lib/components/BaseButtonProps.d.ts +2 -2
  5. package/lib/components/accordion/Accordion.d.ts +11 -4
  6. package/lib/components/auto-complete/AutoComplete.d.ts +3 -3
  7. package/lib/components/avatar/Avatar.d.ts +2 -2
  8. package/lib/components/breadcrumbs/Breadcrumbs.data.d.ts +2 -0
  9. package/lib/components/breadcrumbs/Breadcrumbs.styles.d.ts +2 -0
  10. package/lib/components/breadcrumbs/utils/helpers.d.ts +19 -0
  11. package/lib/components/breadcrumbs/utils/useBreadcrumbsObserver.d.ts +11 -0
  12. package/lib/components/breadcrumbs/utils/useBreadcrumbsResizer.d.ts +16 -0
  13. package/lib/components/button/IconButton.d.ts +2 -2
  14. package/lib/components/button-toggle/ButtonToggle.d.ts +2 -2
  15. package/lib/components/chip/Chip.d.ts +4 -4
  16. package/lib/components/css-grid/CssCell.d.ts +5 -5
  17. package/lib/components/css-grid/CssGrid.d.ts +4 -4
  18. package/lib/components/drawer/Drawer.d.ts +4 -4
  19. package/lib/components/dynamic-form/models.d.ts +8 -8
  20. package/lib/components/index.d.ts +1 -0
  21. package/lib/components/list/List.d.ts +1 -1
  22. package/lib/components/menu/Menu.d.ts +4 -4
  23. package/lib/components/radio/RadioButton.d.ts +2 -2
  24. package/lib/components/sidebar/Sidebar.d.ts +2 -2
  25. package/lib/components/table/Table.d.ts +6 -6
  26. package/lib/components/table/TableCell.d.ts +1 -1
  27. package/lib/components/table/TableDataWithPagination.d.ts +4 -4
  28. package/lib/components/table/TableHeader.d.ts +2 -2
  29. package/lib/testing-utils/resize-observer-mock.d.ts +1 -0
  30. package/package.json +1 -1
@@ -117,7 +117,7 @@ var summaryClassName = 'dot-accordion-summary';
117
117
  var detailClassName = 'dot-accordion-details';
118
118
  var StyledAccordion = styled(Accordion)(_templateObject$L || (_templateObject$L = _taggedTemplateLiteralLoose(["\n ", "\n"])), function (_ref) {
119
119
  var theme = _ref.theme;
120
- return css(["&.", "{background:", ";.", "{align-items:center;display:flex;.MuiAccordionSummary-content{width:calc(100% - ", "px);}.MuiTypography-root{margin-bottom:0;}.dot-icon{margin-right:", "px;}.MuiTypography-body1{padding:2px 0;}}}"], rootClassName$H, theme.palette.product === 'agility' && theme.palette.layer.n50, summaryClassName, theme.spacing(5), theme.spacing(0.5));
120
+ return css(["&.", "{background:", ";.", "{align-items:center;display:flex;.MuiAccordionSummary-content{width:calc(100% - ", "px);}.MuiTypography-root{margin-bottom:0;}.MuiTypography-body1{padding:2px 0;}}}"], rootClassName$H, theme.palette.product === 'agility' && theme.palette.layer.n50, summaryClassName, theme.spacing(5));
121
121
  });
122
122
 
123
123
  var DotAccordion = function DotAccordion(_ref) {
@@ -127,12 +127,13 @@ 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 ? false : _ref$defaultExpanded,
130
+ defaultExpanded = _ref.defaultExpanded,
132
131
  _ref$disabled = _ref.disabled,
133
132
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
133
+ expanded = _ref.expanded,
134
134
  _ref$hasElevation = _ref.hasElevation,
135
135
  hasElevation = _ref$hasElevation === void 0 ? false : _ref$hasElevation,
136
+ onChange = _ref.onChange,
136
137
  _ref$square = _ref.square,
137
138
  square = _ref$square === void 0 ? false : _ref$square,
138
139
  startIcon = _ref.startIcon,
@@ -145,16 +146,33 @@ var DotAccordion = function DotAccordion(_ref) {
145
146
  elevation = _useState[0],
146
147
  setElevation = _useState[1];
147
148
 
149
+ useEffect(function () {
150
+ if (defaultExpanded !== undefined) {
151
+ console.warn('The use of `defaultExpanded` is deprecated and will be removed in the next major release, please use `expanded` instead.');
152
+ }
153
+
154
+ if (onChange && expanded === undefined) {
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.');
156
+ }
157
+ }, []);
148
158
  useEffect(function () {
149
159
  setElevation(hasElevation ? 1 : 0);
150
160
  }, [hasElevation]);
161
+ var dftExpanded = defaultExpanded;
162
+
163
+ if (dftExpanded === undefined) {
164
+ dftExpanded = expanded === undefined ? false : expanded;
165
+ }
166
+
151
167
  return /*#__PURE__*/React__default.createElement(StyledAccordion, {
152
168
  "aria-label": ariaLabel,
153
169
  className: rootClasses,
154
170
  "data-testid": dataTestId,
155
- defaultExpanded: defaultExpanded,
171
+ defaultExpanded: dftExpanded,
156
172
  disabled: disabled,
157
173
  elevation: elevation,
174
+ expanded: onChange ? expanded : undefined,
175
+ onChange: onChange,
158
176
  square: square
159
177
  }, /*#__PURE__*/React__default.createElement(AccordionSummary, {
160
178
  className: summaryClassName,
@@ -162,11 +180,11 @@ var DotAccordion = function DotAccordion(_ref) {
162
180
  expandIcon: /*#__PURE__*/React__default.createElement(DotIcon, {
163
181
  iconId: "chevron-down"
164
182
  })
165
- }, startIcon, /*#__PURE__*/React__default.createElement(DotTypography, {
166
- variant: "body1",
167
- noWrap: noWrap
168
- }, /*#__PURE__*/React__default.createElement(DotTooltip, {
183
+ }, startIcon, /*#__PURE__*/React__default.createElement(DotTooltip, {
169
184
  title: noWrap ? summary : ''
185
+ }, /*#__PURE__*/React__default.createElement(DotTypography, {
186
+ noWrap: noWrap,
187
+ variant: "body1"
170
188
  }, summary))), /*#__PURE__*/React__default.createElement(AccordionDetails, {
171
189
  className: detailClassName,
172
190
  "data-testid": dataTestId + "-details"
@@ -528,8 +546,8 @@ var DotIconButton = function DotIconButton(_ref) {
528
546
  },
529
547
  color: color,
530
548
  "data-testid": dataTestId,
531
- disabled: disabled,
532
549
  disableRipple: disableRipple,
550
+ disabled: disabled,
533
551
  onClick: function onClick(event) {
534
552
  return _onClick && _onClick(event);
535
553
  },
@@ -593,8 +611,8 @@ var DotLink = function DotLink(_ref) {
593
611
  "data-testid": dataTestId,
594
612
  href: href,
595
613
  onClick: onClick,
596
- onMouseEnter: onMouseEnter,
597
614
  onKeyPress: handleKeyPress,
615
+ onMouseEnter: onMouseEnter,
598
616
  rel: rel,
599
617
  tabIndex: tabIndex,
600
618
  target: target,
@@ -1159,34 +1177,13 @@ var getAvatarColorForInputText = function getAvatarColorForInputText(value) {
1159
1177
  return colorOptions[numberFromValue % colorOptions.length];
1160
1178
  };
1161
1179
 
1162
- var DotAvatar = function DotAvatar(_ref) {
1163
- var alt = _ref.alt,
1164
- ariaLabel = _ref.ariaLabel,
1165
- className = _ref.className,
1166
- _ref$component = _ref.component,
1167
- component = _ref$component === void 0 ? 'div' : _ref$component,
1168
- color = _ref.color,
1169
- dataTestId = _ref['data-testid'],
1180
+ var AvatarContent = function AvatarContent(_ref) {
1181
+ var dataTestId = _ref['data-testid'],
1170
1182
  iconId = _ref.iconId,
1171
1183
  imageSrc = _ref.imageSrc,
1172
- _onClick = _ref.onClick,
1173
- _ref$size = _ref.size,
1174
- size = _ref$size === void 0 ? 'medium' : _ref$size,
1175
- _ref$text = _ref.text,
1176
- text = _ref$text === void 0 ? alt : _ref$text,
1177
- _ref$type = _ref.type,
1178
- type = _ref$type === void 0 ? 'image' : _ref$type,
1179
- tooltip = _ref.tooltip,
1180
- _ref$variant = _ref.variant,
1181
- variant = _ref$variant === void 0 ? 'circular' : _ref$variant,
1182
- style = _ref.style;
1183
- var rootClasses = useStylesWithRootClass(rootClassName$C, className);
1184
-
1185
- var getAvatarColor = function getAvatarColor() {
1186
- if (color) return color;
1187
- if (text && text !== alt) return getAvatarColorForInputText(text);
1188
- return 'default';
1189
- };
1184
+ size = _ref.size,
1185
+ text = _ref.text,
1186
+ type = _ref.type;
1190
1187
 
1191
1188
  var parsedText = function parsedText() {
1192
1189
  var textArray = text.split(' ');
@@ -1208,32 +1205,79 @@ var DotAvatar = function DotAvatar(_ref) {
1208
1205
  return size === 'small' ? size : 'medium';
1209
1206
  };
1210
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
+
1211
1254
  return /*#__PURE__*/React__default.createElement(DotTooltip, {
1212
1255
  title: tooltip
1213
1256
  }, /*#__PURE__*/React__default.createElement(StyledAvatar, {
1214
1257
  alt: alt,
1215
1258
  "aria-label": ariaLabel,
1216
1259
  className: size,
1217
- color: getAvatarColor(),
1218
- component: _onClick ? 'button' : component,
1219
1260
  classes: {
1220
1261
  root: rootClasses,
1221
1262
  img: 'dot-img'
1222
1263
  },
1264
+ color: getAvatarColor(),
1265
+ component: _onClick ? 'button' : component,
1223
1266
  "data-testid": dataTestId,
1224
1267
  onClick: function onClick(event) {
1225
1268
  return _onClick ? _onClick(event) : null;
1226
1269
  },
1227
1270
  src: type === 'image' ? imageSrc : null,
1228
- variant: variant,
1229
- style: style
1230
- }, type === 'icon' || type === 'image' && !imageSrc ? /*#__PURE__*/React__default.createElement(DotIcon, {
1231
- "data-testid": dataTestId + "-icon",
1232
- iconId: iconId ? iconId : 'user',
1233
- fontSize: getIconFontSizeFromAvatarSize()
1234
- }) : type === 'text' ? /*#__PURE__*/React__default.createElement(DotTypography, {
1235
- variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
1236
- }, 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
+ })));
1237
1281
  };
1238
1282
 
1239
1283
  var _templateObject$E;
@@ -1270,16 +1314,16 @@ var DotDrawer = function DotDrawer(_ref) {
1270
1314
  width = _ref$width === void 0 ? '256px' : _ref$width;
1271
1315
  var rootClasses = useStylesWithRootClass(rootClassName$B, className);
1272
1316
  return /*#__PURE__*/React__default.createElement(StyledDrawer, {
1273
- "aria-label": ariaLabel,
1274
- "data-testid": dataTestId,
1317
+ ModalProps: ModalProps,
1318
+ PaperProps: PaperProps,
1275
1319
  anchor: anchor,
1320
+ "aria-label": ariaLabel,
1276
1321
  classes: {
1277
1322
  root: rootClasses,
1278
1323
  paper: 'dot-drawer-paper'
1279
1324
  },
1325
+ "data-testid": dataTestId,
1280
1326
  height: height,
1281
- ModalProps: ModalProps,
1282
- PaperProps: PaperProps,
1283
1327
  onClose: function onClose(event) {
1284
1328
  return _onClose && _onClose(event);
1285
1329
  },
@@ -1470,10 +1514,10 @@ var DotMenu = function DotMenu(_ref) {
1470
1514
  return /*#__PURE__*/React__default.createElement(MenuItem, {
1471
1515
  "aria-label": item.ariaLabel,
1472
1516
  className: "dot-li " + (item.classes ? item.classes : ''),
1517
+ key: index,
1473
1518
  onClick: function onClick(event) {
1474
1519
  return handleSelect(event, item.key);
1475
1520
  },
1476
- key: index,
1477
1521
  style: {
1478
1522
  height: calculateItemHeight()
1479
1523
  }
@@ -1482,7 +1526,7 @@ var DotMenu = function DotMenu(_ref) {
1482
1526
  });
1483
1527
  };
1484
1528
 
1485
- var _templateObject$B, _templateObject2$7;
1529
+ var _templateObject$B, _templateObject2$8;
1486
1530
  var rootClassName$y = 'dot-list';
1487
1531
  var listItemRootClass = 'dot-list-item';
1488
1532
  var nestedListClassName = 'dot-nested-list';
@@ -1494,7 +1538,7 @@ var StyledList = styled(List)(_templateObject$B || (_templateObject$B = _taggedT
1494
1538
  var theme = _ref.theme;
1495
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));
1496
1540
  });
1497
- 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) {
1498
1542
  var theme = _ref2.theme;
1499
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);
1500
1544
  });
@@ -1557,8 +1601,8 @@ var NestedList = function NestedList(_ref) {
1557
1601
  component: href && !onClick ? 'a' : null,
1558
1602
  href: href,
1559
1603
  key: parentItemIndex + "-" + index,
1560
- target: target,
1561
- onClick: onClick
1604
+ onClick: onClick,
1605
+ target: target
1562
1606
  }, /*#__PURE__*/React__default.createElement("span", {
1563
1607
  className: flyoutSpanClasses
1564
1608
  }, startIconId && startIcon, /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -1569,30 +1613,30 @@ var NestedList = function NestedList(_ref) {
1569
1613
  };
1570
1614
  });
1571
1615
  return /*#__PURE__*/React__default.createElement(DotMenu, {
1572
- ariaLabel: ariaLabel,
1573
1616
  anchorEl: anchorEl,
1617
+ ariaLabel: ariaLabel,
1574
1618
  className: flyoutMenuClassName,
1575
1619
  id: CreateUUID(),
1620
+ key: parentItemIndex,
1576
1621
  menuItemHeight: "auto",
1577
1622
  menuItems: menuItems,
1578
1623
  menuPlacement: menuPlacement,
1579
1624
  onLeave: onMenuLeave,
1580
- open: open,
1581
- key: parentItemIndex
1625
+ open: open
1582
1626
  });
1583
1627
  }
1584
1628
 
1585
1629
  if (type === 'drawer') {
1586
1630
  return /*#__PURE__*/React__default.createElement(DotDrawer, {
1587
- anchor: "left",
1588
- className: nestedDrawerClassName,
1589
- "data-testid": "nested-drawer",
1590
- open: open,
1591
1631
  PaperProps: {
1592
1632
  style: {
1593
1633
  left: nestedDrawerLeftSpacing + "px"
1594
1634
  }
1595
1635
  },
1636
+ anchor: "left",
1637
+ className: nestedDrawerClassName,
1638
+ "data-testid": "nested-drawer",
1639
+ open: open,
1596
1640
  variant: "persistent"
1597
1641
  }, /*#__PURE__*/React__default.createElement(DotList, {
1598
1642
  ariaLabel: ariaLabel,
@@ -1685,8 +1729,8 @@ var DotList = function DotList(_ref3) {
1685
1729
 
1686
1730
  if (item.divider) {
1687
1731
  return /*#__PURE__*/React__default.createElement(DotListDivider, {
1688
- item: item,
1689
1732
  index: index,
1733
+ item: item,
1690
1734
  key: "divider-" + index
1691
1735
  });
1692
1736
  }
@@ -1699,12 +1743,12 @@ var DotList = function DotList(_ref3) {
1699
1743
  href: item.href,
1700
1744
  isOpened: listItemIndex === index,
1701
1745
  items: item.items,
1702
- onClick: item.href && !item.onClick ? null : handleListItemClick,
1703
- onMenuLeave: handleMenuLeave,
1704
1746
  key: index,
1705
1747
  menuPlacement: menuPlacement,
1706
1748
  nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1707
1749
  nestedListType: nestedListType,
1750
+ onClick: item.href && !item.onClick ? null : handleListItemClick,
1751
+ onMenuLeave: handleMenuLeave,
1708
1752
  primaryText: item.primaryText,
1709
1753
  secondaryText: item.secondaryText,
1710
1754
  selected: item.selected,
@@ -1837,11 +1881,11 @@ var DotListItem = function DotListItem(_ref4) {
1837
1881
  className: "toggle-display",
1838
1882
  iconId: getChevronIcon()
1839
1883
  })) : endIconId && endIcon)), hasChildren && /*#__PURE__*/React__default.createElement(NestedList, {
1840
- ariaLabel: "nested list",
1841
1884
  anchorEl: anchorEl,
1885
+ ariaLabel: "nested list",
1842
1886
  items: items,
1843
- nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1844
1887
  menuPlacement: menuPlacement,
1888
+ nestedDrawerLeftSpacing: nestedDrawerLeftSpacing,
1845
1889
  onMenuLeave: handleMenuLeave,
1846
1890
  open: isOpened,
1847
1891
  type: nestedListType
@@ -2114,13 +2158,13 @@ function SvgLogoDigitalAiWhite(_ref, svgRef) {
2114
2158
 
2115
2159
  var ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoDigitalAiWhite);
2116
2160
 
2117
- var _templateObject$z, _templateObject2$6;
2161
+ var _templateObject$z, _templateObject2$7;
2118
2162
  var rootClassName$w = 'dot-app-toolbar';
2119
2163
  var denseClassName = 'dense';
2120
2164
  var StyledMainMenu = styled(DotDrawer)(_templateObject$z || (_templateObject$z = _taggedTemplateLiteralLoose(["\n ", "\n"])), function () {
2121
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);
2122
2166
  });
2123
- 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) {
2124
2168
  var theme = _ref.theme;
2125
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);
2126
2170
  });
@@ -2152,8 +2196,9 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2152
2196
  var showMainMenu = mainMenu || mainMenuItems;
2153
2197
  var displayAppLogo = appLogo || appLogoSmall;
2154
2198
  var mainMenuRef = useRef(null);
2155
- var rootClasses = useStylesWithRootClass(rootClassName$w, className, dense ? denseClassName : '');
2156
- 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' : '');
2157
2202
  var targetBreakpoint = useMediaQuery(function (theme) {
2158
2203
  return theme.breakpoints.up('md');
2159
2204
  });
@@ -2210,8 +2255,8 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2210
2255
  return updateMenuOpen(false);
2211
2256
  },
2212
2257
  open: menuOpen,
2213
- width: mainMenuWidth + 'px',
2214
- variant: "persistent"
2258
+ variant: "persistent",
2259
+ width: mainMenuWidth + 'px'
2215
2260
  }, /*#__PURE__*/React__default.createElement("div", {
2216
2261
  ref: mainMenuRef
2217
2262
  }, mainMenuItems ? /*#__PURE__*/React__default.createElement(DotSidebar, {
@@ -2245,10 +2290,10 @@ var DotAppToolbar = function DotAppToolbar(_ref) {
2245
2290
  className: item.className,
2246
2291
  iconId: item.iconId,
2247
2292
  iconSize: "default",
2293
+ key: index,
2248
2294
  onClick: function onClick(event) {
2249
2295
  return item.onClick && item.onClick(event);
2250
2296
  },
2251
- key: index,
2252
2297
  size: "medium",
2253
2298
  tooltip: item.tooltip
2254
2299
  });
@@ -2315,13 +2360,13 @@ var DotChip = function DotChip(_ref) {
2315
2360
  });
2316
2361
  };
2317
2362
 
2318
- var _templateObject$w, _templateObject2$5;
2363
+ var _templateObject$w, _templateObject2$6;
2319
2364
  var rootClassName$t = 'dot-text-field';
2320
2365
  var rootSelectClassName = 'dot-select-field';
2321
2366
  var warningClassName = 'dot-warning';
2322
2367
  var adornmentIconClassName = 'dot-adornment-icon';
2323
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"])));
2324
- 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) {
2325
2370
  var theme = _ref.theme,
2326
2371
  InputProps = _ref.InputProps;
2327
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);
@@ -2402,18 +2447,18 @@ var DotButton = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
2402
2447
  },
2403
2448
  color: color,
2404
2449
  "data-testid": dataTestId,
2405
- disabled: disabled,
2406
2450
  disableRipple: disableRipple,
2451
+ disabled: disabled,
2407
2452
  endIcon: endIcon,
2408
2453
  fullWidth: fullWidth,
2409
2454
  onClick: function onClick(event) {
2410
2455
  return _onClick && _onClick(event);
2411
2456
  },
2412
2457
  ref: ref,
2413
- variant: variant,
2414
2458
  size: size,
2415
2459
  startIcon: startIcon,
2416
- type: isSubmit ? 'submit' : 'button'
2460
+ type: isSubmit ? 'submit' : 'button',
2461
+ variant: variant
2417
2462
  }, children));
2418
2463
  });
2419
2464
 
@@ -2563,9 +2608,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2563
2608
 
2564
2609
  /* Add this to short circuit blur event (otherwise button click will not work):
2565
2610
  * https://github.com/mui-org/material-ui/issues/19038 */
2566
- onMouseDown: function onMouseDown(e) {
2567
- e.preventDefault();
2568
- },
2611
+ onBlur: handleBlur,
2569
2612
  onKeyDown: function onKeyDown(event) {
2570
2613
  if (event.key === 'Tab' && textFieldInput) {
2571
2614
  event.preventDefault();
@@ -2573,7 +2616,9 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2573
2616
  }
2574
2617
  },
2575
2618
  // We want to close the popper each time focus is shifted from action item
2576
- onBlur: handleBlur
2619
+ onMouseDown: function onMouseDown(e) {
2620
+ e.preventDefault();
2621
+ }
2577
2622
  }, /*#__PURE__*/React__default.createElement(DotButton, {
2578
2623
  "data-testid": "dot-action-item-btn",
2579
2624
  disableRipple: true,
@@ -2589,6 +2634,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2589
2634
  };
2590
2635
 
2591
2636
  return /*#__PURE__*/React__default.createElement(StyledAutocomplete, {
2637
+ PopperComponent: DotPopper,
2592
2638
  "aria-label": ariaLabel,
2593
2639
  classes: {
2594
2640
  root: rootClasses
@@ -2605,6 +2651,7 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2605
2651
  return option.group;
2606
2652
  } : undefined,
2607
2653
  multiple: multiple,
2654
+ onBlur: handleBlur,
2608
2655
  onChange: function onChange(event, val, reason) {
2609
2656
  valuesChanged({
2610
2657
  event: event,
@@ -2613,20 +2660,18 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2613
2660
  });
2614
2661
  setIsOpened(false);
2615
2662
  },
2616
- open: isOpened,
2617
- options: sortOptions(),
2618
- PopperComponent: DotPopper,
2619
- // We want to close the popper each time focus is shifted from the autocomplete
2620
- onBlur: handleBlur,
2621
2663
  onClose: function onClose(event) {
2622
2664
  // We want to close popper in each occasion where focus isn't set to action item
2623
2665
  if (!('relatedTarget' in event) || event.relatedTarget !== actionItemRef.current) {
2624
2666
  setIsOpened(false);
2625
2667
  }
2626
2668
  },
2669
+ // We want to close the popper each time focus is shifted from the autocomplete
2627
2670
  onOpen: function onOpen() {
2628
2671
  return setIsOpened(true);
2629
2672
  },
2673
+ open: isOpened,
2674
+ options: sortOptions(),
2630
2675
  renderInput: function renderInput(params) {
2631
2676
  return (
2632
2677
  /*#__PURE__*/
@@ -2650,9 +2695,6 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2650
2695
  inputRef: textFieldRef,
2651
2696
  label: label,
2652
2697
  name: label,
2653
- placeholder: showPlaceholder ? placeholder : undefined,
2654
- required: false,
2655
- variant: "outlined",
2656
2698
  onKeyDown: function onKeyDown(event) {
2657
2699
  var _a; // Intercept 'tab' key press while action item element exists
2658
2700
 
@@ -2661,7 +2703,10 @@ var DotAutoComplete = function DotAutoComplete(_ref) {
2661
2703
  event.preventDefault();
2662
2704
  (_a = actionItemRef === null || actionItemRef === void 0 ? void 0 : actionItemRef.current) === null || _a === void 0 ? void 0 : _a.focus();
2663
2705
  }
2664
- }
2706
+ },
2707
+ placeholder: showPlaceholder ? placeholder : undefined,
2708
+ required: false,
2709
+ variant: "outlined"
2665
2710
  }))
2666
2711
  );
2667
2712
  },
@@ -2734,28 +2779,221 @@ var DotBadge = function DotBadge(_ref) {
2734
2779
  }, children);
2735
2780
  };
2736
2781
 
2737
- var _templateObject$t;
2782
+ var _templateObject$t, _templateObject2$5;
2738
2783
  var rootClassName$q = 'dot-breadcrumbs';
2739
- 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) {
2740
2786
  var theme = _ref.theme;
2741
- 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]);
2742
2792
  });
2743
2793
 
2744
2794
  var compareWidth = function compareWidth(parentEl, childEl) {
2745
2795
  return parentEl.getBoundingClientRect().width < childEl.getBoundingClientRect().width;
2746
2796
  };
2747
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
+
2748
2988
  var DotBreadcrumbs = function DotBreadcrumbs(_ref) {
2749
2989
  var className = _ref.className,
2750
2990
  dataTestId = _ref['data-testid'],
2751
2991
  _ref$expansionMenu = _ref.expansionMenu,
2752
2992
  expansionMenu = _ref$expansionMenu === void 0 ? false : _ref$expansionMenu,
2753
2993
  items = _ref.items,
2754
- _ref$maxItems = _ref.maxItems,
2755
- maxItems = _ref$maxItems === void 0 ? 3 : _ref$maxItems,
2994
+ maxItems = _ref.maxItems,
2756
2995
  minWidth = _ref.minWidth;
2757
- var rootClasses = useStylesWithRootClass(rootClassName$q, className);
2758
- var breadcrumbRef = useRef();
2996
+ var wrapperRootClasses = useStylesWithRootClass(breadcrumbsWrapperClass, className);
2759
2997
  var wrapperRef = useRef();
2760
2998
 
2761
2999
  var _useState = useState(null),
@@ -2770,111 +3008,80 @@ var DotBreadcrumbs = function DotBreadcrumbs(_ref) {
2770
3008
  adjustMaxItems = _useState3[0],
2771
3009
  setAdjustMaxItems = _useState3[1];
2772
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
+
2773
3025
  var clickListener = function clickListener(event) {
3026
+ if (event instanceof KeyboardEvent && event.key !== 'Enter') return;
2774
3027
  event.stopPropagation();
2775
3028
  setMenuOpen(function (currentMenuOpen) {
2776
3029
  return !currentMenuOpen;
2777
3030
  });
2778
3031
  };
2779
3032
 
2780
- var getExpandElement = function getExpandElement() {
2781
- var elements = document.getElementsByClassName('MuiBreadcrumbs-ol');
2782
- return elements.length === 1 ? elements[0].getElementsByClassName('MuiButtonBase-root')[0] : null;
2783
- };
2784
-
2785
- var getMenuItems = function getMenuItems() {
2786
- return items.slice(1, items.length - 2).map(function (item, index) {
2787
- var itemChildren = /*#__PURE__*/React__default.createElement(DotLink, {
2788
- ariaLabel: item.ariaLabel,
2789
- className: "breadcrumb",
2790
- color: "inherit",
2791
- href: item.href,
2792
- key: index,
2793
- onClick: item.onClick,
2794
- tabIndex: 0,
2795
- underline: item.underline
2796
- }, item.text);
2797
- return {
2798
- children: itemChildren,
2799
- key: index.toString()
2800
- };
2801
- });
2802
- };
2803
-
2804
- var menuItems = items.length > maxItems ? getMenuItems() : null;
2805
-
2806
3033
  var onMenuLeave = function onMenuLeave(_event) {
2807
3034
  setMenuOpen(false);
2808
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
+
2809
3041
 
2810
3042
  useEffect(function () {
2811
- if (expansionMenu) {
2812
- var expandElement = getExpandElement();
2813
-
2814
- if (expandElement) {
2815
- setAnchorEl(expandElement);
2816
- expandElement.addEventListener('click', clickListener);
2817
- return function () {
2818
- expandElement.removeEventListener('click', clickListener);
2819
- };
2820
- }
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
+ };
2821
3052
  }
2822
- }, []);
3053
+ }, [expansionMenu, maxVisibleItems, adjustMaxItems, items]);
2823
3054
  useEffect(function () {
2824
- 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)) {
2825
3056
  setAdjustMaxItems(compareWidth(wrapperRef.current, breadcrumbRef.current));
2826
3057
  }
2827
- }, [breadcrumbRef === null || breadcrumbRef === void 0 ? void 0 : breadcrumbRef.current, wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current]);
2828
- return /*#__PURE__*/React__default.createElement("div", {
2829
- ref: wrapperRef,
2830
- style: {
2831
- overflow: 'hidden'
2832
- }
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
2833
3063
  }, /*#__PURE__*/React__default.createElement(StyledBreadcrumbs, {
2834
3064
  "aria-label": "breadcrumb",
2835
3065
  classes: {
2836
- root: rootClasses,
3066
+ root: rootClassName$q,
2837
3067
  ol: 'dot-ol',
2838
3068
  li: 'dot-li'
2839
3069
  },
2840
3070
  "data-testid": dataTestId,
2841
- itemsAfterCollapse: adjustMaxItems ? 1 : 2,
2842
- maxItems: adjustMaxItems ? 2 : maxItems,
3071
+ itemsAfterCollapse: itemsAfterCollapse,
3072
+ maxItems: getMaxItems(adjustMaxItems, maxVisibleItems, maxItems),
2843
3073
  ref: breadcrumbRef,
2844
3074
  separator: /*#__PURE__*/React__default.createElement(DotIcon, {
2845
- iconId: "chevron-right",
2846
- className: "separator"
3075
+ className: "separator",
3076
+ iconId: "chevron-right"
2847
3077
  }),
2848
3078
  style: {
2849
3079
  width: minWidth
2850
3080
  }
2851
- }, items.map(function (item, index) {
2852
- var ariaLabel = item.ariaLabel,
2853
- href = item.href,
2854
- onClick = item.onClick,
2855
- text = item.text,
2856
- underline = item.underline;
2857
-
2858
- if (index === items.length - 1) {
2859
- return /*#__PURE__*/React__default.createElement("span", {
2860
- "aria-label": ariaLabel,
2861
- className: "breadcrumb current-page",
2862
- key: index
2863
- }, text);
2864
- } else {
2865
- return /*#__PURE__*/React__default.createElement(DotLink, {
2866
- ariaLabel: ariaLabel,
2867
- className: "breadcrumb",
2868
- color: "inherit",
2869
- href: href,
2870
- key: index,
2871
- onClick: onClick,
2872
- tabIndex: 0,
2873
- underline: underline
2874
- }, text);
2875
- }
2876
- })), /*#__PURE__*/React__default.createElement(DotMenu, {
3081
+ }, mapBreadcrumbItems(items, breadcrumbItemRefs, itemsAfterCollapse)), /*#__PURE__*/React__default.createElement(DotMenu, {
2877
3082
  anchorEl: anchorEl,
3083
+ className: "dot-breadcrumbs-menu",
3084
+ disablePortal: true,
2878
3085
  id: "expand-menu",
2879
3086
  menuItems: menuItems,
2880
3087
  menuPlacement: "bottom-start",
@@ -2923,9 +3130,9 @@ var DotButtonToggle = function DotButtonToggle(_ref) {
2923
3130
  }, buttonOptions.map(function (option, key) {
2924
3131
  return /*#__PURE__*/React__default.createElement(ToggleButton, {
2925
3132
  "aria-label": option.ariaLabel,
2926
- disabled: option.disabled,
2927
3133
  disableFocusRipple: disableFocusRipple,
2928
3134
  disableRipple: disableRipple,
3135
+ disabled: option.disabled,
2929
3136
  key: key,
2930
3137
  value: option.value
2931
3138
  }, option.iconId && /*#__PURE__*/React__default.createElement(DotIcon, {
@@ -3060,16 +3267,15 @@ function DotCheckbox(_ref) {
3060
3267
 
3061
3268
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
3062
3269
  className: rootClasses,
3063
- labelPlacement: labelPlacement,
3064
3270
  control: /*#__PURE__*/React__default.createElement(StyledCheckbox, {
3271
+ checked: checked,
3065
3272
  classes: {
3066
3273
  root: rootClassName$m
3067
3274
  },
3068
- checked: checked,
3069
3275
  color: "primary",
3070
3276
  "data-testid": dataTestId,
3071
- disabled: disabled,
3072
3277
  disableRipple: disableRipple,
3278
+ disabled: disabled,
3073
3279
  id: id,
3074
3280
  indeterminate: indeterminate,
3075
3281
  inputProps: {
@@ -3083,7 +3289,8 @@ function DotCheckbox(_ref) {
3083
3289
  size: size,
3084
3290
  value: value
3085
3291
  }),
3086
- label: label
3292
+ label: label,
3293
+ labelPlacement: labelPlacement
3087
3294
  });
3088
3295
  }
3089
3296
 
@@ -3122,10 +3329,10 @@ function DotFormGroup(_ref) {
3122
3329
  var rootClasses = useStylesWithRootClass(rootClassName$l, className);
3123
3330
  return /*#__PURE__*/React__default.createElement(StyledFormGroup, {
3124
3331
  "aria-label": ariaLabel,
3125
- "data-testid": dataTestId,
3126
3332
  classes: {
3127
3333
  root: rootClasses
3128
3334
  },
3335
+ "data-testid": dataTestId,
3129
3336
  role: "group",
3130
3337
  row: row
3131
3338
  }, children);
@@ -3203,15 +3410,15 @@ function DotCheckboxGroup(_ref) {
3203
3410
  disabled = _ref2.disabled,
3204
3411
  value = _ref2.value;
3205
3412
  return /*#__PURE__*/React__default.createElement(DotCheckbox, {
3206
- className: checkboxListItemClassName,
3207
3413
  checked: selectedOptions.some(function (option) {
3208
3414
  return option && option.value === value;
3209
3415
  }) || allChecked,
3416
+ className: checkboxListItemClassName,
3210
3417
  disabled: disabled || disableGroup,
3211
- name: name,
3212
3418
  key: value,
3213
3419
  label: label,
3214
3420
  labelPlacement: labelPlacement,
3421
+ name: name,
3215
3422
  onChange: function onChange(event) {
3216
3423
  return handleChange(event, {
3217
3424
  label: label,
@@ -3224,15 +3431,15 @@ function DotCheckboxGroup(_ref) {
3224
3431
  }) : null;
3225
3432
  return /*#__PURE__*/React__default.createElement(StyledCheckboxGroup, {
3226
3433
  "aria-label": ariaLabel,
3227
- "data-testid": dataTestId,
3228
- className: wrapperClassName$1
3434
+ className: wrapperClassName$1,
3435
+ "data-testid": dataTestId
3229
3436
  }, /*#__PURE__*/React__default.createElement(StyledFormControl, {
3230
3437
  classes: {
3231
3438
  root: rootClasses
3232
3439
  },
3440
+ component: "fieldset",
3233
3441
  disabled: disableGroup,
3234
3442
  error: error,
3235
- component: "fieldset",
3236
3443
  required: required
3237
3444
  }, groupLabel && /*#__PURE__*/React__default.createElement(FormLabel, {
3238
3445
  component: "legend"
@@ -3245,8 +3452,8 @@ function DotCheckboxGroup(_ref) {
3245
3452
  }, endIcon)), showSelectAll && /*#__PURE__*/React__default.createElement(DotCheckbox, {
3246
3453
  checked: selectedOptions.length === options.length,
3247
3454
  indeterminate: selectedOptions.length > 0 && selectedOptions.length < options.length,
3248
- name: name ? name + "-select-all" : 'dot-select-all',
3249
3455
  label: selectAllLabel,
3456
+ name: name ? name + "-select-all" : 'dot-select-all',
3250
3457
  onChange: handleSelectAll,
3251
3458
  size: size,
3252
3459
  value: "select-all"
@@ -3318,13 +3525,13 @@ var DotDialog = function DotDialog(_ref) {
3318
3525
 
3319
3526
  return /*#__PURE__*/React__default.createElement(StyledDialog, {
3320
3527
  "aria-label": ariaLabel,
3528
+ "aria-labelledby": "MuiDialogTitle-root",
3321
3529
  classes: {
3322
3530
  root: rootClasses
3323
3531
  },
3324
3532
  "data-testid": dataTestId,
3325
- open: isOpen,
3326
3533
  onClose: handleClickAway,
3327
- "aria-labelledby": "MuiDialogTitle-root"
3534
+ open: isOpen
3328
3535
  }, /*#__PURE__*/React__default.createElement(DialogTitle, {
3329
3536
  disableTypography: true
3330
3537
  }, /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -3345,22 +3552,22 @@ var DotDialog = function DotDialog(_ref) {
3345
3552
  autoFocus: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.autoFocus,
3346
3553
  className: cancelClasses,
3347
3554
  "data-testid": cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps['data-testid'],
3348
- disabled: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disabled,
3349
3555
  disableRipple: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disableRipple,
3556
+ disabled: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.disabled,
3350
3557
  endIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.endIcon,
3351
- startIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.startIcon,
3352
3558
  onClick: handleCancel,
3559
+ startIcon: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.startIcon,
3353
3560
  titleTooltip: cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.tooltip,
3354
3561
  type: "text"
3355
3562
  }, (cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.label) || 'Cancel'), hasPrimaryAction && /*#__PURE__*/React__default.createElement(DotButton, {
3356
3563
  autoFocus: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.autoFocus,
3357
3564
  className: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.className,
3358
3565
  "data-testid": submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps['data-testid'],
3359
- disabled: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disabled,
3360
3566
  disableRipple: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disableRipple,
3567
+ disabled: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.disabled,
3361
3568
  endIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.endIcon,
3362
- startIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.startIcon,
3363
3569
  onClick: handleSubmit,
3570
+ startIcon: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.startIcon,
3364
3571
  titleTooltip: submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.tooltip,
3365
3572
  type: (submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.type) || 'primary'
3366
3573
  }, (submitButtonProps === null || submitButtonProps === void 0 ? void 0 : submitButtonProps.label) || 'OK')));
@@ -3570,13 +3777,13 @@ var CssGridDebug = function CssGridDebug(_ref) {
3570
3777
  }))), /*#__PURE__*/React__default.createElement("div", {
3571
3778
  className: "message"
3572
3779
  }, "NOT FOR PRODUCTION")), /*#__PURE__*/React__default.createElement(StyledGridOverlay, {
3573
- rows: "minmax(100vh, 100%)",
3574
- className: gridClassName
3780
+ className: gridClassName,
3781
+ rows: "minmax(100vh, 100%)"
3575
3782
  }, [].concat(Array(columns)).map(function (item, i) {
3576
3783
  return /*#__PURE__*/React__default.createElement(CssCell, {
3577
- start: i + 1,
3578
3784
  className: "" + cellClassName,
3579
3785
  key: i,
3786
+ start: i + 1,
3580
3787
  width: 1
3581
3788
  });
3582
3789
  })));
@@ -3604,10 +3811,10 @@ var DotEmptyState = function DotEmptyState(_ref) {
3604
3811
  className: rootClasses,
3605
3812
  "data-testid": dataTestId
3606
3813
  }, imageSrc && /*#__PURE__*/React__default.createElement("img", {
3607
- className: "empty-state-image",
3608
- title: imageAltText || title,
3609
3814
  alt: imageAltText || title,
3610
- src: imageSrc
3815
+ className: "empty-state-image",
3816
+ src: imageSrc,
3817
+ title: imageAltText || title
3611
3818
  }), /*#__PURE__*/React__default.createElement(DotTypography, {
3612
3819
  variant: "h2"
3613
3820
  }, title), subtitle && /*#__PURE__*/React__default.createElement(DotTypography, {
@@ -3965,7 +4172,16 @@ var DotInputText = function DotInputText(_ref) {
3965
4172
 
3966
4173
  var defaultInputValue = hasDebounce ? undefined : defaultValue;
3967
4174
  return /*#__PURE__*/React__default.createElement(StyledTextField, {
3968
- 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
+ },
3969
4185
  "aria-label": name,
3970
4186
  autoComplete: "off",
3971
4187
  autoFocus: autoFocus,
@@ -3977,21 +4193,12 @@ var DotInputText = function DotInputText(_ref) {
3977
4193
  error: error,
3978
4194
  fullWidth: fullWidth,
3979
4195
  helperText: helperText,
4196
+ id: id,
3980
4197
  inputProps: {
3981
4198
  'data-testid': dataTestId,
3982
4199
  className: 'dot-input',
3983
4200
  readOnly: readOnly
3984
4201
  },
3985
- InputProps: {
3986
- startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
3987
- className: adornmentIconClassName + " start",
3988
- position: "start"
3989
- }, startIcon),
3990
- endAdornment: endAdornmentIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
3991
- className: adornmentIconClassName + " end",
3992
- position: "end"
3993
- }, endAdornmentIcon)
3994
- },
3995
4202
  inputRef: inputRef,
3996
4203
  label: label,
3997
4204
  multiline: multiline,
@@ -4006,8 +4213,8 @@ var DotInputText = function DotInputText(_ref) {
4006
4213
  rowsMax: multiline ? rowsMax : null,
4007
4214
  size: size,
4008
4215
  type: type,
4009
- variant: "outlined",
4010
- value: inputTextValue
4216
+ value: inputTextValue,
4217
+ variant: "outlined"
4011
4218
  });
4012
4219
  };
4013
4220
 
@@ -4045,11 +4252,23 @@ var DotInputSelect = function DotInputSelect(_ref) {
4045
4252
  var rootStyles = useStylesWithRootClass(rootSelectClassName, className);
4046
4253
  var hasWarning = !error && warning && warningClassName;
4047
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
+ },
4048
4268
  autoFocus: autoFocus,
4049
4269
  className: rootStyles + " " + hasWarning,
4050
4270
  defaultValue: defaultValue,
4051
4271
  disabled: disabled,
4052
- value: value,
4053
4272
  error: error,
4054
4273
  fullWidth: fullWidth,
4055
4274
  helperText: helperText,
@@ -4059,16 +4278,6 @@ var DotInputSelect = function DotInputSelect(_ref) {
4059
4278
  'data-testid': dataTestId,
4060
4279
  className: 'dot-select'
4061
4280
  },
4062
- InputProps: {
4063
- startAdornment: startIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4064
- className: adornmentIconClassName + " start",
4065
- position: "start"
4066
- }, startIcon),
4067
- endAdornment: endIcon && /*#__PURE__*/React__default.createElement(StyledAdornment, {
4068
- className: adornmentIconClassName + " end",
4069
- position: "end"
4070
- }, endIcon)
4071
- },
4072
4281
  inputRef: inputRef,
4073
4282
  label: label,
4074
4283
  multiline: false,
@@ -4079,10 +4288,8 @@ var DotInputSelect = function DotInputSelect(_ref) {
4079
4288
  onKeyDown: onKeyDown,
4080
4289
  required: required,
4081
4290
  select: true,
4082
- SelectProps: {
4083
- "native": true
4084
- },
4085
4291
  size: size,
4292
+ value: value,
4086
4293
  variant: "outlined"
4087
4294
  }, options.map(function (option) {
4088
4295
  return /*#__PURE__*/React__default.createElement("option", {
@@ -4179,14 +4386,12 @@ function DotRadioButton(_ref) {
4179
4386
 
4180
4387
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
4181
4388
  className: rootClasses,
4182
- labelPlacement: labelPlacement,
4183
- value: value,
4184
4389
  control: /*#__PURE__*/React__default.createElement(StyledRadioButton, {
4185
4390
  "aria-label": ariaLabel,
4391
+ checked: checked,
4186
4392
  classes: {
4187
4393
  root: rootClassName$c
4188
4394
  },
4189
- checked: checked,
4190
4395
  color: "primary",
4191
4396
  "data-testid": dataTestId,
4192
4397
  disabled: disabled,
@@ -4197,7 +4402,9 @@ function DotRadioButton(_ref) {
4197
4402
  required: required,
4198
4403
  size: size
4199
4404
  }),
4200
- label: label
4405
+ label: label,
4406
+ labelPlacement: labelPlacement,
4407
+ value: value
4201
4408
  });
4202
4409
  }
4203
4410
 
@@ -4246,9 +4453,9 @@ var DotRadioGroup = function DotRadioGroup(_ref) {
4246
4453
  value = _ref2.value,
4247
4454
  disabled = _ref2.disabled;
4248
4455
  return /*#__PURE__*/React__default.createElement(DotRadioButton, {
4249
- key: value,
4250
4456
  checked: selectedValue === value,
4251
4457
  disabled: disabled || disableGroup,
4458
+ key: value,
4252
4459
  label: label,
4253
4460
  labelPlacement: labelPlacement,
4254
4461
  size: size,
@@ -4261,8 +4468,8 @@ var DotRadioGroup = function DotRadioGroup(_ref) {
4261
4468
  classes: {
4262
4469
  root: rootClasses
4263
4470
  },
4264
- error: error,
4265
4471
  component: "fieldset",
4472
+ error: error,
4266
4473
  required: required
4267
4474
  }, groupLabel && /*#__PURE__*/React__default.createElement(FormLabel, {
4268
4475
  component: "legend"
@@ -4316,24 +4523,24 @@ var DotSwitch = function DotSwitch(_ref) {
4316
4523
 
4317
4524
  return /*#__PURE__*/React__default.createElement(StyledFormControlLabel, {
4318
4525
  className: rootClassName$n,
4319
- labelPlacement: labelPlacement,
4320
4526
  control: /*#__PURE__*/React__default.createElement(StyledSwitch, {
4527
+ checked: checked,
4321
4528
  classes: {
4322
4529
  root: rootClasses
4323
4530
  },
4324
- checked: checked,
4325
4531
  color: color,
4326
4532
  "data-testid": dataTestId,
4327
4533
  disabled: disabled,
4328
4534
  id: id,
4329
- inputRef: inputRef,
4330
4535
  inputProps: {
4331
4536
  'aria-label': ariaLabel ? ariaLabel : label
4332
4537
  },
4538
+ inputRef: inputRef,
4333
4539
  onChange: handleChange,
4334
4540
  size: size
4335
4541
  }),
4336
- label: label
4542
+ label: label,
4543
+ labelPlacement: labelPlacement
4337
4544
  });
4338
4545
  };
4339
4546
 
@@ -5119,6 +5326,13 @@ var DotInlineEdit = function DotInlineEdit(_ref) {
5119
5326
  return onKeyPress(event);
5120
5327
  }
5121
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
+ },
5122
5336
  "aria-label": name,
5123
5337
  autoComplete: "off",
5124
5338
  autoFocus: autoFocus,
@@ -5131,13 +5345,6 @@ var DotInlineEdit = function DotInlineEdit(_ref) {
5131
5345
  className: 'dot-input',
5132
5346
  readOnly: readOnly
5133
5347
  },
5134
- InputProps: {
5135
- endAdornment: /*#__PURE__*/React__default.createElement(InputAdornment, {
5136
- position: "end"
5137
- }, /*#__PURE__*/React__default.createElement(DotIcon, {
5138
- iconId: "edit"
5139
- }))
5140
- },
5141
5348
  multiline: false,
5142
5349
  name: name,
5143
5350
  onChange: function onChange(event) {
@@ -5296,8 +5503,8 @@ var DotSkeleton = function DotSkeleton(_ref) {
5296
5503
  },
5297
5504
  "data-testid": dataTestId,
5298
5505
  height: height,
5299
- width: width,
5300
- variant: skeletonVariant
5506
+ variant: skeletonVariant,
5507
+ width: width
5301
5508
  }, children);
5302
5509
  };
5303
5510
 
@@ -5394,14 +5601,14 @@ var DotSnackbarContainer = function DotSnackbarContainer() {
5394
5601
  return /*#__PURE__*/React__default.createElement(StyledSnackbarContainer, {
5395
5602
  className: rootClassName$5
5396
5603
  }, /*#__PURE__*/React__default.createElement("div", {
5397
- "data-testid": rootClassName$5,
5398
- className: rootClassName$5
5604
+ className: rootClassName$5,
5605
+ "data-testid": rootClassName$5
5399
5606
  }, alerts.slice().reverse().map(function (alert) {
5400
5607
  return /*#__PURE__*/React__default.createElement(DotSnackbar, {
5401
5608
  key: alert.id,
5402
- severity: alert.severity,
5403
5609
  onClose: handleClose(alert.id),
5404
- open: alert.open
5610
+ open: alert.open,
5611
+ severity: alert.severity
5405
5612
  }, alert.message);
5406
5613
  })));
5407
5614
  };
@@ -5522,8 +5729,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5522
5729
  autoFocus: autoFocus,
5523
5730
  className: "label-button",
5524
5731
  "data-testid": dataTestId,
5525
- disabled: disabled,
5526
5732
  disableRipple: disableRipple,
5733
+ disabled: disabled,
5527
5734
  isSubmit: isSubmit,
5528
5735
  onClick: function onClick(event) {
5529
5736
  return handleClick(event);
@@ -5534,8 +5741,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5534
5741
  }, children), /*#__PURE__*/React__default.createElement(DotButton, {
5535
5742
  className: "expand-button",
5536
5743
  "data-testid": dataTestId,
5537
- disabled: disabled,
5538
5744
  disableRipple: disableRipple,
5745
+ disabled: disabled,
5539
5746
  onClick: function onClick() {
5540
5747
  return setOpen(!open);
5541
5748
  },
@@ -5554,8 +5761,8 @@ var DotSplitButton = function DotSplitButton(_ref) {
5554
5761
  onLeave: function onLeave() {
5555
5762
  return setOpen(false);
5556
5763
  },
5557
- open: open,
5558
- onSelect: handleClick
5764
+ onSelect: handleClick,
5765
+ open: open
5559
5766
  }));
5560
5767
  };
5561
5768
 
@@ -5623,8 +5830,8 @@ var DotBodyCell = function DotBodyCell(_ref) {
5623
5830
  var getTableCellValue = function getTableCellValue() {
5624
5831
  if (Array.isArray(value)) {
5625
5832
  return /*#__PURE__*/React__default.createElement("div", {
5626
- ref: wrapperRef,
5627
- className: "action-cell-wrapper"
5833
+ className: "action-cell-wrapper",
5834
+ ref: wrapperRef
5628
5835
  }, showMenu ? /*#__PURE__*/React__default.createElement(DotIconButton, {
5629
5836
  className: "dot-table-action-icon",
5630
5837
  iconId: "options",
@@ -5652,8 +5859,8 @@ var DotBodyCell = function DotBodyCell(_ref) {
5652
5859
  };
5653
5860
 
5654
5861
  return /*#__PURE__*/React__default.createElement(TableCell, {
5655
- "aria-label": ariaLabel,
5656
5862
  align: align,
5863
+ "aria-label": ariaLabel,
5657
5864
  classes: {
5658
5865
  root: rootClasses
5659
5866
  },
@@ -5765,8 +5972,8 @@ var DotTableBody = function DotTableBody(_ref) {
5765
5972
  }
5766
5973
  }, data.map(function (row, index) {
5767
5974
  return /*#__PURE__*/React__default.createElement(DotTableRow, {
5768
- columns: columns,
5769
5975
  className: row.className,
5976
+ columns: columns,
5770
5977
  data: row,
5771
5978
  key: index,
5772
5979
  onActionMenuTrigger: handleActionMenuTrigger,
@@ -5818,9 +6025,9 @@ var DotHeaderRow = function DotHeaderRow(_ref) {
5818
6025
  key: CreateUUID(),
5819
6026
  order: order,
5820
6027
  orderBy: orderBy,
5821
- truncate: cell.truncate,
5822
- sortable: sortable && cell.sortable,
5823
6028
  sortDirection: orderBy === cell.id ? order : undefined,
6029
+ sortable: sortable && cell.sortable,
6030
+ truncate: cell.truncate,
5824
6031
  uid: CreateUUID(),
5825
6032
  value: cell.label,
5826
6033
  width: cell.width
@@ -5869,10 +6076,10 @@ var DotHeaderCell = function DotHeaderCell(_ref2) {
5869
6076
  return /*#__PURE__*/React__default.createElement(TableCell, {
5870
6077
  align: align,
5871
6078
  key: uid,
5872
- title: headerTitle,
5873
6079
  style: {
5874
6080
  width: width ? width : ''
5875
- }
6081
+ },
6082
+ title: headerTitle
5876
6083
  }, value);
5877
6084
  };
5878
6085
 
@@ -6165,8 +6372,8 @@ var DotTabs = function DotTabs(_ref) {
6165
6372
  var tabElement = /*#__PURE__*/React__default.createElement(Tab, {
6166
6373
  "aria-label": tab.ariaLabel,
6167
6374
  "data-testid": tab['data-testid'],
6168
- disabled: tab.disabled,
6169
6375
  disableRipple: true,
6376
+ disabled: tab.disabled,
6170
6377
  key: index,
6171
6378
  label: label,
6172
6379
  value: tab.value