@digital-ai/dot-components 2.8.2 → 2.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGE_LOG.md +44 -17
  2. package/index.esm.js +144 -78
  3. package/index.umd.js +142 -74
  4. package/lib/components/accordion/Accordion.stories.d.ts +5 -5
  5. package/lib/components/accordion/Accordion.styles.d.ts +1 -2
  6. package/lib/components/app-switcher/AppSwitcher.d.ts +1 -1
  7. package/lib/components/app-switcher/AppSwitcher.stories.d.ts +5 -0
  8. package/lib/components/auto-complete/AutoComplete.d.ts +1 -16
  9. package/lib/components/auto-complete/AutoComplete.stories.d.ts +2 -1
  10. package/lib/components/auto-complete/Autocomplete.stories.data.d.ts +2 -1
  11. package/lib/components/auto-complete/index.d.ts +1 -0
  12. package/lib/components/auto-complete/utils/helpers.d.ts +1 -1
  13. package/lib/components/auto-complete/utils/interface.d.ts +17 -0
  14. package/lib/components/avatar/Avatar.d.ts +3 -1
  15. package/lib/components/avatar/Avatar.stories.d.ts +6 -5
  16. package/lib/components/badge/Badge.stories.d.ts +5 -5
  17. package/lib/components/checkbox/Checkbox.stories.d.ts +6 -6
  18. package/lib/components/checkbox/CheckboxGroup.stories.d.ts +3 -3
  19. package/lib/components/chip/Chip.stories.d.ts +5 -5
  20. package/lib/components/dynamic-form/utils/formHelpers.d.ts +1 -1
  21. package/lib/components/file-upload/FileListItem.styles.d.ts +7 -1
  22. package/lib/components/file-upload/FileUpload.stories.d.ts +5 -5
  23. package/lib/components/inline-edit/InlineEdit.d.ts +3 -1
  24. package/lib/components/inline-edit/InlineEdit.stories.d.ts +6 -6
  25. package/lib/components/inline-edit/InlineEdit.styles.d.ts +1 -0
  26. package/lib/components/input-form-fields/InputFormFields.styles.d.ts +2 -2
  27. package/lib/components/linear-progress/LinearProgress.stories.d.ts +2 -2
  28. package/lib/components/list/List.stories.d.ts +3 -3
  29. package/lib/components/list/ListItem.styles.d.ts +7 -1
  30. package/lib/components/menu/Menu.styles.d.ts +10 -1
  31. package/lib/components/popper/Popper.styles.d.ts +10 -1
  32. package/lib/components/progress/Progress.stories.d.ts +2 -2
  33. package/lib/components/radio/RadioGroup.stories.d.ts +2 -2
  34. package/lib/components/snackbar/Snackbar.stories.d.ts +3 -3
  35. package/lib/components/split-button/SplitButton.stories.d.ts +6 -6
  36. package/lib/components/stepper/Stepper.stories.d.ts +7 -7
  37. package/lib/components/switch/Switch.stories.d.ts +9 -9
  38. package/lib/components/table/Table.stories.d.ts +6 -6
  39. package/lib/components/table/TableCell.d.ts +3 -2
  40. package/lib/components/truncate-with-tooltip/TruncateWithTooltip.stories.d.ts +5 -5
  41. package/lib/components/typography/Typography.stories.d.ts +4 -4
  42. package/package.json +1 -1
