@digital-ai/dot-components 4.1.1 → 4.3.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
@@ -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`
@@ -9832,7 +9915,7 @@ const categorySort = (a, b) => a.localeCompare(b);
9832
9915
  const metadataKey = isPublishedOnly => isPublishedOnly ? 'published' : 'all';
9833
9916
  const handleUpdateDashboard = (dashboards, updatedDashboard) => {
9834
9917
  updateItemInArray(dashboards, updatedDashboard, ID);
9835
- return dashboards;
9918
+ return dashboards ? [...dashboards] : dashboards;
9836
9919
  };
9837
9920
  const DotMetadataApiContext = createContext(null);
9838
9921
  const accountHeaderKey = 'X-Digitalai-Account-ID';
@@ -9860,6 +9943,7 @@ const DotMetadataApiProvider = ({
9860
9943
  const [accountId, setAccountId] = useState(accountOverrideId);
9861
9944
  const [dashboards, setDashboards] = useState();
9862
9945
  const [dashboardsLoading, setDashboardsLoading] = useState(true);
9946
+ const [dashboardSearchLoading, setDashboardSearchLoading] = useState(false);
9863
9947
  const [metadata, setMetadata] = useState(null);
9864
9948
  const [metadataLoading, setMetadataLoading] = useState(true);
9865
9949
  const [helpContentLoading, setHelpContentLoading] = useState(true);
@@ -9892,6 +9976,7 @@ const DotMetadataApiProvider = ({
9892
9976
  metadataLoading,
9893
9977
  dashboardsError,
9894
9978
  dashboardsLoading,
9979
+ dashboardSearchLoading,
9895
9980
  helpContentLoading,
9896
9981
  openedDashboardDetails,
9897
9982
  platformConsoleUrl,
@@ -9921,14 +10006,16 @@ const DotMetadataApiProvider = ({
9921
10006
  favorite,
9922
10007
  returnErrors = false
9923
10008
  }) => {
10009
+ if (OpenAPI.BASE === MOCK_API_URL) {
10010
+ setDashboardsError(null);
10011
+ return Promise.resolve([]);
10012
+ }
9924
10013
  setAccountIdHeader(accountId);
9925
- setDashboardsLoading(true);
10014
+ setDashboardSearchLoading(true);
9926
10015
  return cancelablePromise(DashboardsService.getDashboardsService(start, count, sort, filter, favorite, q, authorFullname, authorId, biType, description, id, isOotbDashboard, lifecycleState, name, targetApp)).then(response => {
9927
10016
  setDashboardsError(null);
9928
- setDashboardsLoading(false);
9929
10017
  return response.results;
9930
10018
  }).catch(error => {
9931
- setDashboardsLoading(false);
9932
10019
  if (returnErrors) {
9933
10020
  return {
9934
10021
  error: error.message
@@ -9937,7 +10024,7 @@ const DotMetadataApiProvider = ({
9937
10024
  setDashboardsError(error);
9938
10025
  return null;
9939
10026
  }
9940
- });
10027
+ }).finally(() => setDashboardSearchLoading(false));
9941
10028
  },
9942
10029
  deleteDashboard: dashboardId => {
9943
10030
  setAccountIdHeader(accountId);
@@ -10015,6 +10102,12 @@ const DotMetadataApiProvider = ({
10015
10102
  }
10016
10103
  },
10017
10104
  updateDashboard: (dashboardId, dashboard, isSync = false) => __awaiter(void 0, void 0, void 0, function* () {
10105
+ if (OpenAPI.BASE === MOCK_API_URL) {
10106
+ setDashboardsError(null);
10107
+ return Promise.resolve(Object.assign(Object.assign({}, dashboard), {
10108
+ id: dashboardId
10109
+ }));
10110
+ }
10018
10111
  setAccountIdHeader(accountId);
10019
10112
  return cancelablePromise(DashboardsService.patchDashboardsService(dashboardId, dashboard, isSync)).then(response => {
10020
10113
  setDashboardsError(null);
@@ -10029,6 +10122,7 @@ const DotMetadataApiProvider = ({
10029
10122
  const appTypeMetadata = metadata[appType];
10030
10123
  if (key in appTypeMetadata) {
10031
10124
  appTypeMetadata[key]['authors'].sort(authorSort);
10125
+ setMetadataLoading(false);
10032
10126
  return Promise.resolve(appTypeMetadata[key]['authors']);
10033
10127
  }
10034
10128
  } else if (OpenAPI.BASE === MOCK_API_URL) {
@@ -10047,6 +10141,7 @@ const DotMetadataApiProvider = ({
10047
10141
  const appTypeMetadata = metadata[appType];
10048
10142
  if (key in appTypeMetadata) {
10049
10143
  appTypeMetadata[key]['categories'].sort(categorySort);
10144
+ setMetadataLoading(false);
10050
10145
  return Promise.resolve(appTypeMetadata[key]['categories']);
10051
10146
  }
10052
10147
  } else if (OpenAPI.BASE === MOCK_API_URL) {
@@ -10077,7 +10172,7 @@ const DotMetadataApiProvider = ({
10077
10172
  });
10078
10173
  }
10079
10174
  })
10080
- }), [accountId, metadata, metadataLoading, dashboardsError, dashboardsLoading, openedDashboardDetails, platformConsoleUrl, retrieveMetadata]);
10175
+ }), [accountId, metadata, metadataLoading, dashboardsError, dashboardsLoading, dashboardSearchLoading, openedDashboardDetails, platformConsoleUrl, retrieveMetadata]);
10081
10176
  if (apiUrl && OpenAPI.BASE !== apiUrl) {
10082
10177
  OpenAPI.BASE = apiUrl;
10083
10178
  }
@@ -10138,7 +10233,7 @@ const StyledSnackbar = styled(Snackbar)`
10138
10233
  .MuiAlert-message {
10139
10234
  word-break: break-word;
10140
10235
  }
