@digital-ai/dot-components 5.12.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
3
  import React__default, { useEffect, useState, useRef, createContext, useMemo, useContext, forwardRef, useCallback, createElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
4
- import { Typography, Fade, StyledEngineProvider, Tooltip, InputAdornment, InputLabel, TextField, Icon, Accordion, AccordionSummary, AccordionDetails, AccordionActions, Toolbar, Alert, Avatar, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Chip, Autocomplete, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, Snackbar, RadioGroup, Radio, Switch, Skeleton, ButtonGroup, Stepper, Step, StepLabel, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, Fab, LinearProgress, Slide, Stack, Select } from '@mui/material';
4
+ import { Typography, Fade, StyledEngineProvider, Tooltip, InputAdornment, InputLabel, TextField, Icon, Accordion, AccordionSummary, AccordionDetails, AccordionActions, Toolbar, Alert, Avatar, AvatarGroup, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Chip, Autocomplete, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, Snackbar, RadioGroup, Radio, Switch, Skeleton, ButtonGroup, Stepper, Step, StepLabel, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, Fab, LinearProgress, Slide, Stack, Select } from '@mui/material';
5
5
  import styled, { keyframes, css, createGlobalStyle, ThemeProvider as ThemeProvider$1 } from 'styled-components';
6
6
  import { createTheme, ThemeProvider, useTheme } from '@mui/material/styles';
7
7
  import '@digital-ai/dot-icons';
@@ -162,7 +162,6 @@ const DotTypography = ({
162
162
  children,
163
163
  component,
164
164
  hasShimmer,
165
- noMarginBottom,
166
165
  noWrap,
167
166
  variant
168
167
  }) => {
@@ -171,9 +170,6 @@ const DotTypography = ({
171
170
  if (ariaRole === 'heading' && !ariaLevel) {
172
171
  console.warn('please include ariaLevel when using ariaRole="heading"');
173
172
  }
174
- if (noMarginBottom) {
175
- console.warn('DEPRECATED: `noMarginBottom` on `DotTypography` is no longer included');
176
- }
177
173
  }, []);
178
174
  return jsx(StyledTypography, {
179
175
  "aria-label": ariaLabel,
@@ -185,9 +181,6 @@ const DotTypography = ({
185
181
  "data-testid": dataTestId,
186
182
  noWrap: noWrap,
187
183
  role: ariaRole,
188
- style: {
189
- marginBottom: noMarginBottom ? 0 : undefined
190
- },
191
184
  variant: variant,
192
185
  children: children
193
186
  });
@@ -2802,6 +2795,54 @@ const StyledAvatar = styled(Avatar)`
2802
2795
  `}
2803
2796
  `;
2804
2797
 
2798
+ const rootClassName$1n = 'dot-avatar-group';
2799
+ const StyledAvatarGroup = styled(AvatarGroup)`
2800
+ ${() => css`
2801
+ &.${rootClassName$1n} {
2802
+ justify-content: flex-end;
2803
+
2804
+ .MuiAvatar-root {
2805
+ border: none;
2806
+ display: flex;
2807
+ }
2808
+ }
2809
+ `}
2810
+ `;
2811
+ const StyledDotTooltip = styled(DotTooltip)`
2812
+ ${({
2813
+ theme
2814
+ }) => css`
2815
+ &.avatar-with-tooltip {
2816
+ margin-left: -${theme.spacing(1)};
2817
+ }
2818
+ `}
2819
+ `;
2820
+ const StyledDotTypography = styled(DotTypography)`
2821
+ ${({
2822
+ theme
2823
+ }) => css`
2824
+ {
2825
+ color: inherit;
2826
+ &.xs {
2827
+ padding: ${theme.spacing(0.5)};
2828
+ }
2829
+ &.small {
2830
+ padding: ${theme.spacing(1)};
2831
+ }
2832
+ &.medium, &.large {
2833
+ padding: ${theme.spacing(1.5)};
2834
+ }
2835
+ `}
2836
+ `;
2837
+ const StyledExtraAvatarSpan = styled.span`
2838
+ display: flex;
2839
+ align-items: center;
2840
+ justify-content: center;
2841
+ width: 100%;
2842
+ height: 100%;
2843
+ pointer-events: auto;
2844
+ `;
2845
+
2805
2846
  const AvatarContent = ({
2806
2847
  ai,
2807
2848
  'data-testid': dataTestId,
@@ -2869,6 +2910,7 @@ const DotAvatar = ({
2869
2910
  text = alt,
2870
2911
  type = 'image',
2871
2912
  tooltip,
2913
+ tooltipClassname,
2872
2914
  variant = 'circular',
2873
2915
  style
2874
2916
  }) => {
@@ -2879,9 +2921,10 @@ const DotAvatar = ({
2879
2921
  if (text && text !== alt) return getAvatarColorForInputText(text);
2880
2922
  return 'default';
2881
2923
  };
2882
- return jsx(DotTooltip, {
2924
+ return jsx(StyledDotTooltip, {
2883
2925
  disableInteractive: disableInteractive,
2884
2926
  childrenDisplayStyle: "inline-block",
2927
+ className: tooltipClassname,
2885
2928
  title: tooltip,
2886
2929
  children: jsx(StyledAvatar, {
2887
2930
  alt: alt,
@@ -2914,12 +2957,12 @@ const DotAvatar = ({
2914
2957
  });
2915
2958
  };
2916
2959
 
2917
- const rootClassName$1n = 'dot-button';
2960
+ const rootClassName$1m = 'dot-button';
2918
2961
  const StyledButton = styled(Button)`
2919
2962
  ${({
2920
2963
  theme
2921
2964
  }) => css`
2922
- &.${rootClassName$1n} {
2965
+ &.${rootClassName$1m} {
2923
2966
  background-color: ${theme.palette.figma.primary.normal};
2924
2967
  margin: ${theme.spacing(0.5)};
2925
2968
  padding: ${theme.spacing(0.75, 2)};
@@ -3072,7 +3115,7 @@ const DotButton = forwardRef(({
3072
3115
  autoFocus = false,
3073
3116
  children,
3074
3117
  className,
3075
- 'data-pendoid': dataPendoId = rootClassName$1n,
3118
+ 'data-pendoid': dataPendoId = rootClassName$1m,
3076
3119
  'data-testid': dataTestId,
3077
3120
  disabled = false,
3078
3121
  disableInteractive,
@@ -3090,7 +3133,7 @@ const DotButton = forwardRef(({
3090
3133
  tooltipPlacement,
3091
3134
  type = 'primary'
3092
3135
  }, ref) => {
3093
- const rootClasses = useStylesWithRootClass(rootClassName$1n, className);
3136
+ const rootClasses = useStylesWithRootClass(rootClassName$1m, className);
3094
3137
  let color;
3095
3138
  let variant;
3096
3139
  switch (type) {
@@ -3121,7 +3164,7 @@ const DotButton = forwardRef(({
3121
3164
  }
3122
3165
  return jsx(DotTooltip, {
3123
3166
  childrenDisplayStyle: "inline-block",
3124
- "data-testid": `${dataTestId || rootClassName$1n}-tooltip`,
3167
+ "data-testid": `${dataTestId || rootClassName$1m}-tooltip`,
3125
3168
  disableInteractive: disableInteractive,
3126
3169
  placement: tooltipPlacement,
3127
3170
  title: tooltip,
@@ -3133,7 +3176,7 @@ const DotButton = forwardRef(({
3133
3176
  },
3134
3177
  color: color,
3135
3178
  "data-pendoid": dataPendoId,
3136
- "data-testid": dataTestId || rootClassName$1n,
3179
+ "data-testid": dataTestId || rootClassName$1m,
3137
3180
  disableRipple: disableRipple,
3138
3181
  disabled: disabled,
3139
3182
  endIcon: endIcon,
@@ -3153,10 +3196,10 @@ const DotButton = forwardRef(({
3153
3196
  });
3154
3197
  });
3155
3198
 
3156
- const rootClassName$1m = 'dot-link';
3199
+ const rootClassName$1l = 'dot-link';
3157
3200
  const StyledLink = styled(Link)`
3158
3201
  ${() => css`
3159
- &.${rootClassName$1m} {
3202
+ &.${rootClassName$1l} {
3160
3203
  cursor: pointer;
3161
3204
 
3162
3205
  &:hover.MuiLink-underlineHover {
@@ -3172,7 +3215,7 @@ const DotLink = ({
3172
3215
  children,
3173
3216
  className,
3174
3217
  color = 'primary',
3175
- 'data-pendoid': dataPendoId = rootClassName$1m,
3218
+ 'data-pendoid': dataPendoId = rootClassName$1l,
3176
3219
  'data-testid': dataTestId,
3177
3220
  href,
3178
3221
  onClick,
@@ -3185,16 +3228,12 @@ const DotLink = ({
3185
3228
  underline = 'always',
3186
3229
  variant = 'body1'
3187
3230
  }) => {
3188
- const rootClasses = useStylesWithRootClass(rootClassName$1m, className);
3231
+ const rootClasses = useStylesWithRootClass(rootClassName$1l, className);
3189
3232
  useEffect(() => {
3190
3233
  // Include a console warning if the link is not a string and no ariaLabel is provided
3191
3234
  if (!isString$2(children) && !ariaLabel) {
3192
3235
  console.warn(`a11y: Consider adding an 'ariaLabel' to 'DotLink' when used without text`);
3193
3236
  }
3194
- // Include a console warning if the color value is set to initial
3195
- if (color === 'initial') {
3196
- console.warn(`deprecated: initial color value is deprecated and inherit will be used instead`);
3197
- }
3198
3237
  }, []);
3199
3238
  const handleKeyPress = event => {
3200
3239
  if (onClick && event.key === 'Enter') {
@@ -3209,12 +3248,12 @@ const DotLink = ({
3209
3248
  classes: {
3210
3249
  root: rootClasses
3211
3250
  },
3212
- color: color === 'initial' ? 'inherit' : color,
3251
+ color: color,
3213
3252
  "data-pendoid": dataPendoId,
3214
3253
  "data-testid": dataTestId,
3215
3254
  href: href,
3216
3255
  onClick: onClick,
3217
- onKeyPress: handleKeyPress,
3256
+ onKeyDown: handleKeyPress,
3218
3257
  onMouseEnter: onMouseEnter,
3219
3258
  onPointerDown: onPointerDown,
3220
3259
  rel: rel,
@@ -3236,7 +3275,7 @@ const CreateUUID = () => {
3236
3275
  });
3237
3276
  };
3238
3277
 
3239
- const rootClassName$1l = 'dot-list';
3278
+ const rootClassName$1k = 'dot-list';
3240
3279
  const listItemRootClass = 'dot-list-item';
3241
3280
  const nestedListClassName = 'dot-nested-list';
3242
3281
  const nestedDrawerClassName = 'dot-nested-drawer';
@@ -3244,7 +3283,7 @@ const StyledList = styled(List)`
3244
3283
  ${({
3245
3284
  theme
3246
3285
  }) => css`
3247
- &.${rootClassName$1l} {
3286
+ &.${rootClassName$1k} {
3248
3287
  background: ${theme.palette.figma.background.level0.componentsBackground};
3249
3288
 
3250
3289
  .dot-icon {
@@ -3338,13 +3377,13 @@ const DotListDivider = ({
3338
3377
  });
3339
3378
  };
3340
3379
 
3341
- const rootClassName$1k = 'dot-progress';
3380
+ const rootClassName$1j = 'dot-progress';
3342
3381
  const StyledProgress = styled.div`
3343
3382
  ${({
3344
3383
  theme,
3345
3384
  $aiProgressGradientId
3346
3385
  }) => css`
3347
- &.${rootClassName$1k} {
3386
+ &.${rootClassName$1j} {
3348
3387
  line-height: 0;
3349
3388
 
3350
3389
  .dot-progress-with-ai-wrapper {
@@ -3444,7 +3483,7 @@ const DotProgress = ({
3444
3483
  value,
3445
3484
  variant = 'indeterminate'
3446
3485
  }) => {
3447
- const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
3486
+ const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
3448
3487
  const calculatedSize = ai ? AI_PROGRESS_SIZE : size;
3449
3488
  const calculatedThickness = ai ? AI_PROGRESS_THICKNESS : thickness;
3450
3489
  useEffect(() => {
@@ -3533,13 +3572,13 @@ var variables = /*#__PURE__*/Object.freeze({
3533
3572
  levelTop: levelTop
3534
3573
  });
3535
3574
 
3536
- const rootClassName$1j = 'dot-popper';
3575
+ const rootClassName$1i = 'dot-popper';
3537
3576
  const arrowClassName = 'MuiPopper-arrow';
3538
3577
  const StyledPopper$1 = styled(Popper)`
3539
3578
  ${({
3540
3579
  theme
3541
3580
  }) => css`
3542
- &.${rootClassName$1j} {
3581
+ &.${rootClassName$1i} {
3543
3582
  font-family: ${theme.typography.fontFamily};
3544
3583
  font-size: ${theme.typography.body1.fontSize}px;
3545
3584
 
@@ -3598,7 +3637,7 @@ const StyledPopper$1 = styled(Popper)`
3598
3637
  }
3599
3638
  }
3600
3639
 
3601
- &.${rootClassName$1j}, &.${rootClassName$1j} > .dot-popper-paper {
3640
+ &.${rootClassName$1i}, &.${rootClassName$1i} > .dot-popper-paper {
3602
3641
  background-color: ${theme.palette.figma.background.level1.white};
3603
3642
  }
3604
3643
  `}
@@ -3628,12 +3667,12 @@ const StyledArrow = styled('span')`
3628
3667
  `;
3629
3668
 
3630
3669
  const flyoutMenuClassName = 'dot-flyout-menu';
3631
- const rootClassName$1i = 'dot-menu';
3670
+ const rootClassName$1h = 'dot-menu';
3632
3671
  const StyledPopper = styled(Popper)`
3633
3672
  ${({
3634
3673
  theme
3635
3674
  }) => css`
3636
- &.${rootClassName$1j} {
3675
+ &.${rootClassName$1i} {
3637
3676
  font-family: ${theme.typography.fontFamily};
3638
3677
  font-size: ${theme.typography.body1.fontSize}px;
3639
3678
 
@@ -3643,7 +3682,7 @@ const StyledPopper = styled(Popper)`
3643
3682
  }) => $zIndex === undefined ? `z-index: ${levelSecond};` : `z-index: ${$zIndex};`}
3644
3683
  }
3645
3684
  }
3646
- &.${rootClassName$1i}, &.${rootClassName$1j} {
3685
+ &.${rootClassName$1h}, &.${rootClassName$1i} {
3647
3686
  .MuiPaper-root:not(:empty) {
3648
3687
  border: 1px solid ${theme.palette.layer.n100};
3649
3688
  }
@@ -3723,14 +3762,14 @@ const MENU_ITEM_HEIGHT_NORMAL = 48;
3723
3762
  const MENU_ITEM_HEIGHT_DENSE = 36;
3724
3763
  const DEFAULT_MAX_VISIBLE_ITEMS = 7;
3725
3764
 
3726
- const rootClassName$1h = 'dot-ul';
3765
+ const rootClassName$1g = 'dot-ul';
3727
3766
  const listItemClassName$1 = 'dot-li';
3728
3767
  const listItemWithSubmenuClassName = 'dot-li-with-submenu';
3729
3768
  const StyledMenuList = styled(MenuList)`
3730
3769
  ${({
3731
3770
  theme
3732
3771
  }) => css`
3733
- &.${rootClassName$1h} {
3772
+ &.${rootClassName$1g} {
3734
3773
  background: ${theme.palette.figma.background.level1.white};
3735
3774
 
3736
3775
  .dot-li {
@@ -3832,7 +3871,7 @@ const DotMenuList = forwardRef(({
3832
3871
  onSubMenuCreate,
3833
3872
  selectedKey
3834
3873
  }, ref) => {
3835
- const rootClasses = useStylesWithRootClass(rootClassName$1h, className);
3874
+ const rootClasses = useStylesWithRootClass(rootClassName$1g, className);
3836
3875
  const [activeSubmenu, setActiveSubmenu] = useState(null);
3837
3876
  const [subItemAnchorEl, setSubItemAnchorEl] = useState(null);
3838
3877
  const openSubmenu = (target, itemKey) => {
@@ -3944,7 +3983,7 @@ const DotMenu = ({
3944
3983
  open = false,
3945
3984
  selectedKey
3946
3985
  }) => {
3947
- const rootClasses = useStylesWithRootClass(rootClassName$1i, className, loading ? 'loading' : '');
3986
+ const rootClasses = useStylesWithRootClass(rootClassName$1h, className, loading ? 'loading' : '');
3948
3987
  const isSubmenu = checkIfSubmenu(anchorEl);
3949
3988
  const hasSubItems = checkForSubItems(menuItems);
3950
3989
  // Timeout object is customizable when Menu component is either submenu
@@ -4032,12 +4071,12 @@ const DotMenu = ({
4032
4071
  });
4033
4072
  };
4034
4073
 
4035
- const rootClassName$1g = 'dot-drawer';
4074
+ const rootClassName$1f = 'dot-drawer';
4036
4075
  const StyledDrawer = styled(Drawer)`
4037
4076
  ${({
4038
4077
  theme
4039
4078
  }) => css`
4040
- &.${rootClassName$1g} .MuiBackdrop-root {
4079
+ &.${rootClassName$1f} .MuiBackdrop-root {
4041
4080
  background-color: ${theme.palette.figma.overlay.default};
4042
4081
  }
4043
4082
 
@@ -4056,12 +4095,12 @@ const StyledDrawer = styled(Drawer)`
4056
4095
  `}
4057
4096
  `;
4058
4097
 
4059
- const rootClassName$1f = 'dot-drawer-header';
4098
+ const rootClassName$1e = 'dot-drawer-header';
4060
4099
  const StyleDrawerHeader = styled.div`
4061
4100
  ${({
4062
4101
  theme
4063
4102
  }) => css`
4064
- &.${rootClassName$1f} {
4103
+ &.${rootClassName$1e} {
4065
4104
  padding: ${theme.spacing(0, 0, 2)};
4066
4105
  display: flex;
4067
4106
  align-items: center;
@@ -4072,13 +4111,13 @@ const StyleDrawerHeader = styled.div`
4072
4111
  `}
4073
4112
  `;
4074
4113
 
4075
- const rootClassName$1e = 'dot-icon-btn';
4114
+ const rootClassName$1d = 'dot-icon-btn';
4076
4115
  const StyledIconButton = styled(IconButton)`
4077
4116
  ${({
4078
4117
  theme,
4079
4118
  color
4080
4119
  }) => css`
4081
- &.${rootClassName$1e} {
4120
+ &.${rootClassName$1d} {
4082
4121
  ${color === 'inherit' ? css`
4083
4122
  color: inherit;
4084
4123
  ` : ''}
@@ -4164,7 +4203,7 @@ const DotIconButton = ({
4164
4203
  ariaRole = 'button',
4165
4204
  className,
4166
4205
  color = 'inherit',
4167
- 'data-pendoid': dataPendoId = rootClassName$1e,
4206
+ 'data-pendoid': dataPendoId = rootClassName$1d,
4168
4207
  'data-testid': dataTestId,
4169
4208
  disableInteractive,
4170
4209
  disableRipple = false,
@@ -4178,7 +4217,7 @@ const DotIconButton = ({
4178
4217
  tooltipPlacement
4179
4218
  }) => {
4180
4219
  const rippleClassName = disableRipple ? 'ripple-disabled' : '';
4181
- const rootClasses = useStylesWithRootClass(rootClassName$1e, rippleClassName, `shape-${shape}`, className);
4220
+ const rootClasses = useStylesWithRootClass(rootClassName$1d, rippleClassName, `shape-${shape}`, className);
4182
4221
  return jsx(DotTooltip, {
4183
4222
  childrenDisplayStyle: "inline-block",
4184
4223
  "data-testid": "icon-button-tooltip",
@@ -4215,7 +4254,7 @@ const DotDrawerHeader = ({
4215
4254
  onClose,
4216
4255
  variant
4217
4256
  }) => {
4218
- const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
4257
+ const rootClasses = useStylesWithRootClass(rootClassName$1e, className);
4219
4258
  return jsxs(StyleDrawerHeader, {
4220
4259
  "aria-label": ariaLabel,
4221
4260
  "aria-level": 2,
@@ -4232,10 +4271,10 @@ const DotDrawerHeader = ({
4232
4271
  });
4233
4272
  };
4234
4273
 
4235
- const rootClassName$1d = 'dot-drawer-body';
4274
+ const rootClassName$1c = 'dot-drawer-body';
4236
4275
  const StyleDrawerBody = styled.div`
4237
4276
  ${() => css`
4238
- &.${rootClassName$1d} {
4277
+ &.${rootClassName$1c} {
4239
4278
  display: flex;
4240
4279
  .dot-drawer-close-button {
4241
4280
  align-self: self-start;
@@ -4256,7 +4295,7 @@ const DotDrawerBody = ({
4256
4295
  onClose,
4257
4296
  variant
4258
4297
  }) => {
4259
- const rootClasses = useStylesWithRootClass(rootClassName$1d, className);
4298
+ const rootClasses = useStylesWithRootClass(rootClassName$1c, className);
4260
4299
  return jsxs(StyleDrawerBody, {
4261
4300
  "aria-label": ariaLabel,
4262
4301
  className: rootClasses,
@@ -4271,12 +4310,12 @@ const DotDrawerBody = ({
4271
4310
  });
4272
4311
  };
4273
4312
 
4274
- const rootClassName$1c = 'dot-drawer-footer';
4313
+ const rootClassName$1b = 'dot-drawer-footer';
4275
4314
  const StyleDrawerFooter = styled.div`
4276
4315
  ${({
4277
4316
  theme
4278
4317
  }) => css`
4279
- &.${rootClassName$1c} {
4318
+ &.${rootClassName$1b} {
4280
4319
  padding: ${theme.spacing(2, 0, 0)};
4281
4320
  }
4282
4321
  `}
@@ -4289,7 +4328,7 @@ const DotDrawerFooter = ({
4289
4328
  className,
4290
4329
  'data-testid': dataTestId
4291
4330
  }) => {
4292
- const rootClasses = useStylesWithRootClass(rootClassName$1c, className);
4331
+ const rootClasses = useStylesWithRootClass(rootClassName$1b, className);
4293
4332
  return jsx(StyleDrawerFooter, {
4294
4333
  "aria-label": ariaLabel,
4295
4334
  className: rootClasses,
@@ -4305,7 +4344,7 @@ const DotDrawer = ({
4305
4344
  ariaRole = 'dialog',
4306
4345
  className,
4307
4346
  children,
4308
- 'data-pendoid': dataPendoId = rootClassName$1g,
4347
+ 'data-pendoid': dataPendoId = rootClassName$1f,
4309
4348
  'data-testid': dataTestId,
4310
4349
  drawerBodyProps,
4311
4350
  drawerFooterProps,
@@ -4328,7 +4367,7 @@ const DotDrawer = ({
4328
4367
  onClose(event);
4329
4368
  }
4330
4369
  };
4331
- const rootClasses = useStylesWithRootClass(rootClassName$1g, className);
4370
+ const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
4332
4371
  const backdropEnabled = variant === 'temporary' && !(ModalProps === null || ModalProps === void 0 ? void 0 : ModalProps.hideBackdrop);
4333
4372
  const headerExists = !!drawerHeaderProps;
4334
4373
  const bodyPendoId = drawerBodyProps ? drawerBodyProps['data-pendoid'] : 'drawer-body';
@@ -4803,7 +4842,7 @@ const DotList = ({
4803
4842
  nestedListType = 'expandable',
4804
4843
  width = 240
4805
4844
  }) => {
4806
- const rootClasses = useStylesWithRootClass(rootClassName$1l, className);
4845
+ const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
4807
4846
  const listWidth = typeof width === 'number' ? `${width}px` : width;
4808
4847
  const listRef = useRef(undefined);
4809
4848
  const disableCloseOnClickAway = !nestedListCloseOnClickAway && nestedListType === 'expandable';
@@ -4903,12 +4942,12 @@ const DotList = ({
4903
4942
  });
4904
4943
  };
4905
4944
 
4906
- const rootClassName$1b = 'dot-copy-button';
4945
+ const rootClassName$1a = 'dot-copy-button';
4907
4946
  const StyledCopyButton = styled.span`
4908
4947
  ${({
4909
4948
  theme
4910
4949
  }) => css`
4911
- &.${rootClassName$1b} .copied-to-clipboard {
4950
+ &.${rootClassName$1a} .copied-to-clipboard {
4912
4951
  color: ${theme.palette.figma.success.normal};
4913
4952
 
4914
4953
  &.MuiIcon-fontSizeSmall.button-size-small {
@@ -4933,8 +4972,7 @@ const DotCopyButton = ({
4933
4972
  className,
4934
4973
  color = 'inherit',
4935
4974
  copiedTooltip = 'Copied!',
4936
- copyTooltip = 'Copy to clipboard',
4937
- 'data-pendoid': dataPendoId = rootClassName$1b,
4975
+ 'data-pendoid': dataPendoId = rootClassName$1a,
4938
4976
  'data-testid': dataTestId = 'dot-copy-button',
4939
4977
  disableInteractive,
4940
4978
  disabled = false,
@@ -4950,10 +4988,6 @@ const DotCopyButton = ({
4950
4988
  }) => {
4951
4989
  const [timedShowCopiedIcon, setTimedShowCopiedIcon] = useState(false);
4952
4990
  const [timedDisabled, setTimedDisabled] = useState(false);
4953
- // To keep backward compatibility if tooltip is not set, use copyTooltip
4954
- if (!tooltip) {
4955
- tooltip = copyTooltip;
4956
- }
4957
4991
  const copyToClipboard = useCallback(() => {
4958
4992
  // The check for navigator.clipboard.writeText is because this function is
4959
4993
  // only supported in secure contexts (https). This will always be the case in
@@ -4983,7 +5017,7 @@ const DotCopyButton = ({
4983
5017
  return false;
4984
5018
  }, [value, showCopiedIcon, disabled, onClick]);
4985
5019
  return jsxs(StyledCopyButton, {
4986
- className: rootClassName$1b,
5020
+ className: rootClassName$1a,
4987
5021
  "data-testid": dataTestId,
4988
5022
  children: [!timedShowCopiedIcon && jsx(DotIconButton, {
4989
5023
  ariaLabel: ariaLabel,
@@ -5282,10 +5316,10 @@ const DotInputText = ({
5282
5316
  });
5283
5317
  };
5284
5318
 
5285
- const rootClassName$1a = 'dot-search-input';
5319
+ const rootClassName$19 = 'dot-search-input';
5286
5320
  const StyledSearchInput = styled.span`
5287
5321
  ${() => css`
5288
- &.${rootClassName$1a} {
5322
+ &.${rootClassName$19} {
5289
5323
  }
5290
5324
  `}
5291
5325
  `;
@@ -5302,7 +5336,7 @@ function SearchInput({
5302
5336
  tooltip = null,
5303
5337
  value
5304
5338
  }) {
5305
- const rootClasses = useStylesWithRootClass(rootClassName$1a, className);
5339
+ const rootClasses = useStylesWithRootClass(rootClassName$19, className);
5306
5340
  const [searchText, setSearchText] = useState(value);
5307
5341
  let previousSearchText = '';
5308
5342
  const handleChange = useCallback(event => {
@@ -5441,7 +5475,7 @@ const createMenuItem = (url, title, subtitle, onClick) => jsxs("div", {
5441
5475
  })]
5442
5476
  })
5443
5477
  }), jsx(DotCopyButton, {
5444
- copyTooltip: "Copy application URL",
5478
+ tooltip: "Copy application URL",
5445
5479
  value: url
5446
5480
  })]
5447
5481
  }, `app-menu-item-${title}`);
@@ -5558,12 +5592,12 @@ const recentAppInstancesSetter = (latestInstance, maxRecentItems
5558
5592
  };
5559
5593
  };
5560
5594
 
5561
- const rootClassName$19 = 'dot-app-switcher';
5595
+ const rootClassName$18 = 'dot-app-switcher';
5562
5596
  const StyledAppSwitcher = styled(DotDrawer)`
5563
5597
  ${({
5564
5598
  theme
5565
5599
  }) => css`
5566
- &.${rootClassName$19} {
5600
+ &.${rootClassName$18} {
5567
5601
  .dot-drawer-paper {
5568
5602
  padding: 0;
5569
5603
  width: 382px;
@@ -5673,7 +5707,7 @@ const DotAppSwitcherView = ({
5673
5707
  if (dotCoreApiContext !== null) {
5674
5708
  setSelectedAppType = dotCoreApiContext.setSelectedAppSwitcherAppType;
5675
5709
  }
5676
- const rootClasses = useStylesWithRootClass(rootClassName$19, className);
5710
+ const rootClasses = useStylesWithRootClass(rootClassName$18, className);
5677
5711
  const [appTypeMap, setAppTypeMap] = useState();
5678
5712
  const [appTypeLabels, setAppTypeLabels] = useState();
5679
5713
  const [appTypeMenuItems, setAppTypeMenuItems] = useState();
@@ -6051,12 +6085,12 @@ var SvgLogoDigitalAiWhite = function SvgLogoDigitalAiWhite(_ref, ref) {
6051
6085
  };
6052
6086
  var ForwardRef = /*#__PURE__*/forwardRef(SvgLogoDigitalAiWhite);
6053
6087
 
6054
- const rootClassName$18 = 'dot-sidebar';
6088
+ const rootClassName$17 = 'dot-sidebar';
6055
6089
  const StyledSidebar = styled.aside`
6056
6090
  ${({
6057
6091
  theme
6058
6092
  }) => css`
6059
- &.${rootClassName$18} {
6093
+ &.${rootClassName$17} {
6060
6094
  align-items: stretch;
6061
6095
  background: ${theme.palette.figma.background.level1.white};
6062
6096
  border-width: 0 1px;
@@ -6350,10 +6384,10 @@ const StyledSidebar = styled.aside`
6350
6384
  `}
6351
6385
  `;
6352
6386
 
6353
- const rootClassName$17 = 'dot-truncate-with-tooltip';
6387
+ const rootClassName$16 = 'dot-truncate-with-tooltip';
6354
6388
  const StyledTruncateWithTooltip = styled(Tooltip)`
6355
6389
  ${() => css`
6356
- &.${rootClassName$17} {
6390
+ &.${rootClassName$16} {
6357
6391
  display: block;
6358
6392
  overflow: hidden;
6359
6393
  white-space: nowrap;
@@ -6384,7 +6418,7 @@ const DotTruncateWithTooltip = ({
6384
6418
  label,
6385
6419
  width
6386
6420
  }) => {
6387
- const rootClasses = useStylesWithRootClass(rootClassName$17, className, charactersLimit ? 'dot-characters-limit' : '');
6421
+ const rootClasses = useStylesWithRootClass(rootClassName$16, className, charactersLimit ? 'dot-characters-limit' : '');
6388
6422
  return jsx(StyledTruncateWithTooltip, {
6389
6423
  "aria-label": ariaLabel,
6390
6424
  arrow: arrow,
@@ -6498,7 +6532,7 @@ const DotSidebar = ({
6498
6532
  keys: collapseKeys
6499
6533
  }, toggleNavCollapseState, [isOpen, collapsable]);
6500
6534
  const sidebarClasses = useStylesWithRootClass('side-nav', openClass);
6501
- const rootClasses = useStylesWithRootClass(rootClassName$18, openClass, className);
6535
+ const rootClasses = useStylesWithRootClass(rootClassName$17, openClass, className);
6502
6536
  return jsxs(StyledSidebar, {
6503
6537
  "aria-label": ariaLabel,
6504
6538
  className: rootClasses,
@@ -6574,12 +6608,12 @@ const DotSidebar = ({
6574
6608
  });
6575
6609
  };
6576
6610
 
6577
- const rootClassName$16 = 'dot-badge';
6611
+ const rootClassName$15 = 'dot-badge';
6578
6612
  const StyledBadge = styled(Badge)`
6579
6613
  ${({
6580
6614
  theme
6581
6615
  }) => css`
6582
- &.${rootClassName$16} {
6616
+ &.${rootClassName$15} {
6583
6617
  color: ${theme.palette.figma.typography.black};
6584
6618
  word-break: normal;
6585
6619
 
@@ -6614,7 +6648,7 @@ const DotBadge = ({
6614
6648
  overlap,
6615
6649
  variant = 'dot'
6616
6650
  }) => {
6617
- const rootClasses = useStylesWithRootClass(rootClassName$16, className);
6651
+ const rootClasses = useStylesWithRootClass(rootClassName$15, className);
6618
6652
  return jsx(StyledBadge, {
6619
6653
  "$badgeColor": badgeColor,
6620
6654
  anchorOrigin: {
@@ -6636,7 +6670,7 @@ const DotBadge = ({
6636
6670
  });
6637
6671
  };
6638
6672
 
6639
- const rootClassName$15 = 'dot-app-toolbar';
6673
+ const rootClassName$14 = 'dot-app-toolbar';
6640
6674
  const denseClassName = 'dense';
6641
6675
  const StyledMainMenu = styled(DotDrawer)`
6642
6676
  ${({
@@ -6676,7 +6710,7 @@ const StyledAppToolbar = styled.header`
6676
6710
  ${({
6677
6711
  theme
6678
6712
  }) => css`
6679
- &.${rootClassName$15} {
6713
+ &.${rootClassName$14} {
6680
6714
  align-items: center;
6681
6715
  background: ${theme.palette.figma.appToolbar.background};
6682
6716
  border-bottom: 4px solid ${theme.palette.figma.border.default};
@@ -6805,7 +6839,7 @@ const DotAppToolbar = ({
6805
6839
  const displayAppLogo = appLogo || appLogoSmall;
6806
6840
  const mainMenuRef = useRef(null);
6807
6841
  const denseClass = dense ? denseClassName : '';
6808
- const rootClasses = useStylesWithRootClass(rootClassName$15, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6842
+ const rootClasses = useStylesWithRootClass(rootClassName$14, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6809
6843
  const mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
6810
6844
  const targetBreakpoint = useMediaQuery(theme => theme.breakpoints.up('lg'));
6811
6845
  useEffect(() => {
@@ -6957,12 +6991,12 @@ const DotAppToolbar = ({
6957
6991
  }) : appToolbar;
6958
6992
  };
6959
6993
 
6960
- const rootClassName$14 = 'dot-chip';
6994
+ const rootClassName$13 = 'dot-chip';
6961
6995
  const StyledChip = styled(Chip)`
6962
6996
  ${({
6963
6997
  theme
6964
6998
  }) => css`
6965
- &.${rootClassName$14} {
6999
+ &.${rootClassName$13} {
6966
7000
  background: ${theme.palette.figma.neutral.normal};
6967
7001
  border-color: ${theme.palette.figma.border.darker};
6968
7002
  color: ${theme.palette.figma.typography.black};
@@ -7068,7 +7102,7 @@ const DotChip = ({
7068
7102
  charactersLimit = DEFAULT_CHARACTERS_LIMIT,
7069
7103
  children,
7070
7104
  className,
7071
- 'data-pendoid': dataPendoId = rootClassName$14,
7105
+ 'data-pendoid': dataPendoId = rootClassName$13,
7072
7106
  'data-testid': dataTestId,
7073
7107
  disabled = false,
7074
7108
  error = false,
@@ -7082,7 +7116,7 @@ const DotChip = ({
7082
7116
  tooltipProps
7083
7117
  }) => {
7084
7118
  const errorClass = error ? 'Mui-error' : '';
7085
- const rootClasses = useStylesWithRootClass(rootClassName$14, className, errorClass);
7119
+ const rootClasses = useStylesWithRootClass(rootClassName$13, className, errorClass);
7086
7120
  const isTruncated = charactersLimit > 0 && children.length > charactersLimit;
7087
7121
  const getChipLabelWithTooltip = label => jsx(DotTooltip, Object.assign({}, tooltipProps, {
7088
7122
  hoverVisibility: "always",
@@ -7118,7 +7152,7 @@ const DotChip = ({
7118
7152
  });
7119
7153
  };
7120
7154
 
7121
- const rootClassName$13 = 'dot-autocomplete';
7155
+ const rootClassName$12 = 'dot-autocomplete';
7122
7156
  const inputRootClassName = 'dot-input-root';
7123
7157
  const inputMediumClassName = 'dot-input-medium';
7124
7158
  const inputAiClassName = 'dot-input-ai';
@@ -7126,7 +7160,7 @@ const StyledAutocomplete = styled(Autocomplete)`
7126
7160
  ${({
7127
7161
  theme
7128
7162
  }) => css`
7129
- &.${rootClassName$13} {
7163
+ &.${rootClassName$12} {
7130
7164
  &.${inputMediumClassName} .dot-text-field .${inputRootClassName} {
7131
7165
  height: 56px;
7132
7166
  padding-left: ${theme.spacing(2)};
@@ -7225,7 +7259,7 @@ const isEmptyValue = value => {
7225
7259
  return !value;
7226
7260
  }
7227
7261
  };
7228
- const getRootClassNames = (className, size) => useStylesWithRootClass(rootClassName$13, size === 'medium' && inputMediumClassName, className);
7262
+ const getRootClassNames = (className, size) => useStylesWithRootClass(rootClassName$12, size === 'medium' && inputMediumClassName, className);
7229
7263
  const getTextFieldRootClassNames = (textFieldWarningClassName, isReadOnly) => useStylesWithRootClass(rootClassName$1u, isReadOnly && readOnlyClassName$1, textFieldWarningClassName);
7230
7264
  const getInputRootClassNames = isDense => useStylesWithRootClass(inputRootClassName, !isDense && inputMediumClassName);
7231
7265
  const getDefaultAutoCompleteValue = (hasMultiple, defaultValue) => hasMultiple && isString$2(defaultValue) ? [defaultValue] : defaultValue;
@@ -7248,7 +7282,7 @@ const DotAutoComplete = ({
7248
7282
  autoFocus,
7249
7283
  autoHighlight,
7250
7284
  className,
7251
- 'data-pendoid': dataPendoId = rootClassName$13,
7285
+ 'data-pendoid': dataPendoId = rootClassName$12,
7252
7286
  'data-testid': dataTestId,
7253
7287
  defaultValue,
7254
7288
  dense = true,
@@ -7318,7 +7352,7 @@ const DotAutoComplete = ({
7318
7352
  const rootClasses = useStylesWithRootClass(getRootClassNames(className, size), isAiEnabled ? inputAiClassName : '');
7319
7353
  const textFieldRootClasses = getTextFieldRootClassNames(textFieldWarningClassName, readOnly);
7320
7354
  const inputRootClasses = getInputRootClassNames(dense);
7321
- const popperClasses = useStylesWithRootClass(rootClassName$1j, popperClassName);
7355
+ const popperClasses = useStylesWithRootClass(rootClassName$1i, popperClassName);
7322
7356
  let highlightedOption = null;
7323
7357
  let textFieldInput;
7324
7358
  const textFieldRef = element => {
@@ -7668,21 +7702,8 @@ const DotAutoComplete = ({
7668
7702
  });
7669
7703
  };
7670
7704
 
7671
- const rootClassName$12 = 'dot-avatar-group';
7672
- const StyledAvatarGroup = styled(AvatarGroup)`
7673
- ${() => css`
7674
- &.${rootClassName$12} {
7675
- justify-content: flex-end;
7676
-
7677
- .MuiAvatar-root {
7678
- border: none;
7679
- }
7680
- }
7681
- }
7682
- `}
7683
- `;
7684
-
7685
7705
  const DotAvatarGroup = ({
7706
+ additionalAvatarsLabel = 'Additional Users',
7686
7707
  ariaLabel,
7687
7708
  avatars,
7688
7709
  className,
@@ -7690,7 +7711,53 @@ const DotAvatarGroup = ({
7690
7711
  max = 3,
7691
7712
  spacing = 'medium'
7692
7713
  }) => {
7693
- const rootClasses = useStylesWithRootClass(rootClassName$12, className);
7714
+ var _a;
7715
+ const rootClasses = useStylesWithRootClass(rootClassName$1n, className);
7716
+ const firstAvatarSize = ((_a = avatars[0]) === null || _a === void 0 ? void 0 : _a.size) || 'medium';
7717
+ // Map avatar size to pixel value
7718
+ const sizeMap = {
7719
+ xs: 16,
7720
+ small: 24,
7721
+ medium: 40,
7722
+ large: 56
7723
+ };
7724
+ const textSizeMap = {
7725
+ xs: 'caption',
7726
+ small: 'caption',
7727
+ medium: 'h3',
7728
+ large: 'h1'
7729
+ };
7730
+ const surplusSizePixels = sizeMap[firstAvatarSize] || 40;
7731
+ const extraAvatarTooltip = jsxs("div", {
7732
+ children: [jsxs("div", {
7733
+ children: [additionalAvatarsLabel, ":"]
7734
+ }), avatars.slice(max - 1).map((avatar, index) => jsx("div", {
7735
+ children: avatar.alt || avatar.text || ''
7736
+ }, index))]
7737
+ });
7738
+ const getAvatarClassName = index => {
7739
+ return `${avatars[index].className}`;
7740
+ };
7741
+ const getAvatarTooltipClassName = index => {
7742
+ if (avatars[index] && avatars[index].tooltip) {
7743
+ return `${avatars[index].className} ${index !== 0 && index !== max - 1 ? 'avatar-with-tooltip' : ''}`;
7744
+ }
7745
+ return '';
7746
+ };
7747
+ const renderSurplus = surplus => {
7748
+ var _a;
7749
+ return jsx(DotTooltip, {
7750
+ title: extraAvatarTooltip,
7751
+ childrenDisplayStyle: "inline-flex",
7752
+ children: jsx(StyledExtraAvatarSpan, {
7753
+ children: jsx(StyledDotTypography, {
7754
+ className: firstAvatarSize,
7755
+ variant: (_a = textSizeMap[firstAvatarSize]) !== null && _a !== void 0 ? _a : 'caption',
7756
+ children: `+${surplus}`
7757
+ })
7758
+ })
7759
+ });
7760
+ };
7694
7761
  return jsx(StyledAvatarGroup, {
7695
7762
  "aria-label": ariaLabel,
7696
7763
  classes: {
@@ -7699,7 +7766,19 @@ const DotAvatarGroup = ({
7699
7766
  "data-testid": dataTestId,
7700
7767
  max: max,
7701
7768
  spacing: spacing,
7702
- children: avatars.map((avatar, index) => createElement(DotAvatar, Object.assign({}, avatar, {
7769
+ slotProps: {
7770
+ additionalAvatar: {
7771
+ sx: {
7772
+ width: surplusSizePixels,
7773
+ height: surplusSizePixels
7774
+ }
7775
+ }
7776
+ },
7777
+ renderSurplus: renderSurplus,
7778
+ children: avatars.map((avatar, index) => createElement(DotAvatar, Object.assign({
7779
+ tooltipClassname: getAvatarTooltipClassName(index),
7780
+ className: getAvatarClassName(index)
7781
+ }, avatar, {
7703
7782
  key: index
7704
7783
  })))
7705
7784
  });
@@ -8211,7 +8290,7 @@ const StyledToggleButtonGroup = styled(ToggleButtonGroup)`
8211
8290
  margin-left: 0;
8212
8291
  }
8213
8292
 
8214
- .MuiBadge-badge {
8293
+ .MuiBadge-badge:not(.MuiBadge-invisible) {
8215
8294
  position: static;
8216
8295
  transform: none;
8217
8296
  }
@@ -8314,9 +8393,23 @@ const DotButtonToggle = ({
8314
8393
  value
8315
8394
  }) => {
8316
8395
  const rootClasses = useStylesWithRootClass(rootClassName$$, className);
8396
+ const checkIfValidBadge = badge => {
8397
+ const {
8398
+ variant,
8399
+ badgeContent
8400
+ } = badge;
8401
+ return variant === 'standard' && !isNaN(badgeContent) || variant === 'dot';
8402
+ };
8403
+ const renderBadge = (badge, textTypography) => {
8404
+ return jsx(DotBadge, Object.assign({}, badge, {
8405
+ className: useStylesWithRootClass('toggle-button-badge', badge.className),
8406
+ "data-testid": dataTestId && `${dataTestId}-badge`,
8407
+ children: textTypography
8408
+ }));
8409
+ };
8317
8410
  const renderToggleButton = ({
8318
8411
  ariaLabel: optionAriaLabel,
8319
- badgeContent: optionBadgeContent,
8412
+ badge: optionBadge,
8320
8413
  className: optionClassName,
8321
8414
  disabled: optionDisabled,
8322
8415
  iconId: optionIconId,
@@ -8344,23 +8437,21 @@ const DotButtonToggle = ({
8344
8437
  children: optionText
8345
8438
  })]
8346
8439
  });
8347
- return optionBadgeContent && !isNaN(optionBadgeContent) && optionBadgeContent > 0 && optionText ? jsx(DotBadge, {
8348
- "data-testid": dataTestId && `${dataTestId}-badge`,
8349
- className: "toggle-button-badge",
8350
- badgeContent: optionBadgeContent,
8351
- variant: "standard",
8352
- children: optionTextTypography
8353
- }) : optionTextTypography;
8440
+ return optionBadge && checkIfValidBadge(optionBadge) ? renderBadge(optionBadge, optionTextTypography) : optionTextTypography;
8354
8441
  };
8355
8442
  const children = getChildren();
8356
- return optionTooltip ? jsx(TooltipToggleButton, Object.assign({}, commonProps, {
8443
+ const {
8444
+ key: commonPropsKey
8445
+ } = commonProps,
8446
+ commonPropsWithoutKey = __rest(commonProps, ["key"]);
8447
+ return optionTooltip ? createElement(TooltipToggleButton, Object.assign({}, commonPropsWithoutKey, {
8448
+ key: commonPropsKey,
8357
8449
  CustomTooltipProps: {
8358
8450
  title: optionTooltip,
8359
8451
  disableInteractive: optionDisableInteractive
8360
8452
  },
8361
- value: optionValue,
8362
- children: children
8363
- })) : jsx(ToggleButton, Object.assign({}, commonProps, {
8453
+ value: optionValue
8454
+ }), children) : jsx(ToggleButton, Object.assign({}, commonProps, {
8364
8455
  role: "button",
8365
8456
  children: children
8366
8457
  }));
@@ -11468,7 +11559,6 @@ const DotSnackbar = ({
11468
11559
  children: jsxs("div", {
11469
11560
  children: [jsx(DotTypography, {
11470
11561
  variant: "subtitle2",
11471
- noMarginBottom: false,
11472
11562
  children: getSnackbarTitleFromSeverity(severity)
11473
11563
  }), isString$2(children) ? jsx(DotTypography, {
11474
11564
  ariaLabel: severity,
@@ -14772,7 +14862,6 @@ const DotSwitch = ({
14772
14862
  ariaLabel,
14773
14863
  checked,
14774
14864
  className,
14775
- color,
14776
14865
  'data-pendoid': dataPendoId = rootClassName$C,
14777
14866
  'data-testid': dataTestId,
14778
14867
  disabled = false,
@@ -14787,11 +14876,6 @@ const DotSwitch = ({
14787
14876
  const handleChange = event => {
14788
14877
  onChange && onChange(event);
14789
14878
  };
14790
- useEffect(() => {
14791
- if (color) {
14792
- console.warn('DEPRECATED: `color` prop is deprecated, please remove any usage of it in your application.');
14793
- }
14794
- }, []);
14795
14879
  // Future version of MUI v6 will have proper role="switch" instead of role="checkbox"
14796
14880
  // https://github.com/mui/material-ui/pull/17870
14797
14881
  const switchControl = jsx(StyledSwitch, {
@@ -17417,16 +17501,13 @@ const DotBodyCell = ({
17417
17501
  onClick: () => onActionMenuTrigger(wrapperRef.current, value),
17418
17502
  size: "small"
17419
17503
  }) : value.map(item => {
17420
- if (item.onclick) {
17421
- console.warn('The onclick property is deprecated, please use onClick instead');
17422
- }
17423
17504
  return jsx(DotIconButton, {
17424
17505
  className: "dot-table-action-icon",
17425
17506
  "data-testid": item.dataTestId,
17426
17507
  disabled: item.disabled,
17427
17508
  iconId: item.iconId,
17428
17509
  iconSize: "small",
17429
- onClick: item.onClick || item.onclick,
17510
+ onClick: item.onClick,
17430
17511
  size: "small",
17431
17512
  tooltip: item.tooltip
17432
17513
  }, `${cellKey}-icon-${CreateUUID()}`);
@@ -18658,7 +18739,6 @@ const StyledTabs = styled(Tabs)`
18658
18739
  const DotTabs = ({
18659
18740
  centered = false,
18660
18741
  className,
18661
- color,
18662
18742
  'data-pendoid': dataPendoId = rootClassName$l,
18663
18743
  'data-testid': dataTestId,
18664
18744
  initialValue = 0,
@@ -18669,11 +18749,6 @@ const DotTabs = ({
18669
18749
  }) => {
18670
18750
  const [value, setValue] = useState(initialValue);
18671
18751
  const rootClasses = useStylesWithRootClass(rootClassName$l, className);
18672
- useEffect(() => {
18673
- if (color) {
18674
- console.warn('DEPRECATED: `color` prop is deprecated in `<DotTabs>`, please remove any usage of it in your application.');
18675
- }
18676
- }, []);
18677
18752
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18678
18753
  const handleChange = (_event, val) => {
18679
18754
  setValue(val);
@@ -19211,7 +19286,7 @@ const DotPopper = ({
19211
19286
  placement
19212
19287
  }) => {
19213
19288
  const [arrowRef, setArrowRef] = useState(null);
19214
- const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
19289
+ const rootClasses = useStylesWithRootClass(rootClassName$1i, className);
19215
19290
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
19216
19291
  const handleClickAway = event => {
19217
19292
  if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digital-ai/dot-components",
3
- "version": "5.12.0",
3
+ "version": "6.0.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN <LICENSE.md>",
6
6
  "contributors": [
@@ -1,5 +1,5 @@
1
1
  export declare const dashboardCategoriesContainerClassName = "dashboard-categories-container";
2
- export declare const InlineMessage: import("styled-components").StyledComponent<({ ai, ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, hasShimmer, noMarginBottom, noWrap, variant, }: import("../../typography/Typography").TypographyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
2
+ export declare const InlineMessage: import("styled-components").StyledComponent<({ ai, ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, hasShimmer, noWrap, variant, }: import("../../typography/Typography").TypographyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
3
3
  export declare const StyledPublishConfirmDiv: import("styled-components").StyledComponent<"div", any, {}, never>;
4
4
  export declare const StyledAppSelectDiv: import("styled-components").StyledComponent<"div", any, {}, never>;
5
5
  export declare const StyledAppSelectDotAutoComplete: import("styled-components").StyledComponent<(<T extends import("../..").AutoCompleteOption>({ ListboxComponent, additionalLabelContent, actionItem, ai, aiAction, ariaLabel, autoFocus, autoHighlight, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, defaultValue, dense, disableCloseOnSelect, disabled, disablePortal, endAdornmentTooltip, error, filterOptions, filterSelectedOptions, freesolo, checkIfOptionDisabled, group, helperText, informationToolTip, inputId, inputRef, inputValue, isOptionEqualToValue, label, loading, maxHeight, multiple, onBlur, onChange, onClose, onInputChange, onOpen, open, options, persistentLabel, placeholder, popperClassName, popperPlacement, popperZIndex, preserveGroupOrder, readOnly, renderGroup, renderOption, renderTags, required, size, trimLongOptions, value, warning, }: import("../../auto-complete/AutoComplete").AutoCompleteProps<T>) => import("react/jsx-runtime").JSX.Element), any, {}, never>;
@@ -33,9 +33,11 @@ export interface AvatarProps extends CommonProps {
33
33
  text?: string;
34
34
  /** Tooltip for avatar */
35
35
  tooltip?: string;
36
+ /** Classname for the tooltip */
37
+ tooltipClassname?: string;
36
38
  /** The type of the avatar */
37
39
  type?: AvatarType;
38
40
  /** The shape of the avatar */
39
41
  variant?: AvatarVariant;
40
42
  }
41
- export declare const DotAvatar: ({ ai, alt, ariaLabel, ariaRole, className, component, disableInteractive, color, "data-testid": dataTestId, iconId, imageSrc, onClick, number, size, tabIndex, text, type, tooltip, variant, style, }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
43
+ export declare const DotAvatar: ({ ai, alt, ariaLabel, ariaRole, className, component, disableInteractive, color, "data-testid": dataTestId, iconId, imageSrc, onClick, number, size, tabIndex, text, type, tooltip, tooltipClassname, variant, style, }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,6 +2,8 @@ import { CommonProps } from '../CommonProps';
2
2
  import { AvatarProps } from '../avatar/Avatar';
3
3
  export type AvatarGroupSpacing = 'medium' | 'small' | number;
4
4
  export interface AvatarGroupProps extends CommonProps {
5
+ /** Label for the additional avatars displayed when the max is exceeded */
6
+ additionalAvatarsLabel?: string;
5
7
  /** Array of avatars displayed inside the group */
6
8
  avatars: Array<AvatarProps>;
7
9
  /** Max avatars to show before +x */
@@ -9,4 +11,4 @@ export interface AvatarGroupProps extends CommonProps {
9
11
  /** Spacing between avatars */
10
12
  spacing?: AvatarGroupSpacing;
11
13
  }
12
- export declare const DotAvatarGroup: ({ ariaLabel, avatars, className, "data-testid": dataTestId, max, spacing, }: AvatarGroupProps) => import("react/jsx-runtime").JSX.Element;
14
+ export declare const DotAvatarGroup: ({ additionalAvatarsLabel, ariaLabel, avatars, className, "data-testid": dataTestId, max, spacing, }: AvatarGroupProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,6 @@
1
1
  import { AvatarGroup } from '@mui/material';
2
2
  export declare const rootClassName = "dot-avatar-group";
3
3
  export declare const StyledAvatarGroup: import("styled-components").StyledComponent<typeof AvatarGroup, any, {}, never>;
4
+ export declare const StyledDotTooltip: import("styled-components").StyledComponent<({ ariaLabel, ariaRole, arrow, children, className, "data-testid": dataTestId, disablePortal, disableInteractive, followCursor, enterDelay, enterNextDelay, hoverVisibility, leaveDelay, onClose, open, placement, popperClassName, popperOptions, slotProps, title, childrenDisplayStyle, }: import("../tooltip").TooltipProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
5
+ export declare const StyledDotTypography: import("styled-components").StyledComponent<({ ai, ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, hasShimmer, noWrap, variant, }: import("../typography/Typography").TypographyProps) => import("react/jsx-runtime").JSX.Element, any, {}, never>;
6
+ export declare const StyledExtraAvatarSpan: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -2,13 +2,11 @@ import { CommonIconButtonProps } from './IconButton';
2
2
  export interface CopyButtonProps extends CommonIconButtonProps {
3
3
  /** Tooltip shown briefly after the value has been copied. */
4
4
  copiedTooltip?: string;
5
- /** DEPRECATED Use tooltip instead */
6
- copyTooltip?: string;
7
5
  /** The icon to display on the button, defaults to 'duplicate' */
8
6
  iconId?: string;
9
- /** By default a check icon will briefly display after the content is copied */
7
+ /** By default, a check icon will briefly display after the content is copied */
10
8
  showCopiedIcon?: boolean;
11
9
  /** The content which will be copied to the clipboard */
12
10
  value: string;
13
11
  }
14
- export declare const DotCopyButton: ({ ariaLabel, ariaRole, className, color, copiedTooltip, copyTooltip, "data-pendoid": dataPendoId, "data-testid": dataTestId, disableInteractive, disabled, disableRipple, iconId, iconSize, onClick, shape, showCopiedIcon, size, tooltip, value, }: CopyButtonProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const DotCopyButton: ({ ariaLabel, ariaRole, className, color, copiedTooltip, "data-pendoid": dataPendoId, "data-testid": dataTestId, disableInteractive, disabled, disableRipple, iconId, iconSize, onClick, shape, showCopiedIcon, size, tooltip, value, }: CopyButtonProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,3 +1,3 @@
1
- export type { ButtonToggleOrientation, ButtonToggleOption, ButtonToggleSingleValue, ButtonToggleSize, ButtonToggleValue, } from './utils/models';
1
+ export type { ButtonToggleBadge, ButtonToggleOrientation, ButtonToggleOption, ButtonToggleSingleValue, ButtonToggleSize, ButtonToggleValue, } from './utils/models';
2
2
  export type { ButtonToggleProps } from './ButtonToggle';
3
3
  export { DotButtonToggle } from './ButtonToggle';
@@ -1,12 +1,14 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { CommonProps } from '../../CommonProps';
3
+ import { BadgeProps } from '../../badge';
3
4
  export type ButtonToggleSingleValue = string | number | boolean;
4
5
  export type ButtonToggleSize = 'small' | 'medium' | 'large';
5
6
  export type ButtonToggleOrientation = 'horizontal' | 'vertical';
6
7
  export type ButtonToggleValue = ButtonToggleSingleValue | Array<ButtonToggleSingleValue>;
8
+ export type ButtonToggleBadge = Omit<BadgeProps, 'children' | 'data-testid' | 'overlap'>;
7
9
  export interface ButtonToggleOption extends CommonProps {
8
10
  ariaLabel: string;
9
- badgeContent?: number;
11
+ badge?: ButtonToggleBadge;
10
12
  disableInteractive?: boolean;
11
13
  disabled?: boolean;
12
14
  iconId?: string;
@@ -8,7 +8,7 @@ export type { AvatarProps } from './avatar/Avatar';
8
8
  export type { AvatarTitleProps, AvatarWithDetailsProps, } from './avatar-with-details/AvatarWithDetails';
9
9
  export type { BreadcrumbItem } from './breadcrumbs/Breadcrumbs';
10
10
  export type { ButtonProps, CopyButtonProps, IconButtonProps, IconButtonColor, IconButtonSize, } from './button';
11
- export type { ButtonToggleProps, ButtonToggleValue, ButtonToggleOption, ButtonToggleOrientation, ButtonToggleSingleValue, ButtonToggleSize, } from './button-toggle';
11
+ export type { ButtonToggleBadge, ButtonToggleProps, ButtonToggleValue, ButtonToggleOption, ButtonToggleOrientation, ButtonToggleSingleValue, ButtonToggleSize, } from './button-toggle';
12
12
  export type { CheckboxProps } from './checkbox/Checkbox';
13
13
  export type { CheckboxGroupProps } from './checkbox/CheckboxGroup';
14
14
  export type { DialogButtonProps, SubmitButtonProps } from './dialog/Dialog';
@@ -26,7 +26,7 @@ export type { RailItem, RailItemsPosition } from './navigation-rail';
26
26
  export type { RadioButtonProps } from './radio/RadioButton';
27
27
  export type { RadioGroupProps } from './radio/RadioGroup';
28
28
  export type { BackItemProps, SidebarProps } from './sidebar/Sidebar';
29
- export type { SwitchProps, SwitchColor, SwitchSize, SwitchLabelPlacement, } from './switch';
29
+ export type { SwitchProps, SwitchSize, SwitchLabelPlacement } from './switch';
30
30
  export type { CollapsibleTableOptions } from './table/collapsible-table';
31
31
  export type { DotColumnHeader, MultiSelect, Order, RowSelectionChangeHandler, RowsPerPageOption, TableActionProps, TableActionsProps, TableDataWithPagination, TableRowProps, TableRowSelectChangeHandler, TextAlignment, SortDirection, } from './table';
32
32
  export type { TabProps } from './tabs/Tabs';
@@ -1,7 +1,7 @@
1
1
  import { KeyboardEvent, MouseEvent, PointerEvent, ReactNode } from 'react';
2
2
  import { CommonProps } from '../CommonProps';
3
3
  import { TypographyVariant } from '../typography/Typography';
4
- export type LinkColor = 'initial' | 'inherit' | 'primary' | 'secondary' | 'textPrimary' | 'textSecondary' | 'error';
4
+ export type LinkColor = 'inherit' | 'primary' | 'secondary' | 'textPrimary' | 'textSecondary' | 'error';
5
5
  export type LinkUnderline = 'always' | 'hover' | 'none';
6
6
  export type LinkTarget = '_blank' | '_self';
7
7
  export interface LinkProps extends CommonProps {
@@ -1,13 +1,10 @@
1
1
  import { ChangeEvent, Ref } from 'react';
2
2
  import { CommonProps } from '../CommonProps';
3
- export type SwitchColor = 'default' | 'primary' | 'secondary';
4
3
  export type SwitchSize = 'medium' | 'small';
5
4
  export type SwitchLabelPlacement = 'bottom' | 'end' | 'start' | 'top';
6
5
  export interface SwitchProps extends CommonProps {
7
6
  /** determines the default state of the switch */
8
7
  checked?: boolean;
9
- /** DEPRECATED: this will be removed in an upcoming release */
10
- color?: SwitchColor;
11
8
  /** if true makes the switch disabled */
12
9
  disabled?: boolean;
13
10
  /** id to identify the element */
@@ -23,4 +20,4 @@ export interface SwitchProps extends CommonProps {
23
20
  /** controls the size of the switch 'medium', 'small' */
24
21
  size?: SwitchSize;
25
22
  }
26
- export declare const DotSwitch: ({ ariaLabel, checked, className, color, "data-pendoid": dataPendoId, "data-testid": dataTestId, disabled, id, inputRef, label, labelPlacement, onChange, size, }: SwitchProps) => import("react/jsx-runtime").JSX.Element;
23
+ export declare const DotSwitch: ({ ariaLabel, checked, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, disabled, id, inputRef, label, labelPlacement, onChange, size, }: SwitchProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +1,2 @@
1
- export type { SwitchProps, SwitchColor, SwitchSize, SwitchLabelPlacement, } from './Switch';
1
+ export type { SwitchProps, SwitchSize, SwitchLabelPlacement } from './Switch';
2
2
  export { DotSwitch } from './Switch';
@@ -1,5 +1,4 @@
1
1
  import { CommonProps } from '../CommonProps';
2
- export type TabsColor = 'primary' | 'secondary';
3
2
  export type TabsScrollButtons = 'auto' | boolean;
4
3
  export type TabsVariant = 'fullWidth' | 'scrollable' | 'standard';
5
4
  export interface TabProps extends CommonProps {
@@ -15,8 +14,6 @@ export interface TabProps extends CommonProps {
15
14
  export interface TabsProps extends CommonProps {
16
15
  /** Center the tabs */
17
16
  centered?: boolean;
18
- /** DEPRECATED: this will be removed in an upcoming release */
19
- color?: TabsColor;
20
17
  /** The value of the initially selected tab */
21
18
  initialValue?: any;
22
19
  /** Tab change callback */
@@ -28,4 +25,4 @@ export interface TabsProps extends CommonProps {
28
25
  /** Determines additional display behavior of the tabs */
29
26
  variant?: TabsVariant;
30
27
  }
31
- export declare const DotTabs: ({ centered, className, color, "data-pendoid": dataPendoId, "data-testid": dataTestId, initialValue, onChange, scrollButtons, tabs, variant, }: TabsProps) => import("react/jsx-runtime").JSX.Element;
28
+ export declare const DotTabs: ({ centered, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, initialValue, onChange, scrollButtons, tabs, variant, }: TabsProps) => import("react/jsx-runtime").JSX.Element;
@@ -12,11 +12,9 @@ export interface TypographyProps extends CommonProps {
12
12
  component?: ElementType;
13
13
  /** If true, applies the shimmer styles. */
14
14
  hasShimmer?: boolean;
15
- /** DEPRECATED: If true, the typography will not have a bottom margin set */
16
- noMarginBottom?: boolean;
17
15
  /** If true, the text will wrap and not be truncated */
18
16
  noWrap?: boolean;
19
17
  /** Applies the theme typography styles. */
20
18
  variant?: TypographyVariant;
21
19
  }
22
- export declare const DotTypography: ({ ai, ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, hasShimmer, noMarginBottom, noWrap, variant, }: TypographyProps) => import("react/jsx-runtime").JSX.Element;
20
+ export declare const DotTypography: ({ ai, ariaLabel, ariaLevel, ariaRole, className, "data-testid": dataTestId, children, component, hasShimmer, noWrap, variant, }: TypographyProps) => import("react/jsx-runtime").JSX.Element;