package/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
- import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import { useEffect, useState, useRef, useMemo, useContext, createContext, forwardRef, Fragment, useCallback, createElement, useLayoutEffect } from 'react';
3
+ import { useEffect, useState, useRef, useMemo, useContext, createContext, forwardRef, useCallback, createElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
4
4
  import { Tooltip, Icon, Typography, Accordion, AccordionSummary, AccordionDetails, AccordionActions, InputAdornment, InputLabel, TextField, Toolbar, Alert, Fade, StyledEngineProvider, Avatar, Button, Link, List, ListItem, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItemIcon, Collapse, ListSubheader, Divider, ListItemText, Badge, useMediaQuery, Autocomplete, Chip, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, RadioGroup, Radio, Switch, Skeleton, Snackbar, ButtonGroup, Stepper, Step, StepLabel, StepContent, TablePagination, TableContainer, TableCell, TableRow, TableBody, TableSortLabel, TableHead, Table, Tabs, Tab, LinearProgress } from '@mui/material';
5
5
  import '@digital-ai/dot-icons';
6
6
  import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
@@ -33,6 +33,7 @@ const DotTooltip = ({
33
33
  }) => {
34
34
  const rootClasses = useStylesWithRootClass('dot-tooltip', className);
35
35
  return title ? jsx(Tooltip, Object.assign({
36
+ "aria-hidden": open ? false : true,
36
37
  "aria-label": ariaLabel,
37
38
  className: rootClasses,
38
39
  "data-testid": dataTestId,
@@ -70,7 +71,7 @@ const DotIcon = ({
70
71
  }, {
71
72
  children: jsx(StyledIcon, Object.assign({
72
73
  "aria-hidden": "false",
73
- "aria-label": ariaLabel,
74
+ "aria-label": ariaLabel || `${iconId} icon`,
74
75
  classes: {
75
76
  root: rootClasses
76
77
  },
@@ -79,6 +80,7 @@ const DotIcon = ({
79
80
  role: _ariaRole
80
81
  }, {
81
82
  children: jsx("i", {
83
+ "aria-label": ariaLabel || `${iconId} icon}`,
82
84
  className: `icon-${iconId} dot-i`,
83
85
  "data-testid": dataTestId && `${dataTestId}-i`,
84
86
  role: _ariaRole
@@ -170,13 +172,15 @@ const DotAccordion = ({
170
172
  square: _square
171
173
  }, {
172
174
  children: [jsxs(AccordionSummary, Object.assign({
175
+ "aria-label": ariaLabel || summary,
173
176
  classes: {
174
177
  root: summaryClassName
175
178
  },
176
179
  "data-testid": `${dataTestId}-summary`,
177
180
  expandIcon: jsx(DotIcon, {
178
181
  iconId: "chevron-down"
179
- }, void 0)
182
+ }, void 0),
183
+ role: "button"
180
184
  }, {
181
185
  children: [_startIcon, jsx(DotTooltip, Object.assign({
182
186
  "data-testid": "accordion-tooltip",
@@ -1634,11 +1638,22 @@ const AvatarContent = ({
1634
1638
  'data-testid': dataTestId,
1635
1639
  iconId,
1636
1640
  imageSrc,
1641
+ number,
1637
1642
  size,
1638
1643
  text,
1639
1644
  type
1640
1645
  }) => {
1646
+ const parsedNumber = () => {
1647
+ if (!isNumber(number)) return;
1648
+ const numberArray = number.toString().split('');
1649
+ if (numberArray.length > 1) {
1650
+ return `${numberArray[0]}${numberArray[1]}`;
1651
+ } else {
1652
+ return number;
1653
+ }
1654
+ };
1641
1655
  const parsedText = () => {
1656
+ if (!isString$1(text)) return;
1642
1657
  const textArray = text.split(' ');
1643
1658
  if (textArray.length > 1) {
1644
1659
  const firstInitial = textArray[0].slice(0, 1);
@@ -1661,7 +1676,7 @@ const AvatarContent = ({
1661
1676
  return jsx(DotTypography, Object.assign({
1662
1677
  variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize()
1663
1678
  }, {
1664
- children: parsedText()
1679
+ children: parsedNumber() || parsedText()
1665
1680
  }), void 0);
1666
1681
  }
1667
1682
  return null;
@@ -1677,6 +1692,7 @@ const DotAvatar = ({
1677
1692
  iconId,
1678
1693
  imageSrc,
1679
1694
  onClick,
1695
+ number,
1680
1696
  size: _size = 'medium',
1681
1697
  tabIndex: _tabIndex = 0,
1682
1698
  text: _text = alt,
@@ -1696,7 +1712,7 @@ const DotAvatar = ({
1696
1712
  }, {
1697
1713
  children: jsx(StyledAvatar, Object.assign({
1698
1714
  alt: alt,
1699
- "aria-label": ariaLabel,
1715
+ "aria-label": ariaLabel || alt,
1700
1716
  className: _size,
1701
1717
  classes: {
1702
1718
  root: rootClasses,
@@ -1716,6 +1732,7 @@ const DotAvatar = ({
1716
1732
  "data-testid": dataTestId,
1717
1733
  iconId: iconId,
1718
1734
  imageSrc: imageSrc,
1735
+ number: number,
1719
1736
  size: _size,
1720
1737
  text: _text,
1721
1738
  type: _type
@@ -1919,6 +1936,7 @@ const DotProgress = ({
1919
1936
  },
1920
1937
  color: _color,
1921
1938
  "data-testid": dataTestId,
1939
+ role: "progressbar",
1922
1940
  size: _size,
1923
1941
  thickness: _thickness,
1924
1942
  value: value,
@@ -2310,7 +2328,7 @@ const DotIconButton = ({
2310
2328
  title: tooltip
2311
2329
  }, {
2312
2330
  children: jsx(StyledIconButton, Object.assign({
2313
- "aria-label": ariaLabel,
2331
+ "aria-label": ariaLabel || tooltip || `${iconId} icon button`,
2314
2332
  classes: {
2315
2333
  root: rootClasses
2316
2334
  },
@@ -2348,6 +2366,7 @@ const DotDrawerHeader = ({
2348
2366
  role: "heading"
2349
2367
  }, {
2350
2368
  children: [children, variant !== 'permanent' && jsx(DotIconButton, {
2369
+ ariaLabel: "close drawer",
2351
2370
  className: "close-button",
2352
2371
  iconId: "close",
2353
2372
  onClick: onClose
@@ -2379,6 +2398,7 @@ const DotDrawerBody = ({
2379
2398
  role: _ariaRole
2380
2399
  }, {
2381
2400
  children: [children, !headerExists && variant !== 'permanent' && jsx(DotIconButton, {
2401
+ ariaLabel: "close drawer",
2382
2402
  className: "dot-drawer-close-button",
2383
2403
  iconId: "close",
2384
2404
  onClick: onClose
@@ -2447,6 +2467,7 @@ const DotDrawer = ({
2447
2467
  return jsxs(StyledDrawer, Object.assign({
2448
2468
  ModalProps: ModalProps,
2449
2469
  PaperProps: Object.assign(Object.assign({}, PaperProps), {
2470
+ 'aria-label': ariaLabel,
2450
2471
  role: _ariaRole
2451
2472
  }),
2452
2473
  anchor: _anchor,
@@ -2503,7 +2524,8 @@ const DotListDivider = ({
2503
2524
  }) => {
2504
2525
  if (item.text) {
2505
2526
  return jsx(ListSubheader, Object.assign({
2506
- disableSticky: true
2527
+ disableSticky: true,
2528
+ role: "heading"
2507
2529
  }, {
2508
2530
  children: jsx(DotTypography, Object.assign({
2509
2531
  variant: "overline"
@@ -2514,7 +2536,8 @@ const DotListDivider = ({
2514
2536
  }
2515
2537
  return jsx(Divider, {
2516
2538
  "aria-hidden": true,
2517
- "data-testid": `divider-${index}`
2539
+ "data-testid": `divider-${index}`,
2540
+ role: "separator"
2518
2541
  }, void 0);
2519
2542
  };
2520
2543
  const DotList = ({
@@ -2569,9 +2592,11 @@ const DotList = ({
2569
2592
  }
2570
2593
  };
2571
2594
  if (item.child) {
2572
- return jsx(Fragment, {
2595
+ return jsx("div", Object.assign({
2596
+ role: "listitem"
2597
+ }, {
2573
2598
  children: item.child
2574
- }, `item-child-${index}`);
2599
+ }), `item-child-${index}`);
2575
2600
  }
2576
2601
  if (item.divider) {
2577
2602
  return jsx(DotListDivider, {
@@ -2656,7 +2681,7 @@ const DotListItem = ({
2656
2681
  }
2657
2682
  return endIcon;
2658
2683
  };
2659
- return jsxs(Fragment$1, {
2684
+ return jsxs(Fragment, {
2660
2685
  children: [jsx(DotTooltip, Object.assign({
2661
2686
  "data-testid": `${dataTestId}-tooltip`,
2662
2687
  placement: _tooltipPlacement,
@@ -2977,7 +3002,7 @@ const DotInputText = ({
2977
3002
  startAdornment: startAdornmentIcon(),
2978
3003
  endAdornment: endAdornmentIconOrText()
2979
3004
  },
2980
- "aria-label": name,
3005
+ "aria-label": name || label,
2981
3006
  autoComplete: _autoComplete,
2982
3007
  autoFocus: autoFocus,
2983
3008
  classes: {
@@ -3000,6 +3025,8 @@ const DotInputText = ({
3000
3025
  },
3001
3026
  inputRef: inputRef,
3002
3027
  label: persistentLabel ? null : label,
3028
+ maxRows: _multiline ? maxRows : null,
3029
+ minRows: _multiline ? minRows : null,
3003
3030
  multiline: _multiline,
3004
3031
  name: name,
3005
3032
  onBlur: onBlur,
@@ -3009,9 +3036,9 @@ const DotInputText = ({
3009
3036
  onMouseUp: onMouseUp,
3010
3037
  placeholder: placeholder,
3011
3038
  required: _required,
3012
- minRows: _multiline ? minRows : null,
3013
- maxRows: _multiline ? maxRows : null,
3039
+ role: "textbox",
3014
3040
  size: _size,
3041
+ tabIndex: 0,
3015
3042
  type: _type,
3016
3043
  value: inputTextValue,
3017
3044
  variant: "outlined"
@@ -3059,6 +3086,7 @@ function SearchInput({
3059
3086
  iconId: "search"
3060
3087
  }, void 0);
3061
3088
  const clearSearchIcon = jsx(DotIconButton, {
3089
+ ariaLabel: "clear search text",
3062
3090
  iconId: "close",
3063
3091
  onClick: handleClear,
3064
3092
  size: "small",
@@ -3128,7 +3156,7 @@ const DotCopyButton = ({
3128
3156
  "data-testid": dataTestId
3129
3157
  }, {
3130
3158
  children: [!showCopiedIcon && jsx(DotIconButton, {
3131
- ariaLabel: _ariaLabel,
3159
+ ariaLabel: _ariaLabel || 'copy to clipboard',
3132
3160
  "data-testid": `${dataTestId}-button`,
3133
3161
  iconId: "duplicate",
3134
3162
  onClick: copy,
@@ -3532,7 +3560,7 @@ const DotAppSwitcherView = ({
3532
3560
  setRecentAppInstances(recentAppInstancesSetter(latestInstance, _maxRecentInstances));
3533
3561
  }
3534
3562
  }, [recentAppInstances]);
3535
- const recentAppInstancesSection = jsxs(Fragment$1, {
3563
+ const recentAppInstancesSection = jsxs(Fragment, {
3536
3564
  children: [sectionHeaderMenuItem('RECENT', recentAppInstances.length).children, jsx("div", Object.assign({
3537
3565
  className: "product-applications"
3538
3566
  }, {
@@ -3582,7 +3610,7 @@ const DotAppSwitcherView = ({
3582
3610
  }, void 0)
3583
3611
  }), void 0), jsx("div", Object.assign({
3584
3612
  className: "product-applications",
3585
- role: "list"
3613
+ role: "presentation"
3586
3614
  }, {
3587
3615
  children: filteredAppInstances()
3588
3616
  }), void 0)]
@@ -3593,6 +3621,7 @@ const DotAppSwitcherView = ({
3593
3621
  role: "contentinfo"
3594
3622
  }, {
3595
3623
  children: [jsx(DotList, {
3624
+ ariaRole: "presentation",
3596
3625
  items: appTypeMenuItems === null || appTypeMenuItems === void 0 ? void 0 : appTypeMenuItems.map(item => ({
3597
3626
  child: item.children
3598
3627
  })),
@@ -3627,6 +3656,7 @@ const DotAppSwitcherView = ({
3627
3656
  }), void 0)
3628
3657
  };
3629
3658
  return jsx(StyledAppSwitcher, Object.assign({
3659
+ ariaLabel: "App Switcher",
3630
3660
  className: rootClasses,
3631
3661
  ModalProps: {
3632
3662
  style: {
@@ -3844,7 +3874,7 @@ const Brand = ({
3844
3874
  }), void 0), jsx(DotTooltip, Object.assign({
3845
3875
  title: "digital.ai"
3846
3876
  }, {
3847
- children: theme.palette.mode === "light" ? jsx(ForwardRef$1, {
3877
+ children: theme.palette.mode === 'light' ? jsx(ForwardRef$1, {
3848
3878
  className: "company-name"
3849
3879
  }, void 0) : jsx(ForwardRef, {
3850
3880
  className: "company-name"
@@ -3875,7 +3905,7 @@ const Header = ({
3875
3905
  appLogo: appLogo,
3876
3906
  appLogoSmall: appLogoSmall,
3877
3907
  smallOnly: !isOpen
3878
- }, void 0) : jsxs(Fragment$1, {
3908
+ }, void 0) : jsxs(Fragment, {
3879
3909
  children: [jsx(DotAvatar, Object.assign({}, titleAvatarProps), void 0), isOpen && jsx(DotTypography, Object.assign({
3880
3910
  variant: "h4"
3881
3911
  }, {
@@ -3950,6 +3980,7 @@ const DotSidebar = ({
3950
3980
  className: "go-back"
3951
3981
  }, {
3952
3982
  children: [jsx(DotIconButton, {
3983
+ ariaLabel: "go back",
3953
3984
  className: "go-back-button",
3954
3985
  "data-testid": "back-button",
3955
3986
  iconId: backItem.iconId || 'back',
@@ -4138,7 +4169,7 @@ const DotAppToolbar = ({
4138
4169
  borderBottomColor: borderColor
4139
4170
  }
4140
4171
  }, {
4141
- children: [showMainMenu && jsxs(Fragment$1, {
4172
+ children: [showMainMenu && jsxs(Fragment, {
4142
4173
  children: [jsx("div", Object.assign({
4143
4174
  className: "dot-main-menu-btn"
4144
4175
  }, {
@@ -4325,7 +4356,9 @@ const getChipsFromAutocomplete = ({
4325
4356
  isReadOnly: _isReadOnly = false,
4326
4357
  values
4327
4358
  }) => {
4359
+ if (values === undefined) return;
4328
4360
  return values.map((option, index) => {
4361
+ if (!option) return null;
4329
4362
  const hasStringValue = isString$1(option);
4330
4363
  const optionAsString = option;
4331
4364
  const optionAsObject = option;
@@ -4380,7 +4413,7 @@ const DotAutoComplete = ({
4380
4413
  onInputChange,
4381
4414
  onOpen,
4382
4415
  open,
4383
- options,
4416
+ options: _options = [],
4384
4417
  persistentLabel,
4385
4418
  placeholder,
4386
4419
  readOnly: _readOnly = false,
@@ -4392,23 +4425,21 @@ const DotAutoComplete = ({
4392
4425
  warning: _warning = false
4393
4426
  }) => {
4394
4427
  const [showPlaceholder, setShowPlaceholder] = useState(!value && !defaultValue);
4395
- const {
4396
- iconId: actionIconId = 'add',
4397
- text: actionItemText,
4398
- onClick: onActionItemClick,
4399
- preventDuplicateInsertion
4400
- } = actionItem || {};
4401
- const isActionItemDefined = onActionItemClick !== undefined;
4402
- let highlightedOption = null;
4403
4428
  const [isOpened, setIsOpened] = useState(false);
4404
4429
  const [inputText, setInputText] = useState('');
4430
+ // Used for focus management while popper is opened
4431
+ const actionItemRef = useRef();
4432
+ const onActionItemClick = actionItem === null || actionItem === void 0 ? void 0 : actionItem.onClick;
4433
+ const allowActionButtonClick = !_freesolo && onActionItemClick;
4434
+ const isActionItemDefined = onActionItemClick !== undefined;
4435
+ const popperOpen = !_readOnly && (open || isOpened);
4436
+ const preventDuplicateInsertion = actionItem === null || actionItem === void 0 ? void 0 : actionItem.preventDuplicateInsertion;
4405
4437
  const textFieldWarningClassName = !_error && _warning && warningClassName;
4406
4438
  const rootClasses = useStylesWithRootClass(rootClassName$I, _size === 'medium' && inputMediumClassName, className);
4407
- const textFieldRootClasses = useStylesWithRootClass(rootClassName$13, className, _readOnly ? 'read-only' : '', textFieldWarningClassName);
4439
+ const textFieldRootClasses = useStylesWithRootClass(rootClassName$13, _readOnly && 'read-only', textFieldWarningClassName);
4408
4440
  const inputRootClasses = useStylesWithRootClass(inputRootClassName, !_dense && inputMediumClassName);
4441
+ let highlightedOption = null;
4409
4442
  let textFieldInput;
4410
- // Used for focus management while popper is opened
4411
- const actionItemRef = useRef();
4412
4443
  const textFieldRef = element => {
4413
4444
  // We want to use this element in callback function
4414
4445
  textFieldInput = element;
@@ -4432,11 +4463,11 @@ const DotAutoComplete = ({
4432
4463
  setShowPlaceholder(parseAutoCompleteValue(val) === '');
4433
4464
  };
4434
4465
  const sortOptions = () => {
4435
- return _group ? options.sort((a, b) => {
4466
+ return _group ? _options.sort((a, b) => {
4436
4467
  const aGroup = a.group ? a.group : '';
4437
4468
  const bGroup = b.group ? b.group : '';
4438
4469
  return -bGroup.localeCompare(aGroup);
4439
- }) : options;
4470
+ }) : _options;
4440
4471
  };
4441
4472
  const handleBlur = event => {
4442
4473
  event.relatedTarget !== actionItemRef.current && setIsOpened(false);
@@ -4456,16 +4487,15 @@ const DotAutoComplete = ({
4456
4487
  }), void 0);
4457
4488
  // Disable action if customer explicitly enabled duplicate
4458
4489
  // item insertion and input text is found inside the 'options'
4459
- const isActionDisabled = preventDuplicateInsertion && checkIfDuplicateItem(inputText, options);
4490
+ const isActionDisabled = preventDuplicateInsertion && checkIfDuplicateItem(inputText, _options);
4460
4491
  // Display warning icon if disabled
4461
- const actionStartIconId = isActionDisabled ? 'warning-solid' : actionIconId;
4492
+ const actionStartIconId = isActionDisabled ? 'warning-solid' : (actionItem === null || actionItem === void 0 ? void 0 : actionItem.iconId) || 'add';
4462
4493
  const defaultText = inputText ? `Add "${inputText}"` : DEFAULT_ACTION_ITEM_TEXT;
4463
- const nonDisabledText = actionItemText ? actionItemText : defaultText;
4494
+ const nonDisabledText = (actionItem === null || actionItem === void 0 ? void 0 : actionItem.text) || defaultText;
4464
4495
  const itemText = isActionDisabled ? 'Value already exists' : nonDisabledText;
4465
- // If simple text, we need to give it a class so that
4466
- // styling for displaying ellipsis on a long text
4467
- // can be applied. If it is custom node coming from the
4468
- // consumer, then leave it as it is.
4496
+ // If simple text, we need to give it a class so that styling for
4497
+ // displaying ellipsis on a long text can be applied. If it is
4498
+ // custom node coming from the consumer, then leave it as it is.
4469
4499
  const itemTextNode = isString$1(itemText) ? jsx("span", Object.assign({
4470
4500
  className: "dot-action-item-text"
4471
4501
  }, {
@@ -4531,10 +4561,11 @@ const DotAutoComplete = ({
4531
4561
  }) || undefined;
4532
4562
  // Create callback when action item click event handler is defined,
4533
4563
  // free-solo mode is NOT set and 'Enter' key has been pressed
4534
- const handleKeyDown = !_freesolo && onActionItemClick && (event => {
4564
+ const handleKeyDown = allowActionButtonClick && (event => {
4535
4565
  if (event.key === 'Enter') {
4566
+ const isDuplicate = checkIfDuplicateItem(inputText, _options);
4536
4567
  // Do NOT execute callback if duplicate item or have selected an option from the dropdown
4537
- if (preventDuplicateInsertion && checkIfDuplicateItem(inputText, options) || highlightedOption) return;
4568
+ if (preventDuplicateInsertion && isDuplicate || highlightedOption) return;
4538
4569
  onActionButtonClick();
4539
4570
  }
4540
4571
  }) || undefined;
@@ -4545,7 +4576,7 @@ const DotAutoComplete = ({
4545
4576
  values
4546
4577
  });
4547
4578
  const handleTagsRender = () => {
4548
- if (!_multiple) return;
4579
+ if (!_multiple || isString$1(defaultValue)) return;
4549
4580
  return renderTags || handleRenderChips;
4550
4581
  };
4551
4582
  const renderErrorOrWarningIcon = () => {
@@ -4567,7 +4598,7 @@ const DotAutoComplete = ({
4567
4598
  children: icon
4568
4599
  }), void 0) : icon;
4569
4600
  };
4570
- return jsxs(Fragment$1, {
4601
+ return jsxs(Fragment, {
4571
4602
  children: [loading && jsx(DotProgress, {
4572
4603
  color: "inherit",
4573
4604
  size: 20
@@ -4582,7 +4613,7 @@ const DotAutoComplete = ({
4582
4613
  inputRoot: inputRootClasses
4583
4614
  },
4584
4615
  "data-testid": dataTestId,
4585
- defaultValue: defaultValue,
4616
+ defaultValue: _multiple && isString$1(defaultValue) ? [defaultValue] : defaultValue,
4586
4617
  disabled: _disabled,
4587
4618
  filterOptions: filterOptions,
4588
4619
  filterSelectedOptions: _filterSelectedOptions,
@@ -4610,7 +4641,7 @@ const DotAutoComplete = ({
4610
4641
  onKeyDown: handleKeyDown,
4611
4642
  // We want to close the popper each time focus is shifted from the autocomplete
4612
4643
  onOpen: handleOpen,
4613
- open: !_readOnly && (open || isOpened),
4644
+ open: popperOpen,
4614
4645
  options: sortOptions(),
4615
4646
  renderInput: params => {
4616
4647
  // InputBaseComponentProps is used here because that is the base
@@ -4628,7 +4659,7 @@ const DotAutoComplete = ({
4628
4659
  // at least pick up any styling that is used there. Should additional
4629
4660
  // functionality be added to DotInputText we will have to make a
4630
4661
  // decision about if/how to expose it here.
4631
- jsxs(Fragment$1, {
4662
+ jsxs(Fragment, {
4632
4663
  children: [persistentLabel && jsx(DotInputLabel, Object.assign({
4633
4664
  "data-testid": dataTestId && `${dataTestId}-persistent-label`,
4634
4665
  id: inputId
@@ -4670,7 +4701,7 @@ const DotAutoComplete = ({
4670
4701
  (_a = actionItemRef === null || actionItemRef === void 0 ? void 0 : actionItemRef.current) === null || _a === void 0 ? void 0 : _a.focus();
4671
4702
  }
4672
4703
  },
4673
- placeholder: showPlaceholder ? placeholder : undefined,
4704
+ placeholder: showPlaceholder && placeholder,
4674
4705
  required: _required,
4675
4706
  size: _size,
4676
4707
  variant: "outlined"
@@ -4728,7 +4759,7 @@ const StyledBreadcrumbs = styled(Breadcrumbs).withConfig({
4728
4759
  componentId: "sc-7cg374-1"
4729
4760
  })(["", ""], ({
4730
4761
  theme
4731
- }) => 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$F, theme.palette.grey[300], theme.spacing(0.5, 2), theme.palette.grey[700]));
4762
+ }) => 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;i{line-height:20px;}}.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$F, theme.palette.grey[300], theme.spacing(0.5, 2), theme.palette.grey[700]));
4732
4763
 
4733
4764
  const compareWidth = (parentEl, childEl) => {
4734
4765
  return parentEl.getBoundingClientRect().width < childEl.getBoundingClientRect().width;
@@ -5092,7 +5123,7 @@ const DotButtonToggle = ({
5092
5123
  key,
5093
5124
  value: optionValue
5094
5125
  };
5095
- const children = jsxs(Fragment$1, {
5126
+ const children = jsxs(Fragment, {
5096
5127
  children: [optionIconId && jsx(DotIcon, {
5097
5128
  className: "dot-toggle-icon",
5098
5129
  iconId: optionIconId
@@ -5108,6 +5139,8 @@ const DotButtonToggle = ({
5108
5139
  }, {
5109
5140
  children: children
5110
5141
  }), void 0) : jsx(ToggleButton, Object.assign({}, commonProps, {
5142
+ role: "button"
5143
+ }, {
5111
5144
  children: children
5112
5145
  }), void 0);
5113
5146
  };
@@ -5138,7 +5171,9 @@ const TooltipToggleButton = /*#__PURE__*/forwardRef((_a, ref) => {
5138
5171
  return jsx(DotTooltip, Object.assign({}, CustomTooltipProps, {
5139
5172
  children: jsx(ToggleButton, Object.assign({
5140
5173
  ref: ref
5141
- }, props), void 0)
5174
+ }, props, {
5175
+ role: "button"
5176
+ }), void 0)
5142
5177
  }), void 0);
5143
5178
  });
5144
5179
 
@@ -5295,6 +5330,7 @@ function DotCheckbox({
5295
5330
  onChange: handleChange,
5296
5331
  required: required,
5297
5332
  size: size,
5333
+ tabIndex: 0,
5298
5334
  value: value
5299
5335
  }, void 0);
5300
5336
  return jsx(StyledFormControlLabel, {
@@ -5538,6 +5574,7 @@ const DotDialog = ({
5538
5574
  className: "dot-dialog-title"
5539
5575
  }, {
5540
5576
  children: [renderNodeOrTypography(title, 'h2'), closeIconVisible && jsx(DotIconButton, {
5577
+ ariaLabel: "close dialog",
5541
5578
  iconId: "close",
5542
5579
  onClick: handleCancel,
5543
5580
  size: "small"
@@ -6279,7 +6316,7 @@ const StyledRadioButton = styled(Radio).withConfig({
6279
6316
 
6280
6317
  function DotRadioButton({
6281
6318
  ariaLabel,
6282
- checked,
6319
+ checked = false,
6283
6320
  className,
6284
6321
  'data-testid': dataTestId,
6285
6322
  disabled,
@@ -6297,8 +6334,10 @@ function DotRadioButton({
6297
6334
  const handleChange = event => {
6298
6335
  onChange && onChange(event, event.target.value);
6299
6336
  };
6337
+ // a11y: role doesn't need to be specified because it is done so automatically by the MUI component
6300
6338
  const radioControl = jsx(StyledRadioButton, {
6301
- "aria-label": ariaLabel,
6339
+ "aria-checked": checked,
6340
+ "aria-label": ariaLabel || label,
6302
6341
  checked: checked,
6303
6342
  classes: {
6304
6343
  root: rootClassName$r
@@ -6308,15 +6347,16 @@ function DotRadioButton({
6308
6347
  disabled: disabled,
6309
6348
  id: id,
6310
6349
  inputRef: inputRef,
6311
- name: name,
6350
+ name: name || value,
6312
6351
  onChange: handleChange,
6313
6352
  required: required,
6314
- size: size
6353
+ size: size,
6354
+ tabIndex: 0
6315
6355
  }, void 0);
6316
6356
  return jsx(StyledFormControlLabel, {
6317
6357
  className: rootClasses,
6318
6358
  control: radioControl,
6319
- "aria-label": value,
6359
+ "aria-label": ariaLabel || label,
6320
6360
  label: label || radioControl,
6321
6361
  labelPlacement: labelPlacement,
6322
6362
  value: value
@@ -6398,7 +6438,7 @@ const DotRadioGroup = ({
6398
6438
  children: endIcon
6399
6439
  }), void 0)]
6400
6440
  }), void 0), jsx(StyledRadioGroup, Object.assign({
6401
- "aria-label": ariaLabel,
6441
+ "aria-label": ariaLabel || groupLabel,
6402
6442
  className: groupClassName,
6403
6443
  "data-testid": dataTestId,
6404
6444
  defaultValue: defaultValue,
@@ -6456,7 +6496,8 @@ const DotSwitch = ({
6456
6496
  },
6457
6497
  inputRef: inputRef,
6458
6498
  onChange: handleChange,
6459
- size: _size
6499
+ size: _size,
6500
+ tabIndex: 0
6460
6501
  }, void 0);
6461
6502
  return jsx(StyledFormControlLabel, {
6462
6503
  className: rootClassName$C,
@@ -6998,7 +7039,7 @@ const DotDynamicForm = ({
6998
7039
  }
6999
7040
  case 'custom-element':
7000
7041
  {
7001
- return jsx(Fragment, {
7042
+ return jsx(Fragment$1, {
7002
7043
  children: customElement
7003
7044
  }, elementIndex);
7004
7045
  }
@@ -7033,6 +7074,7 @@ const DotDynamicForm = ({
7033
7074
  const rootClassName$p = 'dot-inline-edit';
7034
7075
  const editModeClassName = 'dot-edit-mode';
7035
7076
  const viewModeClassName = 'dot-view-mode';
7077
+ const placeholderClassName = 'dot-placeholder';
7036
7078
  const readOnlyClassName = 'dot-read-only';
7037
7079
  const editActionsClassName = 'dot-edit-actions';
7038
7080
  const editTextFieldClassName = 'dot-edit-text-field';
@@ -7042,7 +7084,7 @@ const StyledInlineEdit = styled.div.withConfig({
7042
7084
  })(["", ""], ({
7043
7085
  theme,
7044
7086
  fullWidth
7045
- }) => css(["&.", "{display:", ";align-items:center;color:", ";min-width:", ";&:not(.", "):focus-visible{border-radius:", ";background-color:", ";cursor:pointer;outline:0;.dot-edit-icon{display:block;}}.", "{display:flex;width:100%;position:relative;.dot-edit-icon{height:100%;position:absolute;right:0;width:40px;background-color:", ";border-radius:", ";display:none;.dot-i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}}&:not(.", "):hover{border-radius:", ";background-color:", ";cursor:pointer;.dot-edit-icon{display:block;}}.dot-view-mode-typography{padding:", ";margin-bottom:0;}}.dot-empty-value fieldset{border-color:", ";}.dot-adornment-error{color:", ";}.MuiInputBase-input{height:auto;}.MuiInputBase-root{margin-bottom:", ";}", " .", " .dot-input{padding-left:", ";}.MuiOutlinedInput-input:focus{cursor:auto;}.dot-counter-adornment{.dot-counter-max-length{color:", ";}.dot-counter-length,.dot-counter-max-length{&.dot-counter-limit{color:", ";}&:hover{background:", ";}.editing-actions{display:flex;justify-content:flex-end;margin-top:", ";}.dot-icon-btn{background:", ";border:1px solid ", ";color:", ";margin-left:", ";padding:", ";}}}.dot-read-only-adornment{display:none;}.", "{display:flex;align-items:center;margin:", ";.dot-button{padding:", ";margin-top:", ";margin-bottom:", ";}}}"], rootClassName$p, fullWidth ? 'flex' : 'inline-flex', theme.palette.grey[700], theme.spacing(32), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, viewModeClassName, theme.palette.layer.n50, theme.spacing(0, 0.5, 0.5, 0), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, theme.spacing(1.3125, 1), theme.palette.error[500], theme.palette.error[500], theme.spacing(0), ({
7087
+ }) => css(["&.", "{display:", ";align-items:center;color:", ";min-width:", ";&:not(.", "):focus-visible{border-radius:", ";background-color:", ";cursor:pointer;outline:0;.dot-edit-icon{display:block;}}.", "{display:flex;width:100%;position:relative;.dot-edit-icon{height:100%;position:absolute;right:0;width:40px;background-color:", ";border-radius:", ";display:none;.dot-i{margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}}&:not(.", "):hover{border-radius:", ";background-color:", ";cursor:pointer;.dot-edit-icon{display:block;}}.dot-view-mode-typography{padding:", ";margin-bottom:0;&.", "{color:", ";}}}.dot-empty-value fieldset{border-color:", ";}.dot-adornment-error{color:", ";}.MuiInputBase-input{height:auto;}.MuiInputBase-root{margin-bottom:", ";}", " .", " .dot-input{padding-left:", ";}.MuiOutlinedInput-input:focus{cursor:auto;}.dot-counter-adornment{.dot-counter-max-length{color:", ";}.dot-counter-length,.dot-counter-max-length{&.dot-counter-limit{color:", ";}&:hover{background:", ";}.editing-actions{display:flex;justify-content:flex-end;margin-top:", ";}.dot-icon-btn{background:", ";border:1px solid ", ";color:", ";margin-left:", ";padding:", ";}}}.dot-read-only-adornment{display:none;}.", "{display:flex;align-items:center;margin:", ";.dot-button{padding:", ";margin-top:", ";margin-bottom:", ";}}}"], rootClassName$p, fullWidth ? 'flex' : 'inline-flex', theme.palette.grey[700], theme.spacing(32), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, viewModeClassName, theme.palette.layer.n50, theme.spacing(0, 0.5, 0.5, 0), readOnlyClassName, theme.spacing(0.5), theme.palette.layer.n50, theme.spacing(1.3125, 1), placeholderClassName, theme.palette.grey[200], theme.palette.error[500], theme.palette.error[500], theme.spacing(0), ({
7046
7088
  typography
7047
7089
  }) => typography && `
7048
7090
  .MuiInputBase-root {
@@ -7141,6 +7183,7 @@ const DotInlineEdit = ({
7141
7183
  name,
7142
7184
  onChange,
7143
7185
  onEditStateChange,
7186
+ placeholder,
7144
7187
  readOnly,
7145
7188
  selectTextOnEdit,
7146
7189
  startEditable: _startEditable = false,
@@ -7241,14 +7284,16 @@ const DotInlineEdit = ({
7241
7284
  }
7242
7285
  };
7243
7286
  const renderViewMode = () => {
7244
- const viewModeClasses = useStylesWithRootClass(viewModeClassName, readOnly ? readOnlyClassName : '');
7245
- const viewModeChildren = jsxs(Fragment$1, {
7287
+ const bindingsValue = bindings ? applyBindings(bindings, inputValue) : null;
7288
+ const typographyClasses = useStylesWithRootClass('dot-view-mode-typography', !inputValue && placeholderClassName);
7289
+ const viewModeClasses = useStylesWithRootClass(viewModeClassName, readOnly && readOnlyClassName);
7290
+ const viewModeChildren = jsxs(Fragment, {
7246
7291
  children: [jsx(DotTypography, Object.assign({
7247
- className: "dot-view-mode-typography",
7292
+ className: typographyClasses,
7248
7293
  "data-testid": dataTestId && `${dataTestId}-view-mode-typography`,
7249
7294
  variant: _typography
7250
7295
  }, {
7251
- children: bindings ? applyBindings(bindings, inputValue) : inputValue
7296
+ children: bindingsValue || inputValue || placeholder
7252
7297
  }), void 0), jsx(DotIcon, {
7253
7298
  className: "dot-edit-icon",
7254
7299
  "data-testid": dataTestId && `${dataTestId}-edit-icon`,
@@ -7272,7 +7317,7 @@ const DotInlineEdit = ({
7272
7317
  };
7273
7318
  const renderEditMode = () => {
7274
7319
  const textFieldClasses = useStylesWithRootClass(editTextFieldClassName, isSaveDisabled ? 'dot-empty-value' : '');
7275
- return jsxs(Fragment$1, {
7320
+ return jsxs(Fragment, {
7276
7321
  children: [jsx(TextField, {
7277
7322
  InputProps: {
7278
7323
  endAdornment: renderEndAdornment()
@@ -7711,7 +7756,7 @@ const DotSplitButton = ({
7711
7756
  setOpen(false);
7712
7757
  onOptionClick(itemKey);
7713
7758
  };
7714
- return jsxs(Fragment$1, {
7759
+ return jsxs(Fragment, {
7715
7760
  children: [jsxs(StyledSplitButtonGroup, Object.assign({
7716
7761
  "aria-label": ariaLabel,
7717
7762
  className: rootClasses,
@@ -7942,7 +7987,7 @@ const DotStepper = ({
7942
7987
  span: 6
7943
7988
  }
7944
7989
  }, {
7945
- children: jsxs(Fragment$1, {
7990
+ children: jsxs(Fragment, {
7946
7991
  children: [displayCancelButton && jsx(DotButton, Object.assign({
7947
7992
  className: "cancel-stepper",
7948
7993
  onClick: onCancel,
@@ -8184,6 +8229,7 @@ const DotBodyCell = ({
8184
8229
  'data-testid': dataTestId,
8185
8230
  noWrap,
8186
8231
  onActionMenuTrigger,
8232
+ style,
8187
8233
  typography,
8188
8234
  value
8189
8235
  }) => {
@@ -8248,7 +8294,8 @@ const DotBodyCell = ({
8248
8294
  root: rootClasses
8249
8295
  },
8250
8296
  colSpan: colspan,
8251
- "data-testid": dataTestId
8297
+ "data-testid": dataTestId,
8298
+ style: style
8252
8299
  }, {
8253
8300
  children: getTableCellValue()
8254
8301
  }), void 0);
@@ -8338,6 +8385,18 @@ const DotTableRow = ({
8338
8385
  rowId: id
8339
8386
  }, void 0);
8340
8387
  };
8388
+ const parseMaxWidth = width => {
8389
+ if (!width) {
8390
+ return;
8391
+ }
8392
+ // if contains % then convert to % of viewport
8393
+ if (width.includes('%')) {
8394
+ const percent = Number.parseFloat(width) / 100;
8395
+ return `calc(100vw * ${percent})`;
8396
+ }
8397
+ // if contains 'px' or 'vw' then pass as is
8398
+ return `${width}`;
8399
+ };
8341
8400
  return jsxs(StyledTableRowStyles, Object.assign({
8342
8401
  classes: {
8343
8402
  root: rootClasses
@@ -8353,6 +8412,9 @@ const DotTableRow = ({
8353
8412
  className: rowData.className && `${rowData.className}-${column.id}`,
8354
8413
  noWrap: column.truncate,
8355
8414
  onActionMenuTrigger: (menuRef, menuItem) => onActionMenuTrigger(menuRef, menuItem),
8415
+ style: {
8416
+ maxWidth: parseMaxWidth(column.width)
8417
+ },
8356
8418
  value: rowData[column.id]
8357
8419
  }, index);
8358
8420
  })]
@@ -8426,7 +8488,7 @@ const DotTableBody = ({
8426
8488
  }, index);
8427
8489
  });
8428
8490
  };
8429
- return jsxs(Fragment$1, {
8491
+ return jsxs(Fragment, {
8430
8492
  children: [jsx(StyledTableBody, Object.assign({
8431
8493
  classes: {
8432
8494
  root: rootClassName$c
@@ -8655,7 +8717,7 @@ const DotTableSelectionToolbar = ({
8655
8717
  variant: "h3"
8656
8718
  }, {
8657
8719
  children: [selectedRowsNumber, " selected"]
8658
- }), void 0), onClearAll && jsxs(Fragment$1, {
8720
+ }), void 0), onClearAll && jsxs(Fragment, {
8659
8721
  children: [jsx(DotTypography, Object.assign({
8660
8722
  className: "dot-selected-rows-divider"
8661
8723
  }, {
@@ -8987,12 +9049,13 @@ const DotTableActions = ({
8987
9049
  onClick: action.onClick
8988
9050
  }, `action-${index}`));
8989
9051
  };
8990
- return jsxs(Fragment$1, {
9052
+ return jsxs(Fragment, {
8991
9053
  children: [jsxs(TableActionsContainer, Object.assign({
8992
9054
  className: rootClassName$8,
8993
9055
  ref: wrapperRef
8994
9056
  }, {
8995
9057
  children: [!showMenu && renderTableActions(), (showMenu || actions.length > 2) && jsx(DotIconButton, {
9058
+ ariaLabel: "more options",
8996
9059
  className: "dot-table-action-icon",
8997
9060
  iconId: "options",
8998
9061
  iconSize: "small",
@@ -9155,6 +9218,7 @@ const DotFileListItem = ({
9155
9218
  children: errorText
9156
9219
  }), void 0)]
9157
9220
  }), void 0), jsx(DotIconButton, {
9221
+ ariaLabel: "delete file",
9158
9222
  className: `${rootClassName$5}-end-icon`,
9159
9223
  "data-testid": dataTestId && `${dataTestId}-end-icon`,
9160
9224
  disabled: disableDelete,
@@ -9181,7 +9245,7 @@ const renderSelectFilesButton = (isUploadDisabled, onButtonClick) => jsx(DotButt
9181
9245
  }, {
9182
9246
  children: "Select file(s)"
9183
9247
  }), void 0);
9184
- const renderActiveDragArea = () => jsxs(Fragment$1, {
9248
+ const renderActiveDragArea = () => jsxs(Fragment, {
9185
9249
  children: [jsx(DotIcon, {
9186
9250
  iconId: "upload-file"
9187
9251
  }, void 0), jsx(DotTypography, Object.assign({
@@ -9190,7 +9254,7 @@ const renderActiveDragArea = () => jsxs(Fragment$1, {
9190
9254
  children: "Drop the file(s) here ..."
9191
9255
  }), void 0)]
9192
9256
  }, void 0);
9193
- const renderDragAndDropArea = (isUploadDisabled, onSelectButtonClick) => jsxs(Fragment$1, {
9257
+ const renderDragAndDropArea = (isUploadDisabled, onSelectButtonClick) => jsxs(Fragment, {
9194
9258
  children: [jsx(DotIcon, {
9195
9259
  iconId: "upload-file"
9196
9260
  }, void 0), jsxs(DotTypography, Object.assign({
@@ -9348,7 +9412,7 @@ const DotFileUpload = ({
9348
9412
  isUploadDisabled,
9349
9413
  open
9350
9414
  })]
9351
- }), void 0), maxSize && renderMaxSizeMessage(maxSize), maxFiles && renderMaxFilesMessage(maxFiles, maxFilesClasses), !hideFilesList && jsx(DotList, {
9415
+ }), void 0), !!maxSize && renderMaxSizeMessage(maxSize), !!maxFiles && renderMaxFilesMessage(maxFiles, maxFilesClasses), !hideFilesList || jsx(DotList, {
9352
9416
  "data-testid": dataTestId && `${dataTestId}-file-list`,
9353
9417
  items: uploadedFilesList,
9354
9418
  width: "100%"
@@ -9746,12 +9810,13 @@ const DotDatePicker = ({
9746
9810
  open: open,
9747
9811
  showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,
9748
9812
  slots: {
9749
- openPickerButton: pickerButtonProps => jsxs(Fragment$1, {
9813
+ openPickerButton: pickerButtonProps => jsxs(Fragment, {
9750
9814
  children: [error && jsx(DotIcon, {
9751
9815
  className: "dot-error-icon",
9752
9816
  "data-testid": "dot-error-icon",
9753
9817
  iconId: "error-solid"
9754
9818
  }, void 0), jsx(DotIconButton, {
9819
+ ariaLabel: "Open date picker",
9755
9820
  "data-testid": "date-picker-open-btn",
9756
9821
  iconId: "calendar",
9757
9822
  onClick: pickerButtonProps.onClick,
@@ -10176,12 +10241,13 @@ const DotTimePicker = ({
10176
10241
  error,
10177
10242
  focused: isComponentReadOnly ? false : undefined,
10178
10243
  InputProps: {
10179
- endAdornment: jsxs(Fragment$1, {
10244
+ endAdornment: jsxs(Fragment, {
10180
10245
  children: [error && jsx(DotIcon, {
10181
10246
  className: "dot-error-icon",
10182
10247
  "data-testid": dataTestId && `${dataTestId}-input-error-icon`,
10183
10248
  iconId: "error-solid"
10184
10249
  }, void 0), !_disableOpenPicker && !isComponentReadOnly && !disabled && jsx(DotIconButton, {
10250
+ ariaLabel: "Open time picker",
10185
10251
  "data-testid": dataTestId && `${dataTestId}-open-btn`,
10186
10252
  iconId: "pending-clock",
10187
10253
  onClick: _event => handleTimePickerButtonClick(),