10141
- .${rootClassName$1g} {
10236
+ .${rootClassName$1h} {
10142
10237
  align-items: flex-start;
10143
10238
  }
10144
10239
  &.MuiSnackbar-anchorOriginTopLeft,
@@ -10864,6 +10959,9 @@ const StyledDashboardDialog = styled(DotDialog)`
10864
10959
  .dot-input-select {
10865
10960
  margin-bottom: ${theme.spacing(2)};
10866
10961
  }
10962
+ .disabled-fields-banner {
10963
+ margin-bottom: ${theme.spacing(2)};
10964
+ }
10867
10965
  `}
10868
10966
  `;
10869
10967
  const StyledDialogActions = styled(DialogActions)`
@@ -10905,6 +11003,10 @@ function DotDashboardDialog({
10905
11003
  availableCategories,
10906
11004
  copyDashboard,
10907
11005
  editDashboard,
11006
+ fieldConfig = {
11007
+ apptype: 'disabled'
11008
+ },
11009
+ messages,
10908
11010
  open,
10909
11011
  onClose,
10910
11012
  onSubmit,
@@ -10921,11 +11023,28 @@ function DotDashboardDialog({
10921
11023
  name
10922
11024
  } = formValues;
10923
11025
  const {
11026
+ dashboardSearchLoading,
10924
11027
  searchDashboards
10925
11028
  } = useDotMetadataApiContext();
10926
11029
  const {
10927
11030
  cancelablePromise
10928
11031
  } = useCancelablePromise();
11032
+ const fieldConfigWithDefault = useMemo(() => {
11033
+ let config = fieldConfig;
11034
+ if (!config) {
11035
+ config = {
11036
+ apptype: 'disabled'
11037
+ };
11038
+ } else if (!('apptype' in config)) {
11039
+ config = Object.assign(Object.assign({}, config), {
11040
+ apptype: 'disabled'
11041
+ });
11042
+ }
11043
+ return config;
11044
+ }, [fieldConfig]);
11045
+ const isDisabled = useCallback((key, b = true) => {
11046
+ return b && key in fieldConfigWithDefault && fieldConfigWithDefault[key] === 'disabled';
11047
+ }, [fieldConfigWithDefault]);
10929
11048
  useEffect(() => {
10930
11049
  if (copyDashboard) {
10931
11050
  setFormValues(orig => Object.assign(Object.assign({}, orig), {
@@ -10945,30 +11064,23 @@ function DotDashboardDialog({
10945
11064
  onClose(false);
10946
11065
  };
10947
11066
  }, []);
10948
- const handleSubmit = useCallback(returnToList => __awaiter(this, void 0, void 0, function* () {
11067
+ const handleSubmit = useCallback(isDone => __awaiter(this, void 0, void 0, function* () {
10949
11068
  setIsLoadingSubmit(true);
10950
11069
  const useFormValues = Object.assign(Object.assign({}, formValues), {
10951
11070
  id: editDashboard === null || editDashboard === void 0 ? void 0 : editDashboard.id
10952
11071
  });
10953
11072
  const validName = yield validateName(useFormValues.name);
10954
11073
  if (validName) {
10955
- yield onSubmit(useFormValues, returnToList);
11074
+ yield onSubmit(useFormValues, isDone);
10956
11075
  }
10957
11076
  setIsLoadingSubmit(false);
10958
11077
  }), [formValues, editDashboard]);
10959
11078
  const handleSubmitCreate = useCallback(() => {
10960
- handleSubmit(false);
10961
- }, [handleSubmit]);
10962
- const handleSubmitEditExit = useCallback(() => {
10963
11079
  handleSubmit(true);
10964
11080
  }, [handleSubmit]);
10965
- const handleSubmitEditContinue = useCallback(() => {
10966
- if (isDirty || !onContinue) {
10967
- handleSubmit(false);
10968
- } else {
10969
- onContinue();
10970
- }
10971
- }, [isDirty, handleSubmit, onContinue]);
11081
+ const handleSubmitEdit = useCallback(() => {
11082
+ handleSubmit(false);
11083
+ }, [handleSubmit]);
10972
11084
  const handleChange = useCallback(event => {
10973
11085
  const targetName = event.target.name;
10974
11086
  const value = event.target.value;
@@ -11030,12 +11142,10 @@ function DotDashboardDialog({
11030
11142
  validateName(newName);
11031
11143
  }
11032
11144
  }, [validateName]);
11033
- const validateRequiredFields = () => {
11034
- if (!formValues.name) {
11035
- return false;
11036
- }
11037
- return true;
11038
- };
11145
+ const isDescriptionError = description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH;
11146
+ const validateFields = useCallback(() => {
11147
+ return !!formValues.name && !nameError && !isDescriptionError;
11148
+ }, [formValues.name, nameError, isDescriptionError]);
11039
11149
  return jsxs(StyledDashboardDialog, {
11040
11150
  cancelButtonProps: {
11041
11151
  'data-testid': 'cancel-create-dashboard-button'
@@ -11053,7 +11163,14 @@ function DotDashboardDialog({
11053
11163
  label: 'Continue'
11054
11164
  },
11055
11165
  title: title || 'Create dashboard',
11056
- children: [jsx(DotInputText, {
11166
+ children: [messages === null || messages === void 0 ? void 0 : messages.map(message => jsx(DotAlertBanner, {
11167
+ severity: "info",
11168
+ className: "disabled-fields-banner",
11169
+ "data-testid": "disabled-fields-banner",
11170
+ children: jsx(DotTypography, {
11171
+ children: message
11172
+ })
11173
+ }, message)), jsx(DotInputText, {
11057
11174
  autoFocus: true,
11058
11175
  "data-testid": "dashboard-dialog-name-input",
11059
11176
  error: nameError || name.length > DASHBOARD_NAME_MAX_LENGTH,
@@ -11061,20 +11178,22 @@ function DotDashboardDialog({
11061
11178
  id: "name",
11062
11179
  label: "Dashboard name",
11063
11180
  name: "name",
11181
+ disabled: isDisabled('name'),
11064
11182
  onBlur: handleNameBlur,
11065
11183
  onChange: handleChange,
11066
11184
  required: true,
11067
11185
  value: name
11068
11186
  }), jsx(DotInputText, {
11069
11187
  "data-testid": "dashboard-dialog-description-input",
11070
- error: description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH,
11071
- helperText: description.length > DASHBOARD_DESCRIPTION_MAX_LENGTH && `Description must be ${DASHBOARD_DESCRIPTION_MAX_LENGTH} characters or less`,
11188
+ error: isDescriptionError,
11189
+ helperText: isDescriptionError && `Description must be ${DASHBOARD_DESCRIPTION_MAX_LENGTH} characters or less`,
11072
11190
  id: "description",
11073
11191
  label: "Description",
11074
11192
  multiline: true,
11075
11193
  minRows: 4,
11076
11194
  maxRows: 4,
11077
11195
  name: "description",
11196
+ disabled: isDisabled('description'),
11078
11197
  onChange: handleChange,
11079
11198
  value: description
11080
11199
  }), editDashboard && jsxs(Fragment, {
@@ -11087,7 +11206,7 @@ function DotDashboardDialog({
11087
11206
  id: "dashboard-apptype-select",
11088
11207
  "data-testid": "dashboard-dialog-apptype-input",
11089
11208
  name: "Select application",
11090
- disabled: true,
11209
+ disabled: isDisabled('apptype'),
11091
11210
  value: editDashboard.target_apps[0]
11092
11211
  })]
11093
11212
  }), jsx(DotTypography, {
@@ -11106,6 +11225,7 @@ function DotDashboardDialog({
11106
11225
  placeholder: "Select categories",
11107
11226
  label: "Category",
11108
11227
  required: editDashboard && editDashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED,
11228
+ disabled: isDisabled('categories'),
11109
11229
  value: getCategoryValues()
11110
11230
  }), editDashboard && jsx(Fragment, {
11111
11231
  children: jsxs(StyledDialogActions, {
@@ -11117,16 +11237,10 @@ function DotDashboardDialog({
11117
11237
  children: "Cancel"
11118
11238
  }), jsx(DotButton, {
11119
11239
  "data-testid": "save-edit-exit-dashboard-button",
11120
- disabled: isLoadingSubmit || !isDirty || !validateRequiredFields(),
11121
- onClick: handleSubmitEditExit,
11122
- type: "outlined",
11123
- children: "Save and exit"
11124
- }), jsx(DotButton, {
11125
- "data-testid": "save-edit-continue-dashboard-button",
11126
- disabled: isLoadingSubmit || !validateRequiredFields(),
11127
- onClick: handleSubmitEditContinue,
11240
+ disabled: dashboardSearchLoading || isLoadingSubmit || !isDirty || !validateFields(),
11241
+ onClick: handleSubmitEdit,
11128
11242
  type: "primary",
11129
- children: isDirty ? 'Save and continue' : 'Continue'
11243
+ children: "Save"
11130
11244
  })]
11131
11245
  })
11132
11246
  })]
@@ -11752,6 +11866,8 @@ const StyledDotMenu = styled(DotMenu)`
11752
11866
  `}
11753
11867
  `;
11754
11868
 
11869
+ 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.';
11870
+ const inProgressEditMessage = 'This is a published dashboard; changes will not be visible to other users until you publish the updated dashboard.';
11755
11871
  function DotDashboardOptionsMenu({
11756
11872
  dashboard,
11757
11873
  currentUser,
@@ -11761,12 +11877,19 @@ function DotDashboardOptionsMenu({
11761
11877
  onStartDuplicate,
11762
11878
  onStartStatusChange,
11763
11879
  onStartRevert,
11880
+ onUpdatedProperties,
11764
11881
  onViewOriginal,
11765
11882
  onViewMode,
11766
11883
  onDetails
11767
11884
  }) {
11768
11885
  const [anchorEl, setAnchorEl] = useState(null);
11769
11886
  const [open, setOpen] = useState(false);
11887
+ const [isEditPropertiesDialogOpen, setIsEditPropertiesDialogOpen] = useState(false);
11888
+ const [categoryOptions, setCategoryOptions] = useState();
11889
+ const {
11890
+ getCategories,
11891
+ updateDashboard
11892
+ } = useDotMetadataApiContext();
11770
11893
  const handleMenuClick = useCallback(event => {
11771
11894
  setAnchorEl(event.currentTarget);
11772
11895
  setOpen(orig => !orig);
@@ -11779,6 +11902,34 @@ function DotDashboardOptionsMenu({
11779
11902
  handleMenuClose();
11780
11903
  onViewMode(dashboard, 'edit');
11781
11904
  }, [dashboard, onViewMode]);
11905
+ const handleEditPropertiesClick = useCallback(() => {
11906
+ var _a;
11907
+ handleMenuClose();
11908
+ setIsEditPropertiesDialogOpen(true);
11909
+ if (((_a = dashboard === null || dashboard === void 0 ? void 0 : dashboard.target_apps) === null || _a === void 0 ? void 0 : _a.length) > 0) {
11910
+ getCategories(dashboard.target_apps[0]).then(retrievedCategories => {
11911
+ // group categories for all app types associated with this dashboard
11912
+ const categoryOptionSet = new Set();
11913
+ retrievedCategories.forEach(categoryOptionSet.add, categoryOptionSet);
11914
+ setCategoryOptions(Array.from(categoryOptionSet));
11915
+ });
11916
+ } else {
11917
+ setCategoryOptions([]);
11918
+ }
11919
+ }, [dashboard]);
11920
+ const handleSubmitEditProperties = useCallback((data, isDone) => __awaiter(this, void 0, void 0, function* () {
11921
+ return updateDashboard(dashboard.id, {
11922
+ name: data.name,
11923
+ description: data.description,
11924
+ categories: data.categories,
11925
+ target_apps: data.target_apps
11926
+ }).then(result => {
11927
+ if (result && 'id' in result) {
11928
+ setIsEditPropertiesDialogOpen(false);
11929
+ onUpdatedProperties(result, isDone);
11930
+ }
11931
+ });
11932
+ }), [dashboard]);
11782
11933
  const isDraft = dashboard.lifecycle_state === DashboardView.lifecycle_state.DRAFT;
11783
11934
  const isPublished = dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED;
11784
11935
  const dashboardLocked = isPublished && currentUser && dashboard.is_being_modified && dashboard.modified_author_id !== currentUser.id;
@@ -11796,6 +11947,19 @@ function DotDashboardOptionsMenu({
11796
11947
  key: 'edit'
11797
11948
  });
11798
11949
  }
11950
+ if (onUpdatedProperties && !dashboard.is_ootb_dashboard) {
11951
+ menuItems.push({
11952
+ children: jsx(DotButton, {
11953
+ ariaLabel: "Edit dashboard properties",
11954
+ type: "text",
11955
+ startIcon: jsx(DotIcon, {
11956
+ iconId: "edit"
11957
+ }),
11958
+ children: "Edit properties"
11959
+ }),
11960
+ key: 'edit-props'
11961
+ });
11962
+ }
11799
11963
  if (onStartStatusChange && !dashboard.is_ootb_dashboard && isDraft) {
11800
11964
  menuItems.push({
11801
11965
  key: 'publish',
@@ -11911,6 +12075,9 @@ function DotDashboardOptionsMenu({
11911
12075
  case 'edit':
11912
12076
  handleEditClick();
11913
12077
  break;
12078
+ case 'edit-props':
12079
+ handleEditPropertiesClick();
12080
+ break;
11914
12081
  case 'duplicate':
11915
12082
  onStartDuplicate(dashboard);
11916
12083
  break;
@@ -11933,8 +12100,30 @@ function DotDashboardOptionsMenu({
11933
12100
  }
11934
12101
  handleMenuClose();
11935
12102
  }, [menuItems, handleMenuClose]);
12103
+ const handleCloseEditProperties = useCallback(_isDone => {
12104
+ setIsEditPropertiesDialogOpen(false);
12105
+ }, []);
12106
+ const messages = [];
12107
+ if (dashboard.is_being_modified || dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED) {
12108
+ messages.push(inProgressEditMessage);
12109
+ }
12110
+ if (isEdit) {
12111
+ messages.push(disabledFieldsMessage);
12112
+ }
11936
12113
  return menuItems.length > 0 ? jsxs(Fragment, {
11937
- children: [jsx(DotIconButton, {
12114
+ children: [jsx(DotDashboardDialog, {
12115
+ title: "Edit dashboard properties",
12116
+ availableCategories: categoryOptions,
12117
+ fieldConfig: isEdit ? {
12118
+ name: 'disabled',
12119
+ description: 'disabled'
12120
+ } : undefined,
12121
+ messages: messages,
12122
+ open: isEditPropertiesDialogOpen,
12123
+ onClose: handleCloseEditProperties,
12124
+ onSubmit: handleSubmitEditProperties,
12125
+ editDashboard: dashboard
12126
+ }), jsx(DotIconButton, {
11938
12127
  className: "expand-button",
11939
12128
  "data-testid": "card-header-action-button",
11940
12129
  iconId: "options",
@@ -12064,6 +12253,7 @@ function DotDashboardActions({
12064
12253
  onDeleted,
12065
12254
  onDuplicated,
12066
12255
  onToggleFullscreen,
12256
+ onUpdatedProperties,
12067
12257
  onViewMode,
12068
12258
  onViewOriginal,
12069
12259
  onRevertChanges,
@@ -12215,6 +12405,7 @@ function DotDashboardActions({
12215
12405
  onStartDuplicate: handleStartDuplicateIfConfig,
12216
12406
  onStartDelete: handleStartDeleteIfConfig,
12217
12407
  onStartRevert: handleRevertChangesIfConfig,
12408
+ onUpdatedProperties: onUpdatedProperties,
12218
12409
  onDetails: () => setOpenedDashboardDetails(dashboard),
12219
12410
  currentUser: currentUser ? currentUser : null
12220
12411
  }), onToggleFullscreen && jsx(FullscreenButton, {
@@ -12339,6 +12530,7 @@ function DotDashboardHeader({
12339
12530
  onRevertChanges,
12340
12531
  onViewOriginal,
12341
12532
  onToggleFullscreen,
12533
+ onUpdatedProperties,
12342
12534
  onViewMode,
12343
12535
  showStatus = false,
12344
12536
  modifiedAuthorUser = null
@@ -12412,6 +12604,7 @@ function DotDashboardHeader({
12412
12604
  onDeleted: onDeleted,
12413
12605
  onDuplicated: onDuplicated,
12414
12606
  onToggleFullscreen: onToggleFullscreen,
12607
+ onUpdatedProperties: onUpdatedProperties,
12415
12608
  onViewMode: onViewMode,
12416
12609
  onViewOriginal: onViewOriginal,
12417
12610
  currentUser: currentUser ? currentUser : null
@@ -12751,7 +12944,7 @@ const StyledFormContainer = styled.div`
12751
12944
 
12752
12945
  .${rootClassName$N},
12753
12946
  .${rootClassName$P},
12754
- .${rootClassName$1k},
12947
+ .${rootClassName$1l},
12755
12948
  .${rootSelectClassName},
12756
12949
  .${rootClassName$A},
12757
12950
  .${rootClassName$z} {
@@ -12759,7 +12952,7 @@ const StyledFormContainer = styled.div`
12759
12952
  }
12760
12953
 
12761
12954
  .${wrapperClassName$2} {
12762
- + .${rootClassName$1k},
12955
+ + .${rootClassName$1l},
12763
12956
  .${wrapperClassName$2}
12764
12957
  + .${rootSelectClassName},
12765
12958
  .${wrapperClassName$2}
@@ -17336,7 +17529,7 @@ const DotPopper = ({
17336
17529
  placement
17337
17530
  }) => {
17338
17531
  const [arrowRef, setArrowRef] = useState(null);
17339
- const rootClasses = useStylesWithRootClass(rootClassName$1a, className);
17532
+ const rootClasses = useStylesWithRootClass(rootClassName$1b, className);
17340
17533
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17341
17534
  const handleClickAway = event => {
17342
17535
  if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
@@ -18979,4 +19172,4 @@ const BoardColumnSummary = ({
18979
19172
  });
18980
19173
  };
18981
19174
 
18982
- 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 };
19175
+ 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 };