@digital-ai/dot-components 4.2.0 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.esm.js CHANGED
@@ -175,7 +175,7 @@ const readOnlyStyles = theme => css`
175
175
  }
176
176
  `;
177
177
 
178
- const rootClassName$1k = 'dot-text-field';
178
+ const rootClassName$1l = 'dot-text-field';
179
179
  const rootSelectClassName = 'dot-select-field';
180
180
  const wrapperClassName$2 = 'dot-label-wrapper';
181
181
  const labelClassName = 'dot-input-label';
@@ -228,7 +228,7 @@ const StyledTextField = styled(TextField)`
228
228
  $maxRows,
229
229
  $minRows
230
230
  }) => css`
231
- &.${rootClassName$1k} {
231
+ &.${rootClassName$1l} {
232
232
  .MuiInputBase-root {
233
233
  margin-bottom: 0;
234
234
  }
@@ -290,7 +290,7 @@ const StyledTextField = styled(TextField)`
290
290
  margin-right: ${theme.spacing(2)};
291
291
  }
292
292
 
293
- &.${rootSelectClassName}, &.${rootClassName$1k} {
293
+ &.${rootSelectClassName}, &.${rootClassName$1l} {
294
294
  .${adornmentIconClassName} {
295
295
  color: ${theme.palette.figma.icon.black};
296
296
  p {
@@ -381,12 +381,12 @@ const StyledTextField = styled(TextField)`
381
381
  `}
382
382
  `;
383
383
 
384
- const rootClassName$1j = 'dot-icon';
384
+ const rootClassName$1k = 'dot-icon';
385
385
  const StyledIcon = styled(Icon)`
386
386
  ${({
387
387
  theme
388
388
  }) => css`
389
- &.${rootClassName$1j} {
389
+ &.${rootClassName$1k} {
390
390
  color: ${theme.palette.figma.icon.black};
391
391
  font-size: 20px;
392
392
 
@@ -427,7 +427,7 @@ const DotIcon = ({
427
427
  iconId,
428
428
  tooltip
429
429
  }) => {
430
- const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
430
+ const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
431
431
  return jsx(DotTooltip, {
432
432
  title: tooltip,
433
433
  children: jsx(StyledIcon, {
@@ -488,7 +488,7 @@ const DotTypography = ({
488
488
  });
489
489
  };
490
490
 
491
- const rootClassName$1i = 'dot-accordion';
491
+ const rootClassName$1j = 'dot-accordion';
492
492
  const summaryClassName = 'dot-accordion-summary';
493
493
  const detailClassName = 'dot-accordion-details';
494
494
  const StyledAccordion = styled(Accordion)`
@@ -499,7 +499,7 @@ const StyledAccordion = styled(Accordion)`
499
499
  background: ${theme.palette.figma.background.level1.white};
500
500
  }
501
501
 
502
- &.${rootClassName$1i} .${summaryClassName} {
502
+ &.${rootClassName$1j} .${summaryClassName} {
503
503
  align-items: center;
504
504
  background: ${theme.palette.figma.background.level1.white};
505
505
  color: ${theme.palette.figma.typography.black};
@@ -544,7 +544,7 @@ const DotAccordion = ({
544
544
  ariaLabel,
545
545
  children,
546
546
  className,
547
- 'data-pendoid': dataPendoId = rootClassName$1i,
547
+ 'data-pendoid': dataPendoId = rootClassName$1j,
548
548
  'data-testid': dataTestId = 'dot-accordion',
549
549
  disabled = false,
550
550
  expanded,
@@ -555,7 +555,7 @@ const DotAccordion = ({
555
555
  summary,
556
556
  noWrap = true
557
557
  }) => {
558
- const rootClasses = useStylesWithRootClass(rootClassName$1i, className);
558
+ const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
559
559
  const [elevation, setElevation] = useState();
560
560
  useEffect(() => {
561
561
  if (onChange && expanded === undefined) {
@@ -606,15 +606,15 @@ const DotAccordion = ({
606
606
  });
607
607
  };
608
608
 
609
- const rootClassName$1h = 'dot-action-toolbar';
609
+ const rootClassName$1i = 'dot-action-toolbar';
610
610
  const StyledToolbar = styled(Toolbar)`
611
611
  ${({
612
612
  theme
613
613
  }) => css`
614
- &.${rootClassName$1h} {
614
+ &.${rootClassName$1i} {
615
615
  border-bottom: 1px solid ${theme.palette.figma.border.default};
616
616
 
617
- .${rootClassName$1k} .MuiInputBase-root {
617
+ .${rootClassName$1l} .MuiInputBase-root {
618
618
  margin-bottom: 0;
619
619
  }
620
620
  }
@@ -628,7 +628,7 @@ const DotActionToolbar = ({
628
628
  'data-testid': dataTestId,
629
629
  variant = 'dense'
630
630
  }) => {
631
- const rootClasses = useStylesWithRootClass(rootClassName$1h, className);
631
+ const rootClasses = useStylesWithRootClass(rootClassName$1i, className);
632
632
  return jsx(StyledToolbar, {
633
633
  "aria-label": ariaLabel,
634
634
  className: rootClasses,
@@ -1698,12 +1698,12 @@ const renderNodeOrTypography = (content, typographyVariant = 'body1') => {
1698
1698
  const checkIfArrowUpPressed = event => event.key === 'ArrowUp';
1699
1699
  const checkIfArrowDownPressed = event => event.key === 'ArrowDown';
1700
1700
 
1701
- const rootClassName$1g = 'dot-alert-banner';
1701
+ const rootClassName$1h = 'dot-alert-banner';
1702
1702
  const StyledAlertBanner = styled(Alert)`
1703
1703
  ${({
1704
1704
  theme
1705
1705
  }) => css`
1706
- &.${rootClassName$1g} {
1706
+ &.${rootClassName$1h} {
1707
1707
  align-items: center;
1708
1708
  box-sizing: border-box;
1709
1709
  min-height: 48px;
@@ -1738,7 +1738,7 @@ const DotAlertBanner = ({
1738
1738
  ariaLabel,
1739
1739
  children,
1740
1740
  className,
1741
- 'data-pendoid': dataPendoId = rootClassName$1g,
1741
+ 'data-pendoid': dataPendoId = rootClassName$1h,
1742
1742
  'data-testid': dataTestId,
1743
1743
  onClose,
1744
1744
  roundedCorners = true,
@@ -1746,7 +1746,7 @@ const DotAlertBanner = ({
1746
1746
  textVariant = 'body1',
1747
1747
  width
1748
1748
  }) => {
1749
- const rootClasses = useStylesWithRootClass(rootClassName$1g, severity, className);
1749
+ const rootClasses = useStylesWithRootClass(rootClassName$1h, severity, className);
1750
1750
  /* For simple string use default component, for everything else use 'div' */
1751
1751
  const typographyComponent = isString$2(children) ? undefined : 'div';
1752
1752
  return jsx(StyledAlertBanner, {
@@ -2424,7 +2424,7 @@ const useDotCoreApiContext = () => {
2424
2424
  return useContext(DotCoreApiContext);
2425
2425
  };
2426
2426
 
2427
- const rootClassName$1f = 'dot-avatar';
2427
+ const rootClassName$1g = 'dot-avatar';
2428
2428
  const avatarSpacing = {
2429
2429
  small: 3,
2430
2430
  medium: 5,
@@ -2434,7 +2434,7 @@ const StyledAvatar = styled(Avatar)`
2434
2434
  ${({
2435
2435
  theme
2436
2436
  }) => css`
2437
- &.${rootClassName$1f} {
2437
+ &.${rootClassName$1g} {
2438
2438
  display: inline-flex;
2439
2439
  background-color: ${({
2440
2440
  color
@@ -2546,7 +2546,7 @@ const DotAvatar = ({
2546
2546
  variant = 'circular',
2547
2547
  style
2548
2548
  }) => {
2549
- const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
2549
+ const rootClasses = useStylesWithRootClass(rootClassName$1g, className);
2550
2550
  const getAvatarColor = () => {
2551
2551
  if ((style === null || style === void 0 ? void 0 : style.color) !== undefined) return 'inherit';
2552
2552
  if (color) return color;
@@ -2585,12 +2585,12 @@ const DotAvatar = ({
2585
2585
  });
2586
2586
  };
2587
2587
 
2588
- const rootClassName$1e = 'dot-button';
2588
+ const rootClassName$1f = 'dot-button';
2589
2589
  const StyledButton = styled(Button)`
2590
2590
  ${({
2591
2591
  theme
2592
2592
  }) => css`
2593
- &.${rootClassName$1e} {
2593
+ &.${rootClassName$1f} {
2594
2594
  background-color: ${theme.palette.figma.primary.normal};
2595
2595
  margin: ${theme.spacing(0.5)};
2596
2596
  padding: ${theme.spacing(0.75, 2)};
@@ -2674,7 +2674,7 @@ const DotButton = forwardRef(({
2674
2674
  autoFocus = false,
2675
2675
  children,
2676
2676
  className,
2677
- 'data-pendoid': dataPendoId = rootClassName$1e,
2677
+ 'data-pendoid': dataPendoId = rootClassName$1f,
2678
2678
  'data-testid': dataTestId,
2679
2679
  disabled = false,
2680
2680
  disableRipple = false,
@@ -2690,7 +2690,7 @@ const DotButton = forwardRef(({
2690
2690
  tooltipPlacement,
2691
2691
  type = 'primary'
2692
2692
  }, ref) => {
2693
- const rootClasses = useStylesWithRootClass(rootClassName$1e, className);
2693
+ const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
2694
2694
  let color;
2695
2695
  let variant;
2696
2696
  switch (type) {
@@ -2714,7 +2714,7 @@ const DotButton = forwardRef(({
2714
2714
  return jsx(DotTooltip, {
2715
2715
  placement: tooltipPlacement,
2716
2716
  title: tooltip,
2717
- "data-testid": `${dataTestId || rootClassName$1e}-tooltip`,
2717
+ "data-testid": `${dataTestId || rootClassName$1f}-tooltip`,
2718
2718
  children: jsx(StyledButton, {
2719
2719
  "aria-label": ariaLabel,
2720
2720
  autoFocus: autoFocus,
@@ -2723,7 +2723,7 @@ const DotButton = forwardRef(({
2723
2723
  },
2724
2724
  color: color,
2725
2725
  "data-pendoid": dataPendoId,
2726
- "data-testid": dataTestId || rootClassName$1e,
2726
+ "data-testid": dataTestId || rootClassName$1f,
2727
2727
  disableRipple: disableRipple,
2728
2728
  disabled: disabled,
2729
2729
  endIcon: endIcon,
@@ -2742,10 +2742,10 @@ const DotButton = forwardRef(({
2742
2742
  });
2743
2743
  });
2744
2744
 
2745
- const rootClassName$1d = 'dot-link';
2745
+ const rootClassName$1e = 'dot-link';
2746
2746
  const StyledLink = styled(Link)`
2747
2747
  ${() => css`
2748
- &.${rootClassName$1d} {
2748
+ &.${rootClassName$1e} {
2749
2749
  cursor: pointer;
2750
2750
 
2751
2751
  &:hover.MuiLink-underlineHover {
@@ -2761,7 +2761,7 @@ const DotLink = ({
2761
2761
  children,
2762
2762
  className,
2763
2763
  color = 'primary',
2764
- 'data-pendoid': dataPendoId = rootClassName$1d,
2764
+ 'data-pendoid': dataPendoId = rootClassName$1e,
2765
2765
  'data-testid': dataTestId,
2766
2766
  href,
2767
2767
  onClick,
@@ -2774,7 +2774,7 @@ const DotLink = ({
2774
2774
  underline = 'always',
2775
2775
  variant = 'body1'
2776
2776
  }) => {
2777
- const rootClasses = useStylesWithRootClass(rootClassName$1d, className);
2777
+ const rootClasses = useStylesWithRootClass(rootClassName$1e, className);
2778
2778
  useEffect(() => {
2779
2779
  // Include a console warning if the link is not a string and no ariaLabel is provided
2780
2780
  if (!isString$2(children) && !ariaLabel) {
@@ -2825,7 +2825,7 @@ const CreateUUID = () => {
2825
2825
  });
2826
2826
  };
2827
2827
 
2828
- const rootClassName$1c = 'dot-list';
2828
+ const rootClassName$1d = 'dot-list';
2829
2829
  const listItemRootClass = 'dot-list-item';
2830
2830
  const nestedListClassName = 'dot-nested-list';
2831
2831
  const nestedDrawerClassName = 'dot-nested-drawer';
@@ -2833,7 +2833,7 @@ const StyledList = styled(List)`
2833
2833
  ${({
2834
2834
  theme
2835
2835
  }) => css`
2836
- &.${rootClassName$1c} {
2836
+ &.${rootClassName$1d} {
2837
2837
  background: ${theme.palette.figma.background.level0.componentsBackground};
2838
2838
 
2839
2839
  .dot-icon {
@@ -2926,12 +2926,12 @@ const DotListDivider = ({
2926
2926
  });
2927
2927
  };
2928
2928
 
2929
- const rootClassName$1b = 'dot-progress';
2929
+ const rootClassName$1c = 'dot-progress';
2930
2930
  const StyledProgress = styled.div`
2931
2931
  ${({
2932
2932
  theme
2933
2933
  }) => css`
2934
- &.${rootClassName$1b} {
2934
+ &.${rootClassName$1c} {
2935
2935
  line-height: 0;
2936
2936
 
2937
2937
  .dot-progress-with-label-wrapper {
@@ -2982,7 +2982,7 @@ const DotProgress = ({
2982
2982
  value,
2983
2983
  variant = 'indeterminate'
2984
2984
  }) => {
2985
- const rootClasses = useStylesWithRootClass(rootClassName$1b, className);
2985
+ const rootClasses = useStylesWithRootClass(rootClassName$1c, className);
2986
2986
  useEffect(() => {
2987
2987
  if (!ariaLabel) {
2988
2988
  console.warn('a11y: DotProgress must have an ariaLabel to describe the progress component');
@@ -3048,13 +3048,13 @@ var variables = /*#__PURE__*/Object.freeze({
3048
3048
  levelTop: levelTop
3049
3049
  });
3050
3050
 
3051
- const rootClassName$1a = 'dot-popper';
3051
+ const rootClassName$1b = 'dot-popper';
3052
3052
  const arrowClassName = 'MuiPopper-arrow';
3053
3053
  const StyledPopper$1 = styled(Popper)`
3054
3054
  ${({
3055
3055
  theme
3056
3056
  }) => css`
3057
- &.${rootClassName$1a} {
3057
+ &.${rootClassName$1b} {
3058
3058
  font-family: ${theme.typography.fontFamily};
3059
3059
  font-size: ${theme.typography.body1.fontSize}px;
3060
3060
 
@@ -3113,7 +3113,7 @@ const StyledPopper$1 = styled(Popper)`
3113
3113
  }
3114
3114
  }
3115
3115
 
3116
- &.${rootClassName$1a}, &.${rootClassName$1a} > .dot-popper-paper {
3116
+ &.${rootClassName$1b}, &.${rootClassName$1b} > .dot-popper-paper {
3117
3117
  background-color: ${theme.palette.figma.background.level1.white};
3118
3118
  }
3119
3119
  `}
@@ -3143,12 +3143,12 @@ const StyledArrow = styled('span')`
3143
3143
  `;
3144
3144
 
3145
3145
  const flyoutMenuClassName = 'dot-flyout-menu';
3146
- const rootClassName$19 = 'dot-menu';
3146
+ const rootClassName$1a = 'dot-menu';
3147
3147
  const StyledPopper = styled(Popper)`
3148
3148
  ${({
3149
3149
  theme
3150
3150
  }) => css`
3151
- &.${rootClassName$1a} {
3151
+ &.${rootClassName$1b} {
3152
3152
  font-family: ${theme.typography.fontFamily};
3153
3153
  font-size: ${theme.typography.body1.fontSize}px;
3154
3154
 
@@ -3158,7 +3158,7 @@ const StyledPopper = styled(Popper)`
3158
3158
  }) => $zIndex === undefined ? `z-index: ${levelSecond};` : `z-index: ${$zIndex};`}
3159
3159
  }
3160
3160
  }
3161
- &.${rootClassName$19}, &.${rootClassName$1a} {
3161
+ &.${rootClassName$1a}, &.${rootClassName$1b} {
3162
3162
  .MuiPaper-root:not(:empty) {
3163
3163
  border: 1px solid ${theme.palette.layer.n100};
3164
3164
  }
@@ -3238,14 +3238,14 @@ const MENU_ITEM_HEIGHT_NORMAL = 48;
3238
3238
  const MENU_ITEM_HEIGHT_DENSE = 36;
3239
3239
  const DEFAULT_MAX_VISIBLE_ITEMS = 7;
3240
3240
 
3241
- const rootClassName$18 = 'dot-ul';
3241
+ const rootClassName$19 = 'dot-ul';
3242
3242
  const listItemClassName$1 = 'dot-li';
3243
3243
  const listItemWithSubmenuClassName = 'dot-li-with-submenu';
3244
3244
  const StyledMenuList = styled(MenuList)`
3245
3245
  ${({
3246
3246
  theme
3247
3247
  }) => css`
3248
- &.${rootClassName$18} {
3248
+ &.${rootClassName$19} {
3249
3249
  background: ${theme.palette.figma.background.level1.white};
3250
3250
 
3251
3251
  .dot-li {
@@ -3341,7 +3341,7 @@ const DotMenuList = forwardRef(({
3341
3341
  onSubMenuCreate,
3342
3342
  selectedKey
3343
3343
  }, ref) => {
3344
- const rootClasses = useStylesWithRootClass(rootClassName$18, className);
3344
+ const rootClasses = useStylesWithRootClass(rootClassName$19, className);
3345
3345
  const [activeSubmenu, setActiveSubmenu] = useState(null);
3346
3346
  const [subItemAnchorEl, setSubItemAnchorEl] = useState(null);
3347
3347
  const openSubmenu = (target, itemKey) => {
@@ -3452,7 +3452,7 @@ const DotMenu = ({
3452
3452
  open = false,
3453
3453
  selectedKey
3454
3454
  }) => {
3455
- const rootClasses = useStylesWithRootClass(rootClassName$19, className, loading ? 'loading' : '');
3455
+ const rootClasses = useStylesWithRootClass(rootClassName$1a, className, loading ? 'loading' : '');
3456
3456
  const isSubmenu = checkIfSubmenu(anchorEl);
3457
3457
  const hasSubItems = checkForSubItems(menuItems);
3458
3458
  // Timeout object is customizable when Menu component is either submenu
@@ -3540,12 +3540,12 @@ const DotMenu = ({
3540
3540
  });
3541
3541
  };
3542
3542
 
3543
- const rootClassName$17 = 'dot-drawer';
3543
+ const rootClassName$18 = 'dot-drawer';
3544
3544
  const StyledDrawer = styled(Drawer)`
3545
3545
  ${({
3546
3546
  theme
3547
3547
  }) => css`
3548
- &.${rootClassName$17} .MuiBackdrop-root {
3548
+ &.${rootClassName$18} .MuiBackdrop-root {
3549
3549
  background-color: ${theme.palette.figma.overlay.default};
3550
3550
  }
3551
3551
 
@@ -3564,12 +3564,12 @@ const StyledDrawer = styled(Drawer)`
3564
3564
  `}
3565
3565
  `;
3566
3566
 
3567
- const rootClassName$16 = 'dot-drawer-header';
3567
+ const rootClassName$17 = 'dot-drawer-header';
3568
3568
  const StyleDrawerHeader = styled.div`
3569
3569
  ${({
3570
3570
  theme
3571
3571
  }) => css`
3572
- &.${rootClassName$16} {
3572
+ &.${rootClassName$17} {
3573
3573
  padding: ${theme.spacing(0, 0, 2)};
3574
3574
  display: flex;
3575
3575
  align-items: center;
@@ -3580,13 +3580,13 @@ const StyleDrawerHeader = styled.div`
3580
3580
  `}
3581
3581
  `;
3582
3582
 
3583
- const rootClassName$15 = 'dot-icon-btn';
3583
+ const rootClassName$16 = 'dot-icon-btn';
3584
3584
  const StyledIconButton = styled(IconButton)`
3585
3585
  ${({
3586
3586
  theme,
3587
3587
  color
3588
3588
  }) => css`
3589
- &.${rootClassName$15} {
3589
+ &.${rootClassName$16} {
3590
3590
  ${color === 'inherit' ? css`
3591
3591
  color: inherit;
3592
3592
  ` : ''}
@@ -3645,7 +3645,7 @@ const DotIconButton = ({
3645
3645
  ariaRole = 'button',
3646
3646
  className,
3647
3647
  color = 'inherit',
3648
- 'data-pendoid': dataPendoId = rootClassName$15,
3648
+ 'data-pendoid': dataPendoId = rootClassName$16,
3649
3649
  'data-testid': dataTestId,
3650
3650
  disableRipple = false,
3651
3651
  disabled = false,
@@ -3658,7 +3658,7 @@ const DotIconButton = ({
3658
3658
  tooltipPlacement
3659
3659
  }) => {
3660
3660
  const rippleClassName = disableRipple ? 'ripple-disabled' : '';
3661
- const rootClasses = useStylesWithRootClass(rootClassName$15, rippleClassName, `shape-${shape}`, className);
3661
+ const rootClasses = useStylesWithRootClass(rootClassName$16, rippleClassName, `shape-${shape}`, className);
3662
3662
  return jsx(DotTooltip, {
3663
3663
  "data-testid": "icon-button-tooltip",
3664
3664
  placement: tooltipPlacement,
@@ -3693,7 +3693,7 @@ const DotDrawerHeader = ({
3693
3693
  onClose,
3694
3694
  variant
3695
3695
  }) => {
3696
- const rootClasses = useStylesWithRootClass(rootClassName$16, className);
3696
+ const rootClasses = useStylesWithRootClass(rootClassName$17, className);
3697
3697
  return jsxs(StyleDrawerHeader, {
3698
3698
  "aria-label": ariaLabel,
3699
3699
  "aria-level": 2,
@@ -3710,10 +3710,10 @@ const DotDrawerHeader = ({
3710
3710
  });
3711
3711
  };
3712
3712
 
3713
- const rootClassName$14 = 'dot-drawer-body';
3713
+ const rootClassName$15 = 'dot-drawer-body';
3714
3714
  const StyleDrawerBody = styled.div`
3715
3715
  ${() => css`
3716
- &.${rootClassName$14} {
3716
+ &.${rootClassName$15} {
3717
3717
  display: flex;
3718
3718
  .dot-drawer-close-button {
3719
3719
  align-self: self-start;
@@ -3734,7 +3734,7 @@ const DotDrawerBody = ({
3734
3734
  onClose,
3735
3735
  variant
3736
3736
  }) => {
3737
- const rootClasses = useStylesWithRootClass(rootClassName$14, className);
3737
+ const rootClasses = useStylesWithRootClass(rootClassName$15, className);
3738
3738
  return jsxs(StyleDrawerBody, {
3739
3739
  "aria-label": ariaLabel,
3740
3740
  className: rootClasses,
@@ -3749,12 +3749,12 @@ const DotDrawerBody = ({
3749
3749
  });
3750
3750
  };
3751
3751
 
3752
- const rootClassName$13 = 'dot-drawer-footer';
3752
+ const rootClassName$14 = 'dot-drawer-footer';
3753
3753
  const StyleDrawerFooter = styled.div`
3754
3754
  ${({
3755
3755
  theme
3756
3756
  }) => css`
3757
- &.${rootClassName$13} {
3757
+ &.${rootClassName$14} {
3758
3758
  padding: ${theme.spacing(2, 0, 0)};
3759
3759
  }
3760
3760
  `}
@@ -3767,7 +3767,7 @@ const DotDrawerFooter = ({
3767
3767
  className,
3768
3768
  'data-testid': dataTestId
3769
3769
  }) => {
3770
- const rootClasses = useStylesWithRootClass(rootClassName$13, className);
3770
+ const rootClasses = useStylesWithRootClass(rootClassName$14, className);
3771
3771
  return jsx(StyleDrawerFooter, {
3772
3772
  "aria-label": ariaLabel,
3773
3773
  className: rootClasses,
@@ -3783,7 +3783,7 @@ const DotDrawer = ({
3783
3783
  ariaRole = 'dialog',
3784
3784
  className,
3785
3785
  children,
3786
- 'data-pendoid': dataPendoId = rootClassName$17,
3786
+ 'data-pendoid': dataPendoId = rootClassName$18,
3787
3787
  'data-testid': dataTestId,
3788
3788
  drawerBodyProps,
3789
3789
  drawerFooterProps,
@@ -3806,7 +3806,7 @@ const DotDrawer = ({
3806
3806
  onClose(event);
3807
3807
  }
3808
3808
  };
3809
- const rootClasses = useStylesWithRootClass(rootClassName$17, className);
3809
+ const rootClasses = useStylesWithRootClass(rootClassName$18, className);
3810
3810
  const backdropEnabled = variant === 'temporary' && !(ModalProps === null || ModalProps === void 0 ? void 0 : ModalProps.hideBackdrop);
3811
3811
  const headerExists = !!drawerHeaderProps;
3812
3812
  const bodyPendoId = drawerBodyProps ? drawerBodyProps['data-pendoid'] : 'drawer-body';
@@ -4264,7 +4264,7 @@ const DotList = ({
4264
4264
  nestedListType = 'expandable',
4265
4265
  width = 240
4266
4266
  }) => {
4267
- const rootClasses = useStylesWithRootClass(rootClassName$1c, className);
4267
+ const rootClasses = useStylesWithRootClass(rootClassName$1d, className);
4268
4268
  const listWidth = typeof width === 'number' ? `${width}px` : width;
4269
4269
  const listRef = useRef();
4270
4270
  const disableCloseOnClickAway = !nestedListCloseOnClickAway && nestedListType === 'expandable';
@@ -4362,12 +4362,12 @@ const DotList = ({
4362
4362
  });
4363
4363
  };
4364
4364
 
4365
- const rootClassName$12 = 'dot-copy-button';
4365
+ const rootClassName$13 = 'dot-copy-button';
4366
4366
  const StyledCopyButton = styled.span`
4367
4367
  ${({
4368
4368
  theme
4369
4369
  }) => css`
4370
- &.${rootClassName$12} .copied-to-clipboard {
4370
+ &.${rootClassName$13} .copied-to-clipboard {
4371
4371
  color: ${theme.palette.figma.success.normal};
4372
4372
 
4373
4373
  &.MuiIcon-fontSizeSmall.button-size-small {
@@ -4393,7 +4393,7 @@ const DotCopyButton = ({
4393
4393
  color = 'inherit',
4394
4394
  copiedTooltip = 'Copied!',
4395
4395
  copyTooltip = 'Copy to clipboard',
4396
- 'data-pendoid': dataPendoId = rootClassName$12,
4396
+ 'data-pendoid': dataPendoId = rootClassName$13,
4397
4397
  'data-testid': dataTestId = 'dot-copy-button',
4398
4398
  disabled = false,
4399
4399
  disableRipple = false,
@@ -4441,7 +4441,7 @@ const DotCopyButton = ({
4441
4441
  return false;
4442
4442
  }, [value, showCopiedIcon, disabled, onClick]);
4443
4443
  return jsxs(StyledCopyButton, {
4444
- className: rootClassName$12,
4444
+ className: rootClassName$13,
4445
4445
  "data-testid": dataTestId,
4446
4446
  children: [!timedShowCopiedIcon && jsx(DotIconButton, {
4447
4447
  ariaLabel: ariaLabel,
@@ -4545,7 +4545,7 @@ const DotInputText = ({
4545
4545
  autoFocus,
4546
4546
  className,
4547
4547
  defaultValue,
4548
- 'data-pendoid': dataPendoId = rootClassName$1k,
4548
+ 'data-pendoid': dataPendoId = rootClassName$1l,
4549
4549
  'data-testid': dataTestId,
4550
4550
  disabled = false,
4551
4551
  error = false,
@@ -4593,7 +4593,7 @@ const DotInputText = ({
4593
4593
  const internalInputRef = useRef(null);
4594
4594
  const textFieldInputRef = inputRef || internalInputRef;
4595
4595
  const [inputTextState, setInputTextState] = useState(getInitialState(value));
4596
- const rootStyles = useStylesWithRootClass(rootClassName$1k, hasError, hasWarning, hasSuccess, readOnly && readOnlyClassName$1);
4596
+ const rootStyles = useStylesWithRootClass(rootClassName$1l, hasError, hasWarning, hasSuccess, readOnly && readOnlyClassName$1);
4597
4597
  useEffect(() => {
4598
4598
  if (value !== inputTextState.inputValue) {
4599
4599
  setInputTextState(getInitialState(value, defaultValue));
@@ -4735,10 +4735,10 @@ const DotInputText = ({
4735
4735
  });
4736
4736
  };
4737
4737
 
4738
- const rootClassName$11 = 'dot-search-input';
4738
+ const rootClassName$12 = 'dot-search-input';
4739
4739
  const StyledSearchInput = styled.span`
4740
4740
  ${() => css`
4741
- &.${rootClassName$11} {
4741
+ &.${rootClassName$12} {
4742
4742
  }
4743
4743
  `}
4744
4744
  `;
@@ -4755,7 +4755,7 @@ function SearchInput({
4755
4755
  tooltip = null,
4756
4756
  value
4757
4757
  }) {
4758
- const rootClasses = useStylesWithRootClass(rootClassName$11, className);
4758
+ const rootClasses = useStylesWithRootClass(rootClassName$12, className);
4759
4759
  const [searchText, setSearchText] = useState(value);
4760
4760
  let previousSearchText = '';
4761
4761
  const handleChange = useCallback(event => {
@@ -5011,12 +5011,12 @@ const recentAppInstancesSetter = (latestInstance, maxRecentItems
5011
5011
  };
5012
5012
  };
5013
5013
 
5014
- const rootClassName$10 = 'dot-app-switcher';
5014
+ const rootClassName$11 = 'dot-app-switcher';
5015
5015
  const StyledAppSwitcher = styled(DotDrawer)`
5016
5016
  ${({
5017
5017
  theme
5018
5018
  }) => css`
5019
- &.${rootClassName$10} {
5019
+ &.${rootClassName$11} {
5020
5020
  .dot-drawer-paper {
5021
5021
  padding: 0;
5022
5022
  width: 382px;
@@ -5126,7 +5126,7 @@ const DotAppSwitcherView = ({
5126
5126
  if (dotCoreApiContext !== null) {
5127
5127
  setSelectedAppType = dotCoreApiContext.setSelectedAppSwitcherAppType;
5128
5128
  }
5129
- const rootClasses = useStylesWithRootClass(rootClassName$10, className);
5129
+ const rootClasses = useStylesWithRootClass(rootClassName$11, className);
5130
5130
  const [appTypeMap, setAppTypeMap] = useState();
5131
5131
  const [appTypeLabels, setAppTypeLabels] = useState();
5132
5132
  const [appTypeMenuItems, setAppTypeMenuItems] = useState();
@@ -5504,12 +5504,12 @@ var SvgLogoDigitalAiWhite = function SvgLogoDigitalAiWhite(_ref, ref) {
5504
5504
  };
5505
5505
  var ForwardRef = /*#__PURE__*/forwardRef(SvgLogoDigitalAiWhite);
5506
5506
 
5507
- const rootClassName$$ = 'dot-sidebar';
5507
+ const rootClassName$10 = 'dot-sidebar';
5508
5508
  const StyledSidebar = styled.aside`
5509
5509
  ${({
5510
5510
  theme
5511
5511
  }) => css`
5512
- &.${rootClassName$$} {
5512
+ &.${rootClassName$10} {
5513
5513
  align-items: stretch;
5514
5514
  background: ${theme.palette.figma.background.level1.white};
5515
5515
  border-width: 0 1px;
@@ -5803,10 +5803,10 @@ const StyledSidebar = styled.aside`
5803
5803
  `}
5804
5804
  `;
5805
5805
 
5806
- const rootClassName$_ = 'dot-truncate-with-tooltip';
5806
+ const rootClassName$$ = 'dot-truncate-with-tooltip';
5807
5807
  const StyledTruncateWithTooltip = styled(Tooltip)`
5808
5808
  ${() => css`
5809
- &.${rootClassName$_} {
5809
+ &.${rootClassName$$} {
5810
5810
  display: block;
5811
5811
  overflow: hidden;
5812
5812
  white-space: nowrap;
@@ -5837,7 +5837,7 @@ const DotTruncateWithTooltip = ({
5837
5837
  label,
5838
5838
  width
5839
5839
  }) => {
5840
- const rootClasses = useStylesWithRootClass(rootClassName$_, className, charactersLimit ? 'dot-characters-limit' : '');
5840
+ const rootClasses = useStylesWithRootClass(rootClassName$$, className, charactersLimit ? 'dot-characters-limit' : '');
5841
5841
  return jsx(StyledTruncateWithTooltip, {
5842
5842
  "aria-label": ariaLabel,
5843
5843
  arrow: arrow,
@@ -5949,7 +5949,7 @@ const DotSidebar = ({
5949
5949
  };
5950
5950
  useKeyPress(collapsable && collapseKey, toggleNavCollapseState, [isOpen, collapsable]);
5951
5951
  const sidebarClasses = useStylesWithRootClass('side-nav', openClass);
5952
- const rootClasses = useStylesWithRootClass(rootClassName$$, openClass, className);
5952
+ const rootClasses = useStylesWithRootClass(rootClassName$10, openClass, className);
5953
5953
  return jsxs(StyledSidebar, {
5954
5954
  "aria-label": ariaLabel,
5955
5955
  className: rootClasses,
@@ -6018,12 +6018,12 @@ const DotSidebar = ({
6018
6018
  });
6019
6019
  };
6020
6020
 
6021
- const rootClassName$Z = 'dot-badge';
6021
+ const rootClassName$_ = 'dot-badge';
6022
6022
  const StyledBadge = styled(Badge)`
6023
6023
  ${({
6024
6024
  theme
6025
6025
  }) => css`
6026
- &.${rootClassName$Z} {
6026
+ &.${rootClassName$_} {
6027
6027
  color: ${theme.palette.figma.typography.black};
6028
6028
  word-break: normal;
6029
6029
 
@@ -6058,7 +6058,7 @@ const DotBadge = ({
6058
6058
  overlap,
6059
6059
  variant = 'dot'
6060
6060
  }) => {
6061
- const rootClasses = useStylesWithRootClass(rootClassName$Z, className);
6061
+ const rootClasses = useStylesWithRootClass(rootClassName$_, className);
6062
6062
  return jsx(StyledBadge, {
6063
6063
  "$badgeColor": badgeColor,
6064
6064
  anchorOrigin: {
@@ -6080,7 +6080,7 @@ const DotBadge = ({
6080
6080
  });
6081
6081
  };
6082
6082
 
6083
- const rootClassName$Y = 'dot-app-toolbar';
6083
+ const rootClassName$Z = 'dot-app-toolbar';
6084
6084
  const denseClassName = 'dense';
6085
6085
  const StyledMainMenu = styled(DotDrawer)`
6086
6086
  ${({
@@ -6120,7 +6120,7 @@ const StyledAppToolbar = styled.header`
6120
6120
  ${({
6121
6121
  theme
6122
6122
  }) => css`
6123
- &.${rootClassName$Y} {
6123
+ &.${rootClassName$Z} {
6124
6124
  align-items: center;
6125
6125
  background: ${theme.palette.figma.appToolbar.background};
6126
6126
  border-bottom: 4px solid ${theme.palette.figma.border.default};
@@ -6242,7 +6242,7 @@ const DotAppToolbar = ({
6242
6242
  const displayAppLogo = appLogo || appLogoSmall;
6243
6243
  const mainMenuRef = useRef(null);
6244
6244
  const denseClass = dense ? denseClassName : '';
6245
- const rootClasses = useStylesWithRootClass(rootClassName$Y, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6245
+ const rootClasses = useStylesWithRootClass(rootClassName$Z, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6246
6246
  const mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
6247
6247
  const targetBreakpoint = useMediaQuery(theme => theme.breakpoints.up('lg'));
6248
6248
  useEffect(() => {
@@ -6372,14 +6372,14 @@ const DotAppToolbar = ({
6372
6372
  }) : appToolbar;
6373
6373
  };
6374
6374
 
6375
- const rootClassName$X = 'dot-autocomplete';
6375
+ const rootClassName$Y = 'dot-autocomplete';
6376
6376
  const inputRootClassName = 'dot-input-root';
6377
6377
  const inputMediumClassName = 'dot-input-medium';
6378
6378
  const StyledAutocomplete = styled(Autocomplete)`
6379
6379
  ${({
6380
6380
  theme
6381
6381
  }) => css`
6382
- &.${rootClassName$X} {
6382
+ &.${rootClassName$Y} {
6383
6383
  &.${inputMediumClassName} .dot-text-field .${inputRootClassName} {
6384
6384
  height: 56px;
6385
6385
  padding-left: ${theme.spacing(2)};
@@ -6416,12 +6416,12 @@ const StyledAutocomplete = styled(Autocomplete)`
6416
6416
  `}
6417
6417
  `;
6418
6418
 
6419
- const rootClassName$W = 'dot-chip';
6419
+ const rootClassName$X = 'dot-chip';
6420
6420
  const StyledChip = styled(Chip)`
6421
6421
  ${({
6422
6422
  theme
6423
6423
  }) => css`
6424
- &.${rootClassName$W} {
6424
+ &.${rootClassName$X} {
6425
6425
  background: ${theme.palette.figma.neutral.normal};
6426
6426
  border-color: ${theme.palette.figma.border.darker};
6427
6427
  color: ${theme.palette.figma.typography.black};
@@ -6527,7 +6527,7 @@ const DotChip = ({
6527
6527
  charactersLimit = DEFAULT_CHARACTERS_LIMIT,
6528
6528
  children,
6529
6529
  className,
6530
- 'data-pendoid': dataPendoId = rootClassName$W,
6530
+ 'data-pendoid': dataPendoId = rootClassName$X,
6531
6531
  'data-testid': dataTestId,
6532
6532
  disabled = false,
6533
6533
  error = false,
@@ -6540,7 +6540,7 @@ const DotChip = ({
6540
6540
  tabIndex
6541
6541
  }) => {
6542
6542
  const errorClass = error ? 'Mui-error' : '';
6543
- const rootClasses = useStylesWithRootClass(rootClassName$W, className, errorClass);
6543
+ const rootClasses = useStylesWithRootClass(rootClassName$X, className, errorClass);
6544
6544
  const getChipLabel = () => {
6545
6545
  if (charactersLimit <= 0 || children.length < charactersLimit) return children;
6546
6546
  const label = `${children.substring(0, charactersLimit)}...`;
@@ -6640,7 +6640,7 @@ const DotAutoComplete = ({
6640
6640
  autoFocus,
6641
6641
  autoHighlight,
6642
6642
  className,
6643
- 'data-pendoid': dataPendoId = rootClassName$X,
6643
+ 'data-pendoid': dataPendoId = rootClassName$Y,
6644
6644
  'data-testid': dataTestId,
6645
6645
  defaultValue,
6646
6646
  dense = true,
@@ -6696,10 +6696,10 @@ const DotAutoComplete = ({
6696
6696
  const popperOpen = !readOnly && (open || isOpened);
6697
6697
  const preventDuplicateInsertion = actionItem === null || actionItem === void 0 ? void 0 : actionItem.preventDuplicateInsertion;
6698
6698
  const textFieldWarningClassName = !error && warning && warningClassName;
6699
- const rootClasses = useStylesWithRootClass(rootClassName$X, size === 'medium' && inputMediumClassName, className);
6700
- const textFieldRootClasses = useStylesWithRootClass(rootClassName$1k, readOnly && readOnlyClassName$1, textFieldWarningClassName);
6699
+ const rootClasses = useStylesWithRootClass(rootClassName$Y, size === 'medium' && inputMediumClassName, className);
6700
+ const textFieldRootClasses = useStylesWithRootClass(rootClassName$1l, readOnly && readOnlyClassName$1, textFieldWarningClassName);
6701
6701
  const inputRootClasses = useStylesWithRootClass(inputRootClassName, !dense && inputMediumClassName);
6702
- const popperClasses = useStylesWithRootClass(rootClassName$1a, popperClassName);
6702
+ const popperClasses = useStylesWithRootClass(rootClassName$1b, popperClassName);
6703
6703
  let highlightedOption = null;
6704
6704
  let textFieldInput;
6705
6705
  const textFieldRef = element => {
@@ -6982,10 +6982,10 @@ const DotAutoComplete = ({
6982
6982
  });
6983
6983
  };
6984
6984
 
6985
- const rootClassName$V = 'dot-avatar-group';
6985
+ const rootClassName$W = 'dot-avatar-group';
6986
6986
  const StyledAvatarGroup = styled(AvatarGroup)`
6987
6987
  ${() => css`
6988
- &.${rootClassName$V} {
6988
+ &.${rootClassName$W} {
6989
6989
  justify-content: flex-end;
6990
6990
 
6991
6991
  .MuiAvatar-root {
@@ -7004,7 +7004,7 @@ const DotAvatarGroup = ({
7004
7004
  max = 3,
7005
7005
  spacing = 'medium'
7006
7006
  }) => {
7007
- const rootClasses = useStylesWithRootClass(rootClassName$V, className);
7007
+ const rootClasses = useStylesWithRootClass(rootClassName$W, className);
7008
7008
  return jsx(StyledAvatarGroup, {
7009
7009
  "aria-label": ariaLabel,
7010
7010
  classes: {
@@ -7019,6 +7019,89 @@ const DotAvatarGroup = ({
7019
7019
  });
7020
7020
  };
7021
7021
 
7022
+ const rootClassName$V = 'dot-avatar-with-details';
7023
+ const StyledAvatarWithDetails = styled.div`
7024
+ ${({
7025
+ theme,
7026
+ $maxSubtitleLines,
7027
+ $maxTitleLines
7028
+ }) => css`
7029
+ &.${rootClassName$V} {
7030
+ gap: ${theme.spacing(2)};
7031
+ display: flex;
7032
+ align-items: center;
7033
+ width: 100%;
7034
+
7035
+ .dot-avatar-with-details-title-and-subtitle {
7036
+ overflow-x: hidden;
7037
+ width: 100%;
7038
+
7039
+ .dot-avatar-with-details-title,
7040
+ .dot-avatar-with-details-subtitle {
7041
+ overflow-wrap: break-word;
7042
+
7043
+ &.max-lines-clamp {
7044
+ display: -webkit-box;
7045
+ -webkit-box-orient: vertical;
7046
+ white-space: normal;
7047
+ overflow: hidden;
7048
+ }
7049
+ }
7050
+ .dot-avatar-with-details-title.max-lines-clamp {
7051
+ -webkit-line-clamp: ${$maxTitleLines};
7052
+ }
7053
+ .dot-avatar-with-details-subtitle.max-lines-clamp {
7054
+ -webkit-line-clamp: ${$maxSubtitleLines};
7055
+ }
7056
+ }
7057
+ }
7058
+ `}
7059
+ `;
7060
+
7061
+ const DotAvatarWithDetails = ({
7062
+ ariaLabel,
7063
+ avatar,
7064
+ className,
7065
+ 'data-pendoid': dataPendoId = rootClassName$V,
7066
+ 'data-testid': dataTestId,
7067
+ subtitle,
7068
+ title
7069
+ }) => {
7070
+ const rootClasses = useStylesWithRootClass(rootClassName$V, className);
7071
+ const titleClasses = useStylesWithRootClass('dot-avatar-with-details-title', title.maxLines ? 'max-lines-clamp' : '');
7072
+ const subtitleClasses = useStylesWithRootClass('dot-avatar-with-details-subtitle', (subtitle === null || subtitle === void 0 ? void 0 : subtitle.maxLines) ? 'max-lines-clamp' : '');
7073
+ return jsxs(StyledAvatarWithDetails, {
7074
+ "aria-label": ariaLabel,
7075
+ className: rootClasses,
7076
+ "data-pendoid": dataPendoId,
7077
+ "data-testid": dataTestId,
7078
+ "$maxSubtitleLines": subtitle === null || subtitle === void 0 ? void 0 : subtitle.maxLines,
7079
+ "$maxTitleLines": title.maxLines,
7080
+ children: [jsx(DotAvatar, Object.assign({}, avatar)), jsxs("div", {
7081
+ className: "dot-avatar-with-details-title-and-subtitle",
7082
+ children: [jsx(DotTooltip, {
7083
+ hoverVisibility: "overflow",
7084
+ title: title.text,
7085
+ children: jsx(DotTypography, {
7086
+ className: titleClasses,
7087
+ "data-testid": "avatar-title",
7088
+ variant: title.typographyVariant || 'subtitle1',
7089
+ children: title.text
7090
+ })
7091
+ }), (subtitle === null || subtitle === void 0 ? void 0 : subtitle.text) && jsx(DotTooltip, {
7092
+ hoverVisibility: "overflow",
7093
+ title: subtitle.text,
7094
+ children: jsx(DotTypography, {
7095
+ className: subtitleClasses,
7096
+ "data-testid": "avatar-subtitle",
7097
+ variant: subtitle.typographyVariant || 'body2',
7098
+ children: subtitle.text
7099
+ })
7100
+ })]
7101
+ })]
7102
+ });
7103
+ };
7104
+
7022
7105
  const rootClassName$U = 'dot-breadcrumbs';
7023
7106
  const breadcrumbsWrapperClass = 'dot-breadcrumbs-wrapper';
7024
7107
  const StyledBreadcrumbsWrapper = styled.div`
@@ -9643,7 +9726,7 @@ const dashboard3 = {
9643
9726
  author_id: 'id3a',
9644
9727
  target_apps: ['AGILITY'],
9645
9728
  external_id: '3',
9646
- name: 'dashboard3',
9729
+ name: 'dummy dashboard 3',
9647
9730
  description: '',
9648
9731
  dashboard_url: 'https://test.com',
9649
9732
  server_url: 'https://test.com',
@@ -9668,7 +9751,7 @@ const dashboard4 = {
9668
9751
  author_id: 'id4a',
9669
9752
  target_apps: ['DEPLOY'],
9670
9753
  external_id: '4',
9671
- name: 'dashboard4',
9754
+ name: 'dummy dashboard',
9672
9755
  description: '',
9673
9756
  dashboard_url: 'https://test.com',
9674
9757
  server_url: 'https://test.com',
@@ -9688,7 +9771,7 @@ const dashboard4 = {
9688
9771
  favorite: false,
9689
9772
  updated_dt: '2023-11-21T04:42:07.951000+00:00'
9690
9773
  };
9691
- ({
9774
+ const dashboard5 = {
9692
9775
  author_fullname: 'Dashboard5 Author',
9693
9776
  author_id: 'id5a',
9694
9777
  target_apps: ['CHANGERISKPREDICTION'],
@@ -9712,9 +9795,9 @@ const dashboard4 = {
9712
9795
  filter_configuration: [],
9713
9796
  favorite: false,
9714
9797
  updated_dt: '2023-11-21T04:42:07.951000+00:00'
9715
- });
9798
+ };
9716
9799
  // Dashboard with in-progress edits
9717
- ({
9800
+ const dashboard6 = {
9718
9801
  author_fullname: 'Dashboard6 Author',
9719
9802
  author_id: 'id6a',
9720
9803
  target_apps: ['AGILITY'],
@@ -9742,7 +9825,8 @@ const dashboard4 = {
9742
9825
  updated_dt: '2023-11-22T06:42:07.952000+00:00',
9743
9826
  is_being_modified: true,
9744
9827
  modified_author_id: 'id123'
9745
- });
9828
+ };
9829
+ const dummyDashboards = [dashboard1, dashboard2, dashboard3, dashboard4, dashboard5, dashboard6];
9746
9830
  const getCategoriesMock = {
9747
9831
  categories: {
9748
9832
  AGILITY: ['Scrum Master', 'DevOps Manager', 'Release Train Engineer', 'Agility Analytics'],
@@ -9925,7 +10009,8 @@ const DotMetadataApiProvider = ({
9925
10009
  }) => {
9926
10010
  if (OpenAPI.BASE === MOCK_API_URL) {
9927
10011
  setDashboardsError(null);
9928
- return Promise.resolve([]);
10012
+ const results = dummyDashboards.filter(dashboard => (name === null || name === void 0 ? void 0 : name.toLowerCase()) === dashboard.name.toLowerCase());
10013
+ return Promise.resolve(results);
9929
10014
  }
9930
10015
  setAccountIdHeader(accountId);
9931
10016
  setDashboardSearchLoading(true);
@@ -10150,7 +10235,7 @@ const StyledSnackbar = styled(Snackbar)`
10150
10235
  .MuiAlert-message {
10151
10236
  word-break: break-word;
10152
10237
  }
10153
- .${rootClassName$1g} {
10238
+ .${rootClassName$1h} {
10154
10239
  align-items: flex-start;
10155
10240
  }
10156
10241
  &.MuiSnackbar-anchorOriginTopLeft,
@@ -11059,9 +11144,10 @@ function DotDashboardDialog({
11059
11144
  validateName(newName);
11060
11145
  }
11061
11146
  }, [validateName]);
11062
- const validateRequiredFields = useCallback(() => {
11063
- return !!formValues.name && !nameError;
11064
- }, [formValues.name, nameError]);
11147
+ const isDescriptionError = description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH;
11148
+ const validateFields = useCallback(() => {
11149
+ return !!formValues.name && !nameError && !isDescriptionError;
11150
+ }, [formValues.name, nameError, isDescriptionError]);
11065
11151
  return jsxs(StyledDashboardDialog, {
11066
11152
  cancelButtonProps: {
11067
11153
  'data-testid': 'cancel-create-dashboard-button'
@@ -11101,8 +11187,8 @@ function DotDashboardDialog({
11101
11187
  value: name
11102
11188
  }), jsx(DotInputText, {
11103
11189
  "data-testid": "dashboard-dialog-description-input",
11104
- error: description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH,
11105
- helperText: description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH && `Description must be ${DASHBOARD_DESCRIPTION_MAX_LENGTH} characters or less`,
11190
+ error: isDescriptionError,
11191
+ helperText: isDescriptionError && `Description must be ${DASHBOARD_DESCRIPTION_MAX_LENGTH} characters or less`,
11106
11192
  id: "description",
11107
11193
  label: "Description",
11108
11194
  multiline: true,
@@ -11153,7 +11239,7 @@ function DotDashboardDialog({
11153
11239
  children: "Cancel"
11154
11240
  }), jsx(DotButton, {
11155
11241
  "data-testid": "save-edit-exit-dashboard-button",
11156
- disabled: dashboardSearchLoading || isLoadingSubmit || !isDirty || !validateRequiredFields(),
11242
+ disabled: dashboardSearchLoading || isLoadingSubmit || !isDirty || !validateFields(),
11157
11243
  onClick: handleSubmitEdit,
11158
11244
  type: "primary",
11159
11245
  children: "Save"
@@ -11764,6 +11850,9 @@ const StyledDotMenu = styled(DotMenu)`
11764
11850
  .dot-ul .dot-li {
11765
11851
  padding: 0;
11766
11852
 
11853
+ .disabled-menu-item {
11854
+ color: ${theme.palette.layer['n200']};
11855
+ }
11767
11856
  .dot-link {
11768
11857
  padding: ${theme.spacing(0.5, 2)};
11769
11858
 
@@ -11782,7 +11871,7 @@ const StyledDotMenu = styled(DotMenu)`
11782
11871
  `}
11783
11872
  `;
11784
11873
 
11785
- const disabledFieldsMessage = 'Dashboard name and description cannot be modified while the dashboard editor is active. Please save your changes and close the editor, if you need to make a name or description change.';
11874
+ const disabledPropsMessage = 'Dashboard properties cannot be modified while the dashboard editor is active. If you need to make property changes, please close the editor.';
11786
11875
  const inProgressEditMessage = 'This is a published dashboard; changes will not be visible to other users until you publish the updated dashboard.';
11787
11876
  function DotDashboardOptionsMenu({
11788
11877
  dashboard,
@@ -11820,6 +11909,7 @@ function DotDashboardOptionsMenu({
11820
11909
  }, [dashboard, onViewMode]);
11821
11910
  const handleEditPropertiesClick = useCallback(() => {
11822
11911
  var _a;
11912
+ if (isEdit) return;
11823
11913
  handleMenuClose();
11824
11914
  setIsEditPropertiesDialogOpen(true);
11825
11915
  if (((_a = dashboard === null || dashboard === void 0 ? void 0 : dashboard.target_apps) === null || _a === void 0 ? void 0 : _a.length) > 0) {
@@ -11832,7 +11922,7 @@ function DotDashboardOptionsMenu({
11832
11922
  } else {
11833
11923
  setCategoryOptions([]);
11834
11924
  }
11835
- }, [dashboard]);
11925
+ }, [dashboard, isEdit]);
11836
11926
  const handleSubmitEditProperties = useCallback((data, isDone) => __awaiter(this, void 0, void 0, function* () {
11837
11927
  return updateDashboard(dashboard.id, {
11838
11928
  name: data.name,
@@ -11864,15 +11954,26 @@ function DotDashboardOptionsMenu({
11864
11954
  });
11865
11955
  }
11866
11956
  if (onUpdatedProperties && !dashboard.is_ootb_dashboard) {
11867
- menuItems.push({
11868
- children: jsx(DotButton, {
11869
- ariaLabel: "Edit dashboard properties",
11870
- type: "text",
11871
- startIcon: jsx(DotIcon, {
11872
- iconId: "edit"
11873
- }),
11874
- children: "Edit properties"
11957
+ let menuItem = jsx(DotButton, {
11958
+ ariaLabel: "Edit dashboard properties",
11959
+ className: isEdit ? 'disabled-menu-item' : '',
11960
+ disabled: isEdit,
11961
+ type: "text",
11962
+ startIcon: jsx(DotIcon, {
11963
+ className: isEdit ? 'disabled-menu-item' : '',
11964
+ iconId: "edit"
11875
11965
  }),
11966
+ children: "Edit properties"
11967
+ });
11968
+ if (isEdit) {
11969
+ menuItem = jsx(DotTooltip, {
11970
+ title: disabledPropsMessage,
11971
+ placement: "left-start",
11972
+ children: menuItem
11973
+ });
11974
+ }
11975
+ menuItems.push({
11976
+ children: menuItem,
11876
11977
  key: 'edit-props'
11877
11978
  });
11878
11979
  }
@@ -12023,9 +12124,6 @@ function DotDashboardOptionsMenu({
12023
12124
  if (dashboard.is_being_modified || dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED) {
12024
12125
  messages.push(inProgressEditMessage);
12025
12126
  }
12026
- if (isEdit) {
12027
- messages.push(disabledFieldsMessage);
12028
- }
12029
12127
  return menuItems.length > 0 ? jsxs(Fragment, {
12030
12128
  children: [jsx(DotDashboardDialog, {
12031
12129
  title: "Edit dashboard properties",
@@ -12860,7 +12958,7 @@ const StyledFormContainer = styled.div`
12860
12958
 
12861
12959
  .${rootClassName$N},
12862
12960
  .${rootClassName$P},
12863
- .${rootClassName$1k},
12961
+ .${rootClassName$1l},
12864
12962
  .${rootSelectClassName},
12865
12963
  .${rootClassName$A},
12866
12964
  .${rootClassName$z} {
@@ -12868,7 +12966,7 @@ const StyledFormContainer = styled.div`
12868
12966
  }
12869
12967
 
12870
12968
  .${wrapperClassName$2} {
12871
- + .${rootClassName$1k},
12969
+ + .${rootClassName$1l},
12872
12970
  .${wrapperClassName$2}
12873
12971
  + .${rootSelectClassName},
12874
12972
  .${wrapperClassName$2}
@@ -17445,7 +17543,7 @@ const DotPopper = ({
17445
17543
  placement
17446
17544
  }) => {
17447
17545
  const [arrowRef, setArrowRef] = useState(null);
17448
- const rootClasses = useStylesWithRootClass(rootClassName$1a, className);
17546
+ const rootClasses = useStylesWithRootClass(rootClassName$1b, className);
17449
17547
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17450
17548
  const handleClickAway = event => {
17451
17549
  if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
@@ -19088,4 +19186,4 @@ const BoardColumnSummary = ({
19088
19186
  });
19089
19187
  };
19090
19188
 
19091
- export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAppLogo, DotAppSwitcher, DotAppToolbar, DotAutoComplete, DotAvatar, DotAvatarGroup, DotBadge, Board as DotBoard, BoardColumn as DotBoardColumn, BoardColumnActionBar as DotBoardColumnActionBar, BoardColumnCollapse as DotBoardColumnCollapse, BoardColumnExpand as DotBoardColumnExpand, BoardColumnHeader as DotBoardColumnHeader, BoardColumnItems as DotBoardColumnItems, BoardColumnSummary as DotBoardColumnSummary, DotBreadcrumbs, DotButton, DotButtonToggle, DotCard, DotCardContent, DotCardFooter, DotCardHeader, DotCarousel, DotCheckbox, DotCheckboxGroup, DotChip, DotChipList, DotClickAwayListener, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputLabel, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage };
19189
+ export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAppLogo, DotAppSwitcher, DotAppToolbar, DotAutoComplete, DotAvatar, DotAvatarGroup, DotAvatarWithDetails, DotBadge, Board as DotBoard, BoardColumn as DotBoardColumn, BoardColumnActionBar as DotBoardColumnActionBar, BoardColumnCollapse as DotBoardColumnCollapse, BoardColumnExpand as DotBoardColumnExpand, BoardColumnHeader as DotBoardColumnHeader, BoardColumnItems as DotBoardColumnItems, BoardColumnSummary as DotBoardColumnSummary, DotBreadcrumbs, DotButton, DotButtonToggle, DotCard, DotCardContent, DotCardFooter, DotCardHeader, DotCarousel, DotCheckbox, DotCheckboxGroup, DotChip, DotChipList, DotClickAwayListener, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputLabel, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digital-ai/dot-components",
3
- "version": "4.2.0",
3
+ "version": "4.3.1",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN <LICENSE.md>",
6
6
  "contributors": [
@@ -0,0 +1,20 @@
1
+ import { CommonProps } from '../CommonProps';
2
+ import { AvatarProps } from '../avatar/Avatar';
3
+ import { TypographyVariant } from '../typography/Typography';
4
+ export interface AvatarTitleProps {
5
+ /** If defined, determines the maximum number of lines (if text exceeds the lines, it is truncated and has a tooltip). */
6
+ maxLines?: number;
7
+ /** The text being shown. */
8
+ text: string;
9
+ /** Determines the typography variant. */
10
+ typographyVariant?: TypographyVariant;
11
+ }
12
+ export interface AvatarWithDetailsProps extends CommonProps {
13
+ /** The props for avatar component. */
14
+ avatar: AvatarProps;
15
+ /** The props for subtitle text component. If defined, it has typography variant `body2` by default. */
16
+ subtitle?: AvatarTitleProps;
17
+ /** The props for title text component. By default, it has typography variant `subtitle1`. */
18
+ title: AvatarTitleProps;
19
+ }
20
+ export declare const DotAvatarWithDetails: ({ ariaLabel, avatar, className, "data-pendoid": dataPendoId, "data-testid": dataTestId, subtitle, title, }: AvatarWithDetailsProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ export declare const rootClassName = "dot-avatar-with-details";
2
+ interface StyledAvatarWithDetailsProps {
3
+ $maxSubtitleLines?: number;
4
+ $maxTitleLines?: number;
5
+ }
6
+ export declare const StyledAvatarWithDetails: import("styled-components").StyledComponent<"div", any, StyledAvatarWithDetailsProps, never>;
7
+ export {};
@@ -3,6 +3,7 @@ export { ApiError } from './core-api/openapi/core/ApiError';
3
3
  export type { AppToolbarProps } from './app-toolbar/AppToolbar';
4
4
  export type { AutoCompleteOption, AutoCompleteProps, AutoCompleteValue, AutocompleteRenderGroupParams, AutocompleteRenderOptionState, FilterOptionsState, } from './auto-complete';
5
5
  export type { AvatarProps } from './avatar/Avatar';
6
+ export type { AvatarTitleProps, AvatarWithDetailsProps, } from './avatar-with-details/AvatarWithDetails';
6
7
  export type { BreadcrumbItem } from './breadcrumbs/Breadcrumbs';
7
8
  export type { ButtonProps, CopyButtonProps, IconButtonProps, IconButtonColor, IconButtonSize, } from './button';
8
9
  export type { ButtonToggleProps, ButtonToggleValue, ButtonToggleOption, ButtonToggleOrientation, ButtonToggleSingleValue, ButtonToggleSize, } from './button-toggle';
@@ -54,6 +55,7 @@ export { DotAppToolbar } from './app-toolbar/AppToolbar';
54
55
  export { DotAutoComplete, parseAutoCompleteValue } from './auto-complete';
55
56
  export { DotAvatar } from './avatar/Avatar';
56
57
  export { DotAvatarGroup } from './avatar-group/AvatarGroup';
58
+ export { DotAvatarWithDetails } from './avatar-with-details/AvatarWithDetails';
57
59
  export { DotBadge } from './badge';
58
60
  export { DotBreadcrumbs } from './breadcrumbs/Breadcrumbs';
59
61
  export { DotButton, DotCopyButton, DotIconButton } from './button';