@digital-ai/dot-components 5.7.0 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/index.esm.js +1343 -898
  2. package/package.json +1 -1
  3. package/src/lib/components/analytics/dashboard-actions/DashboardOptionsMenu.d.ts +3 -1
  4. package/src/lib/components/analytics/dashboard-actions/DashboardPublishConfirm.styles.d.ts +1 -1
  5. package/src/lib/components/analytics/dashboard-dialog/DashboardDialog.d.ts +2 -2
  6. package/src/lib/components/analytics/metadata-api/openapi/core/ApiError.d.ts +3 -1
  7. package/src/lib/components/analytics/metadata-api/openapi/core/ApiRequestOptions.d.ts +2 -1
  8. package/src/lib/components/analytics/metadata-api/openapi/core/CancelablePromise.d.ts +20 -0
  9. package/src/lib/components/analytics/metadata-api/openapi/core/OpenAPI.d.ts +8 -7
  10. package/src/lib/components/analytics/metadata-api/openapi/core/request.d.ts +25 -4
  11. package/src/lib/components/analytics/metadata-api/openapi/index.d.ts +3 -0
  12. package/src/lib/components/analytics/metadata-api/openapi/models/DashboardCreateBody.d.ts +4 -0
  13. package/src/lib/components/analytics/metadata-api/openapi/models/DashboardPatchBody.d.ts +4 -0
  14. package/src/lib/components/analytics/metadata-api/openapi/models/DashboardPutBody.d.ts +4 -0
  15. package/src/lib/components/analytics/metadata-api/openapi/models/DashboardView.d.ts +5 -1
  16. package/src/lib/components/analytics/metadata-api/openapi/models/HelpContentCreateBody.d.ts +1 -1
  17. package/src/lib/components/analytics/metadata-api/openapi/models/HelpContentPutBody.d.ts +1 -1
  18. package/src/lib/components/analytics/metadata-api/openapi/models/X_Digitalai_Account_ID.d.ts +4 -0
  19. package/src/lib/components/analytics/metadata-api/openapi/services/BiService.d.ts +7 -6
  20. package/src/lib/components/analytics/metadata-api/openapi/services/CategoriesService.d.ts +3 -2
  21. package/src/lib/components/analytics/metadata-api/openapi/services/DashboardsService.d.ts +17 -16
  22. package/src/lib/components/analytics/metadata-api/openapi/services/DatalakeService.d.ts +2 -1
  23. package/src/lib/components/analytics/metadata-api/openapi/services/EntitiesService.d.ts +6 -5
  24. package/src/lib/components/analytics/metadata-api/openapi/services/EntityAttributesService.d.ts +7 -6
  25. package/src/lib/components/analytics/metadata-api/openapi/services/EntityClassService.d.ts +6 -5
  26. package/src/lib/components/analytics/metadata-api/openapi/services/HelpContentService.d.ts +8 -7
  27. package/src/lib/components/analytics/metadata-api/openapi/services/MrProxyService.d.ts +5 -4
  28. package/src/lib/components/analytics/metadata-api/openapi/services/OriginInstancesService.d.ts +6 -5
  29. package/src/lib/components/analytics/metadata-api/openapi/services/OriginsService.d.ts +6 -5
  30. package/src/lib/components/analytics/metadata-api/openapi/services/ProductsService.d.ts +11 -10
  31. package/src/lib/components/analytics/metadata-api/openapi/services/UtilityService.d.ts +7 -6
  32. package/src/lib/components/avatar/Avatar.d.ts +1 -1
  33. package/src/lib/components/chat-bubble/ChatBubble.d.ts +15 -0
  34. package/src/lib/components/chat-bubble/ChatBubble.styles.d.ts +9 -0
  35. package/src/lib/components/chat-bubble/index.d.ts +2 -0
  36. package/src/lib/components/icon/Icon.d.ts +1 -1
  37. package/src/lib/components/index.d.ts +4 -0
  38. package/src/lib/components/loading-dots/LoadingDots.d.ts +10 -0
  39. package/src/lib/components/loading-dots/LoadingDots.styles.d.ts +8 -0
  40. package/src/lib/components/loading-dots/index.d.ts +2 -0
  41. package/src/lib/components/progress/AiGradientSvg.d.ts +3 -0
  42. package/src/lib/components/progress/Progress.d.ts +6 -1
  43. package/src/lib/components/progress/Progress.styles.d.ts +5 -1
  44. package/src/lib/components/typography/Typography.d.ts +3 -1
package/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React$1 from 'react';
3
3
  import React__default, { useEffect, useState, useRef, createContext, useMemo, useContext, forwardRef, useCallback, createElement, Fragment as Fragment$1, useLayoutEffect } from 'react';
4
4
  import { Typography, Fade, StyledEngineProvider, Tooltip, InputAdornment, InputLabel, TextField, Icon, Accordion, AccordionSummary, AccordionDetails, AccordionActions, Toolbar, Alert, Avatar, Button, Link, List, ListSubheader, Divider, CircularProgress, Popper, MenuList, MenuItem, Paper, ClickAwayListener, Drawer, IconButton, ListItem, ListItemButton, Collapse, ListItemIcon, ListItemText, Badge, useMediaQuery, Chip, Autocomplete, AvatarGroup, Breadcrumbs, ToggleButtonGroup, ToggleButton, Card, CardContent, CardHeader, FormControlLabel, Checkbox, FormControl, FormGroup, FormLabel, FormHelperText, Dialog, DialogContent, DialogActions, useTheme as useTheme$1, Snackbar, RadioGroup, Radio, Switch, Skeleton, ButtonGroup, Stepper, Step, StepLabel, TablePagination, TableContainer, TableBody, TableCell, TableRow, TableSortLabel, TableHead, Table, Tabs, Tab, Fab, LinearProgress, Slide, Stack, Select } from '@mui/material';
5
- import styled, { css, createGlobalStyle, ThemeProvider as ThemeProvider$1, keyframes } from 'styled-components';
5
+ import styled, { keyframes, css, createGlobalStyle, ThemeProvider as ThemeProvider$1 } from 'styled-components';
6
6
  import { createTheme, ThemeProvider, useTheme } from '@mui/material/styles';
7
7
  import '@digital-ai/dot-icons';
8
8
  import jwt_decode from 'jwt-decode';
@@ -42,14 +42,49 @@ const checkIfOverflowPresentInElementTree = element => {
42
42
  return false;
43
43
  };
44
44
 
45
- const rootClassName$1t = 'dot-typography';
45
+ const rootClassName$1v = 'dot-typography';
46
+ const shimmer = keyframes`
47
+ from {
48
+ background-position: 200% 0;
49
+ }
50
+ to {
51
+ background-position: -200% 0;
52
+ }
53
+ `;
46
54
  const StyledTypography = styled(Typography)`
47
55
  ${({
48
56
  theme
49
57
  }) => css`
50
- &.${rootClassName$1t} {
58
+ &.${rootClassName$1v} {
51
59
  &.dot-typography-ai {
52
60
  background: ${theme.palette.figma.gradient.ai};
61
+ }
62
+
63
+ &.dot-typography-shimmer {
64
+ background-image: linear-gradient(
65
+ 134deg,
66
+ #111 0%,
67
+ #aaa 40%,
68
+ #ddd 50%,
69
+ #aaa 60%,
70
+ #111 100%
71
+ );
72
+ background-size: 200% 100%;
73
+ animation: ${shimmer} 1.5s infinite linear;
74
+ }
75
+
76
+ &.dot-typography-ai.dot-typography-shimmer {
77
+ background-image: linear-gradient(
78
+ 134deg,
79
+ transparent 30%,
80
+ #ddd 50%,
81
+ transparent 70%
82
+ ),
83
+ ${theme.palette.figma.gradient.ai};
84
+ }
85
+
86
+ &.dot-typography-shimmer,
87
+ &.dot-typography-ai {
53
88
  background-clip: text;
54
89
  -webkit-background-clip: text;
55
90
  color: transparent;
@@ -69,11 +104,12 @@ const DotTypography = ({
69
104
  'data-testid': dataTestId,
70
105
  children,
71
106
  component,
107
+ hasShimmer,
72
108
  noMarginBottom,
73
109
  noWrap,
74
110
  variant
75
111
  }) => {
76
- const rootClasses = useStylesWithRootClass(rootClassName$1t, ai ? 'dot-typography-ai' : '', className);
112
+ const rootClasses = useStylesWithRootClass(rootClassName$1v, ai ? 'dot-typography-ai' : '', hasShimmer ? 'dot-typography-shimmer' : '', className);
77
113
  useEffect(() => {
78
114
  if (ariaRole === 'heading' && !ariaLevel) {
79
115
  console.warn('please include ariaLevel when using ariaRole="heading"');
@@ -1409,7 +1445,7 @@ const readOnlyStyles = theme => css`
1409
1445
  }
1410
1446
  `;
1411
1447
 
1412
- const rootClassName$1s = 'dot-text-field';
1448
+ const rootClassName$1u = 'dot-text-field';
1413
1449
  const rootSelectClassName = 'dot-select-field';
1414
1450
  const wrapperClassName$2 = 'dot-label-wrapper';
1415
1451
  const labelClassName = 'dot-input-label';
@@ -1485,7 +1521,7 @@ const StyledTextField = styled(TextField)`
1485
1521
  $maxRows,
1486
1522
  $minRows
1487
1523
  }) => css`
1488
- &.${rootClassName$1s} {
1524
+ &.${rootClassName$1u} {
1489
1525
  .MuiInputBase-root {
1490
1526
  margin-bottom: 0;
1491
1527
 
@@ -1574,7 +1610,7 @@ const StyledTextField = styled(TextField)`
1574
1610
  margin-right: ${theme.spacing(2)};
1575
1611
  }
1576
1612
 
1577
- &.${rootSelectClassName}, &.${rootClassName$1s} {
1613
+ &.${rootSelectClassName}, &.${rootClassName$1u} {
1578
1614
  .${adornmentIconClassName} {
1579
1615
  color: ${theme.palette.figma.icon.gray};
1580
1616
 
@@ -1669,13 +1705,13 @@ const StyledTextField = styled(TextField)`
1669
1705
  `}
1670
1706
  `;
1671
1707
 
1672
- const rootClassName$1r = 'dot-icon';
1708
+ const rootClassName$1t = 'dot-icon';
1673
1709
  const aiIconClassName = 'dot-icon-ai';
1674
1710
  const StyledIcon = styled(Icon)`
1675
1711
  ${({
1676
1712
  theme
1677
1713
  }) => css`
1678
- &.${rootClassName$1r} {
1714
+ &.${rootClassName$1t} {
1679
1715
  color: ${theme.palette.figma.icon.gray};
1680
1716
  font-size: 20px;
1681
1717
 
@@ -1684,7 +1720,7 @@ const StyledIcon = styled(Icon)`
1684
1720
  width: 20px;
1685
1721
  }
1686
1722
 
1687
- &.MuiIcon-fontSizeLarge {
1723
+ &.dot-icon-large {
1688
1724
  font-size: 24px;
1689
1725
 
1690
1726
  i {
@@ -1692,7 +1728,8 @@ const StyledIcon = styled(Icon)`
1692
1728
  width: 24px;
1693
1729
  }
1694
1730
  }
1695
- &.MuiIcon-fontSizeSmall {
1731
+
1732
+ &.dot-icon-small {
1696
1733
  font-size: 18px;
1697
1734
 
1698
1735
  i {
@@ -1701,6 +1738,15 @@ const StyledIcon = styled(Icon)`
1701
1738
  }
1702
1739
  }
1703
1740
 
1741
+ &.dot-icon-xs {
1742
+ font-size: 12px;
1743
+
1744
+ i {
1745
+ height: 12px;
1746
+ width: 12px;
1747
+ }
1748
+ }
1749
+
1704
1750
  &.${warningClassName} {
1705
1751
  color: ${theme.palette.figma.warning.normal};
1706
1752
  }
@@ -1725,7 +1771,7 @@ const DotIcon = ({
1725
1771
  tooltip,
1726
1772
  ai = false
1727
1773
  }) => {
1728
- const rootClasses = useStylesWithRootClass(rootClassName$1r, className, ai ? aiIconClassName : '');
1774
+ const rootClasses = useStylesWithRootClass(rootClassName$1t, className, ai ? aiIconClassName : '', `dot-icon-${fontSize}`);
1729
1775
  return jsx(DotTooltip, {
1730
1776
  disableInteractive: disableInteractive,
1731
1777
  childrenDisplayStyle: "inline-block",
@@ -1737,7 +1783,6 @@ const DotIcon = ({
1737
1783
  root: rootClasses
1738
1784
  },
1739
1785
  "data-testid": dataTestId,
1740
- fontSize: fontSize,
1741
1786
  role: ariaRole,
1742
1787
  children: jsx("i", {
1743
1788
  "aria-label": ariaLabel || `${iconId} icon`,
@@ -1749,7 +1794,7 @@ const DotIcon = ({
1749
1794
  });
1750
1795
  };
1751
1796
 
1752
- const rootClassName$1q = 'dot-accordion';
1797
+ const rootClassName$1s = 'dot-accordion';
1753
1798
  const summaryClassName = 'dot-accordion-summary';
1754
1799
  const detailClassName = 'dot-accordion-details';
1755
1800
  const StyledAccordion = styled(Accordion)`
@@ -1760,7 +1805,7 @@ const StyledAccordion = styled(Accordion)`
1760
1805
  background: ${theme.palette.figma.background.level1.white};
1761
1806
  }
1762
1807
 
1763
- &.${rootClassName$1q} .${summaryClassName} {
1808
+ &.${rootClassName$1s} .${summaryClassName} {
1764
1809
  align-items: center;
1765
1810
  background: ${theme.palette.figma.background.level1.white};
1766
1811
  color: ${theme.palette.figma.typography.black};
@@ -1805,7 +1850,7 @@ const DotAccordion = ({
1805
1850
  ariaLabel,
1806
1851
  children,
1807
1852
  className,
1808
- 'data-pendoid': dataPendoId = rootClassName$1q,
1853
+ 'data-pendoid': dataPendoId = rootClassName$1s,
1809
1854
  'data-testid': dataTestId = 'dot-accordion',
1810
1855
  disabled = false,
1811
1856
  expanded,
@@ -1816,7 +1861,7 @@ const DotAccordion = ({
1816
1861
  summary,
1817
1862
  noWrap = true
1818
1863
  }) => {
1819
- const rootClasses = useStylesWithRootClass(rootClassName$1q, className);
1864
+ const rootClasses = useStylesWithRootClass(rootClassName$1s, className);
1820
1865
  const [elevation, setElevation] = useState();
1821
1866
  useEffect(() => {
1822
1867
  if (onChange && expanded === undefined) {
@@ -1867,15 +1912,15 @@ const DotAccordion = ({
1867
1912
  });
1868
1913
  };
1869
1914
 
1870
- const rootClassName$1p = 'dot-action-toolbar';
1915
+ const rootClassName$1r = 'dot-action-toolbar';
1871
1916
  const StyledToolbar = styled(Toolbar)`
1872
1917
  ${({
1873
1918
  theme
1874
1919
  }) => css`
1875
- &.${rootClassName$1p} {
1920
+ &.${rootClassName$1r} {
1876
1921
  border-bottom: 1px solid ${theme.palette.figma.border.default};
1877
1922
 
1878
- .${rootClassName$1s} .MuiInputBase-root {
1923
+ .${rootClassName$1u} .MuiInputBase-root {
1879
1924
  margin-bottom: 0;
1880
1925
  }
1881
1926
  }
@@ -1889,7 +1934,7 @@ const DotActionToolbar = ({
1889
1934
  'data-testid': dataTestId,
1890
1935
  variant = 'dense'
1891
1936
  }) => {
1892
- const rootClasses = useStylesWithRootClass(rootClassName$1p, className);
1937
+ const rootClasses = useStylesWithRootClass(rootClassName$1r, className);
1893
1938
  return jsx(StyledToolbar, {
1894
1939
  "aria-label": ariaLabel,
1895
1940
  className: rootClasses,
@@ -1899,12 +1944,12 @@ const DotActionToolbar = ({
1899
1944
  });
1900
1945
  };
1901
1946
 
1902
- const rootClassName$1o = 'dot-alert-banner';
1947
+ const rootClassName$1q = 'dot-alert-banner';
1903
1948
  const StyledAlertBanner = styled(Alert)`
1904
1949
  ${({
1905
1950
  theme
1906
1951
  }) => css`
1907
- &.${rootClassName$1o} {
1952
+ &.${rootClassName$1q} {
1908
1953
  align-items: center;
1909
1954
  box-sizing: border-box;
1910
1955
  min-height: 48px;
@@ -1939,7 +1984,7 @@ const DotAlertBanner = ({
1939
1984
  ariaLabel,
1940
1985
  children,
1941
1986
  className,
1942
- 'data-pendoid': dataPendoId = rootClassName$1o,
1987
+ 'data-pendoid': dataPendoId = rootClassName$1q,
1943
1988
  'data-testid': dataTestId,
1944
1989
  onClose,
1945
1990
  roundedCorners = true,
@@ -1947,7 +1992,7 @@ const DotAlertBanner = ({
1947
1992
  textVariant = 'body1',
1948
1993
  width
1949
1994
  }) => {
1950
- const rootClasses = useStylesWithRootClass(rootClassName$1o, severity, className);
1995
+ const rootClasses = useStylesWithRootClass(rootClassName$1q, severity, className);
1951
1996
  /* For simple string use default component, for everything else use 'div' */
1952
1997
  const typographyComponent = isString$2(children) ? undefined : 'div';
1953
1998
  return jsx(StyledAlertBanner, {
@@ -1990,12 +2035,12 @@ const DotAppLogo = ({
1990
2035
  });
1991
2036
  };
1992
2037
 
1993
- const rootClassName$1n = 'dot-annotation';
2038
+ const rootClassName$1p = 'dot-annotation';
1994
2039
  const StyledAnnotation = styled.kbd`
1995
2040
  ${({
1996
2041
  theme
1997
2042
  }) => css`
1998
- &.${rootClassName$1n} {
2043
+ &.${rootClassName$1p} {
1999
2044
  font-family: inherit;
2000
2045
  background-color: ${theme.palette.figma.background.level0.bckgGray};
2001
2046
  color: ${theme.palette.figma.typography.disabled};
@@ -2021,13 +2066,13 @@ const StyledAnnotation = styled.kbd`
2021
2066
 
2022
2067
  const DotAnnotation = ({
2023
2068
  ariaLabel,
2024
- 'data-pendoid': dataPendoId = rootClassName$1n,
2069
+ 'data-pendoid': dataPendoId = rootClassName$1p,
2025
2070
  'data-testid': dataTestId,
2026
2071
  className,
2027
2072
  content,
2028
2073
  type = 'primary'
2029
2074
  }) => {
2030
- const rootClasses = useStylesWithRootClass(rootClassName$1n, className, type === 'secondary' ? 'secondary' : '');
2075
+ const rootClasses = useStylesWithRootClass(rootClassName$1p, className, type === 'secondary' ? 'secondary' : '');
2031
2076
  return jsx(StyledAnnotation, {
2032
2077
  "aria-label": ariaLabel,
2033
2078
  className: rootClasses,
@@ -2076,6 +2121,19 @@ function __awaiter(thisArg, _arguments, P, generator) {
2076
2121
  });
2077
2122
  }
2078
2123
 
2124
+ function __classPrivateFieldGet(receiver, state, kind, f) {
2125
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
2126
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
2127
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
2128
+ }
2129
+
2130
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
2131
+ if (kind === "m") throw new TypeError("Private method is not writable");
2132
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
2133
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
2134
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
2135
+ }
2136
+
2079
2137
  typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
2080
2138
  var e = new Error(message);
2081
2139
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
@@ -2260,7 +2318,7 @@ function getResponseBody$1(response) {
2260
2318
  return null;
2261
2319
  });
2262
2320
  }
2263
- function catchErrors$1(options, result) {
2321
+ function catchErrors(options, result) {
2264
2322
  const errors = Object.assign({
2265
2323
  400: 'Bad Request',
2266
2324
  401: 'Unauthorized',
@@ -2297,7 +2355,7 @@ function request$1(options) {
2297
2355
  statusText: response.statusText,
2298
2356
  body: responseHeader || responseBody
2299
2357
  };
2300
- catchErrors$1(options, result);
2358
+ catchErrors(options, result);
2301
2359
  return result;
2302
2360
  });
2303
2361
  }
@@ -2664,8 +2722,9 @@ const useDotCoreApiContext = () => {
2664
2722
  return useContext(DotCoreApiContext);
2665
2723
  };
2666
2724
 
2667
- const rootClassName$1m = 'dot-avatar';
2725
+ const rootClassName$1o = 'dot-avatar';
2668
2726
  const avatarSpacing = {
2727
+ xs: 2,
2669
2728
  small: 3,
2670
2729
  medium: 5,
2671
2730
  large: 7
@@ -2674,7 +2733,7 @@ const StyledAvatar = styled(Avatar)`
2674
2733
  ${({
2675
2734
  theme
2676
2735
  }) => css`
2677
- &.${rootClassName$1m} {
2736
+ &.${rootClassName$1o} {
2678
2737
  display: inline-flex;
2679
2738
  background-color: ${({
2680
2739
  color
@@ -2704,17 +2763,22 @@ const StyledAvatar = styled(Avatar)`
2704
2763
  margin-bottom: 0;
2705
2764
  }
2706
2765
 
2707
- &.small {
2766
+ &.dot-size-xs {
2767
+ height: ${theme.spacing(avatarSpacing.xs)};
2768
+ width: ${theme.spacing(avatarSpacing.xs)};
2769
+ }
2770
+
2771
+ &.dot-size-small {
2708
2772
  height: ${theme.spacing(avatarSpacing.small)};
2709
2773
  width: ${theme.spacing(avatarSpacing.small)};
2710
2774
  }
2711
2775
 
2712
- &.medium {
2776
+ &.dot-size-medium {
2713
2777
  height: ${theme.spacing(avatarSpacing.medium)};
2714
2778
  width: ${theme.spacing(avatarSpacing.medium)};
2715
2779
  }
2716
2780
 
2717
- &.large {
2781
+ &.dot-size-large {
2718
2782
  height: ${theme.spacing(avatarSpacing.large)};
2719
2783
  width: ${theme.spacing(avatarSpacing.large)};
2720
2784
  }
@@ -2752,7 +2816,7 @@ const AvatarContent = ({
2752
2816
  }
2753
2817
  };
2754
2818
  const getHeadingFromAvatarSize = () => size === 'large' ? 'h1' : 'h3';
2755
- const getIconFontSizeFromAvatarSize = () => size === 'small' ? size : 'medium';
2819
+ const getIconFontSizeFromAvatarSize = () => ['xs', 'small'].includes(size) ? size : 'medium';
2756
2820
  if (type === 'icon' || type === 'image' && !imageSrc) {
2757
2821
  return jsx(DotIcon, {
2758
2822
  ai: ai,
@@ -2764,7 +2828,7 @@ const AvatarContent = ({
2764
2828
  if (type === 'text') {
2765
2829
  return jsx(DotTypography, {
2766
2830
  ai: ai,
2767
- variant: size === 'small' ? 'caption' : getHeadingFromAvatarSize(),
2831
+ variant: ['xs', 'small'].includes(size) ? 'caption' : getHeadingFromAvatarSize(),
2768
2832
  children: parsedNumber() || parsedText()
2769
2833
  });
2770
2834
  }
@@ -2792,7 +2856,7 @@ const DotAvatar = ({
2792
2856
  variant = 'circular',
2793
2857
  style
2794
2858
  }) => {
2795
- const rootClasses = useStylesWithRootClass(rootClassName$1m, className);
2859
+ const rootClasses = useStylesWithRootClass(rootClassName$1o, className);
2796
2860
  const getAvatarColor = () => {
2797
2861
  if ((style === null || style === void 0 ? void 0 : style.color) !== undefined) return 'inherit';
2798
2862
  if (color) return color;
@@ -2806,7 +2870,7 @@ const DotAvatar = ({
2806
2870
  children: jsx(StyledAvatar, {
2807
2871
  alt: alt,
2808
2872
  "aria-label": ariaLabel || alt,
2809
- className: size,
2873
+ className: `dot-size-${size}`,
2810
2874
  classes: {
2811
2875
  root: rootClasses,
2812
2876
  img: 'dot-img'
@@ -2834,12 +2898,12 @@ const DotAvatar = ({
2834
2898
  });
2835
2899
  };
2836
2900
 
2837
- const rootClassName$1l = 'dot-button';
2901
+ const rootClassName$1n = 'dot-button';
2838
2902
  const StyledButton = styled(Button)`
2839
2903
  ${({
2840
2904
  theme
2841
2905
  }) => css`
2842
- &.${rootClassName$1l} {
2906
+ &.${rootClassName$1n} {
2843
2907
  background-color: ${theme.palette.figma.primary.normal};
2844
2908
  margin: ${theme.spacing(0.5)};
2845
2909
  padding: ${theme.spacing(0.75, 2)};
@@ -2992,7 +3056,7 @@ const DotButton = forwardRef(({
2992
3056
  autoFocus = false,
2993
3057
  children,
2994
3058
  className,
2995
- 'data-pendoid': dataPendoId = rootClassName$1l,
3059
+ 'data-pendoid': dataPendoId = rootClassName$1n,
2996
3060
  'data-testid': dataTestId,
2997
3061
  disabled = false,
2998
3062
  disableInteractive,
@@ -3010,7 +3074,7 @@ const DotButton = forwardRef(({
3010
3074
  tooltipPlacement,
3011
3075
  type = 'primary'
3012
3076
  }, ref) => {
3013
- const rootClasses = useStylesWithRootClass(rootClassName$1l, className);
3077
+ const rootClasses = useStylesWithRootClass(rootClassName$1n, className);
3014
3078
  let color;
3015
3079
  let variant;
3016
3080
  switch (type) {
@@ -3041,7 +3105,7 @@ const DotButton = forwardRef(({
3041
3105
  }
3042
3106
  return jsx(DotTooltip, {
3043
3107
  childrenDisplayStyle: "inline-block",
3044
- "data-testid": `${dataTestId || rootClassName$1l}-tooltip`,
3108
+ "data-testid": `${dataTestId || rootClassName$1n}-tooltip`,
3045
3109
  disableInteractive: disableInteractive,
3046
3110
  placement: tooltipPlacement,
3047
3111
  title: tooltip,
@@ -3053,7 +3117,7 @@ const DotButton = forwardRef(({
3053
3117
  },
3054
3118
  color: color,
3055
3119
  "data-pendoid": dataPendoId,
3056
- "data-testid": dataTestId || rootClassName$1l,
3120
+ "data-testid": dataTestId || rootClassName$1n,
3057
3121
  disableRipple: disableRipple,
3058
3122
  disabled: disabled,
3059
3123
  endIcon: endIcon,
@@ -3073,10 +3137,10 @@ const DotButton = forwardRef(({
3073
3137
  });
3074
3138
  });
3075
3139
 
3076
- const rootClassName$1k = 'dot-link';
3140
+ const rootClassName$1m = 'dot-link';
3077
3141
  const StyledLink = styled(Link)`
3078
3142
  ${() => css`
3079
- &.${rootClassName$1k} {
3143
+ &.${rootClassName$1m} {
3080
3144
  cursor: pointer;
3081
3145
 
3082
3146
  &:hover.MuiLink-underlineHover {
@@ -3092,7 +3156,7 @@ const DotLink = ({
3092
3156
  children,
3093
3157
  className,
3094
3158
  color = 'primary',
3095
- 'data-pendoid': dataPendoId = rootClassName$1k,
3159
+ 'data-pendoid': dataPendoId = rootClassName$1m,
3096
3160
  'data-testid': dataTestId,
3097
3161
  href,
3098
3162
  onClick,
@@ -3105,7 +3169,7 @@ const DotLink = ({
3105
3169
  underline = 'always',
3106
3170
  variant = 'body1'
3107
3171
  }) => {
3108
- const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
3172
+ const rootClasses = useStylesWithRootClass(rootClassName$1m, className);
3109
3173
  useEffect(() => {
3110
3174
  // Include a console warning if the link is not a string and no ariaLabel is provided
3111
3175
  if (!isString$2(children) && !ariaLabel) {
@@ -3156,7 +3220,7 @@ const CreateUUID = () => {
3156
3220
  });
3157
3221
  };
3158
3222
 
3159
- const rootClassName$1j = 'dot-list';
3223
+ const rootClassName$1l = 'dot-list';
3160
3224
  const listItemRootClass = 'dot-list-item';
3161
3225
  const nestedListClassName = 'dot-nested-list';
3162
3226
  const nestedDrawerClassName = 'dot-nested-drawer';
@@ -3164,7 +3228,7 @@ const StyledList = styled(List)`
3164
3228
  ${({
3165
3229
  theme
3166
3230
  }) => css`
3167
- &.${rootClassName$1j} {
3231
+ &.${rootClassName$1l} {
3168
3232
  background: ${theme.palette.figma.background.level0.componentsBackground};
3169
3233
 
3170
3234
  .dot-icon {
@@ -3258,14 +3322,27 @@ const DotListDivider = ({
3258
3322
  });
3259
3323
  };
3260
3324
 
3261
- const rootClassName$1i = 'dot-progress';
3325
+ const rootClassName$1k = 'dot-progress';
3262
3326
  const StyledProgress = styled.div`
3263
3327
  ${({
3264
- theme
3328
+ theme,
3329
+ $aiProgressGradientId
3265
3330
  }) => css`
3266
- &.${rootClassName$1i} {
3331
+ &.${rootClassName$1k} {
3267
3332
  line-height: 0;
3268
3333
 
3334
+ .dot-progress-with-ai-wrapper {
3335
+ position: relative;
3336
+ display: inline-flex;
3337
+
3338
+ .dot-avatar {
3339
+ position: absolute;
3340
+ left: 50%;
3341
+ top: 50%;
3342
+ transform: translate(-50%, -50%);
3343
+ }
3344
+ }
3345
+
3269
3346
  .dot-progress-with-label-wrapper {
3270
3347
  position: relative;
3271
3348
  display: inline-flex;
@@ -3290,6 +3367,10 @@ const StyledProgress = styled.div`
3290
3367
  }
3291
3368
 
3292
3369
  .dot-circular-progress {
3370
+ & .MuiCircularProgress-circle {
3371
+ stroke: ${$aiProgressGradientId ? `url(#${$aiProgressGradientId})` : undefined};
3372
+ }
3373
+
3293
3374
  &.MuiCircularProgress-colorPrimary {
3294
3375
  color: ${theme.palette.figma.inProgress.normal};
3295
3376
  }
@@ -3302,7 +3383,40 @@ const StyledProgress = styled.div`
3302
3383
  `}
3303
3384
  `;
3304
3385
 
3386
+ const AiGradientSvg = ({
3387
+ id
3388
+ }) => jsx("svg", {
3389
+ width: 0,
3390
+ height: 0,
3391
+ children: jsx("defs", {
3392
+ children: jsxs("linearGradient", {
3393
+ id: id,
3394
+ x1: "0%",
3395
+ y1: "0%",
3396
+ x2: "100%",
3397
+ y2: "100%",
3398
+ children: [jsx("stop", {
3399
+ offset: "0%",
3400
+ stopColor: "#DBD1FA"
3401
+ }), jsx("stop", {
3402
+ offset: "25%",
3403
+ stopColor: "rgba(182,163,245,0.4)"
3404
+ }), jsx("stop", {
3405
+ offset: "50%",
3406
+ stopColor: "#9275F0"
3407
+ }), jsx("stop", {
3408
+ offset: "100%",
3409
+ stopColor: "#E44EB9"
3410
+ })]
3411
+ })
3412
+ })
3413
+ });
3414
+
3415
+ const AI_PROGRESS_GRADIENT_ID = 'dot-progress-ai-gradient';
3416
+ const AI_PROGRESS_SIZE = 24;
3417
+ const AI_PROGRESS_THICKNESS = 2;
3305
3418
  const DotProgress = ({
3419
+ ai,
3306
3420
  ariaLabel,
3307
3421
  color = 'secondary',
3308
3422
  className,
@@ -3314,7 +3428,9 @@ const DotProgress = ({
3314
3428
  value,
3315
3429
  variant = 'indeterminate'
3316
3430
  }) => {
3317
- const rootClasses = useStylesWithRootClass(rootClassName$1i, className);
3431
+ const rootClasses = useStylesWithRootClass(rootClassName$1k, className);
3432
+ const calculatedSize = ai ? AI_PROGRESS_SIZE : size;
3433
+ const calculatedThickness = ai ? AI_PROGRESS_THICKNESS : thickness;
3318
3434
  useEffect(() => {
3319
3435
  if (!ariaLabel) {
3320
3436
  console.warn('a11y: DotProgress must have an ariaLabel to describe the progress component');
@@ -3327,8 +3443,8 @@ const DotProgress = ({
3327
3443
  color: color,
3328
3444
  "data-testid": dataTestId,
3329
3445
  role: "progressbar",
3330
- size: size,
3331
- thickness: thickness,
3446
+ size: calculatedSize,
3447
+ thickness: calculatedThickness,
3332
3448
  value: value,
3333
3449
  variant: variant
3334
3450
  });
@@ -3338,8 +3454,8 @@ const DotProgress = ({
3338
3454
  children: [jsx(CircularProgress, {
3339
3455
  "aria-label": "background progress",
3340
3456
  className: "dot-progress-background",
3341
- size: size,
3342
- thickness: thickness,
3457
+ size: calculatedSize,
3458
+ thickness: calculatedThickness,
3343
3459
  value: 100,
3344
3460
  variant: "determinate"
3345
3461
  }), circularProgress]
@@ -3347,19 +3463,40 @@ const DotProgress = ({
3347
3463
  }
3348
3464
  return circularProgress;
3349
3465
  };
3350
- return jsx(StyledProgress, {
3351
- className: rootClasses,
3352
- children: jsx(DotTooltip, {
3353
- title: tooltip,
3354
- children: hasPercentageLabel ? jsxs("div", {
3466
+ const renderProgress = () => {
3467
+ if (ai) {
3468
+ return jsxs("div", {
3469
+ className: "dot-progress-with-ai-wrapper",
3470
+ children: [renderCircularProgress(true), jsx(DotAvatar, {
3471
+ ai: true,
3472
+ alt: "AI Avatar",
3473
+ iconId: "ai",
3474
+ size: "xs",
3475
+ type: "icon"
3476
+ })]
3477
+ });
3478
+ }
3479
+ if (hasPercentageLabel) {
3480
+ return jsxs("div", {
3355
3481
  className: "dot-progress-with-label-wrapper",
3356
3482
  children: [renderCircularProgress(true), jsxs(DotTypography, {
3357
3483
  className: "progress-label-typography",
3358
3484
  variant: "caption",
3359
3485
  children: [value, "%"]
3360
3486
  })]
3361
- }) : renderCircularProgress()
3362
- })
3487
+ });
3488
+ }
3489
+ return renderCircularProgress();
3490
+ };
3491
+ return jsxs(StyledProgress, {
3492
+ className: rootClasses,
3493
+ "$aiProgressGradientId": ai ? AI_PROGRESS_GRADIENT_ID : undefined,
3494
+ children: [ai && jsx(AiGradientSvg, {
3495
+ id: AI_PROGRESS_GRADIENT_ID
3496
+ }), jsx(DotTooltip, {
3497
+ title: tooltip,
3498
+ children: renderProgress()
3499
+ })]
3363
3500
  });
3364
3501
  };
3365
3502
 
@@ -3380,13 +3517,13 @@ var variables = /*#__PURE__*/Object.freeze({
3380
3517
  levelTop: levelTop
3381
3518
  });
3382
3519
 
3383
- const rootClassName$1h = 'dot-popper';
3520
+ const rootClassName$1j = 'dot-popper';
3384
3521
  const arrowClassName = 'MuiPopper-arrow';
3385
3522
  const StyledPopper$1 = styled(Popper)`
3386
3523
  ${({
3387
3524
  theme
3388
3525
  }) => css`
3389
- &.${rootClassName$1h} {
3526
+ &.${rootClassName$1j} {
3390
3527
  font-family: ${theme.typography.fontFamily};
3391
3528
  font-size: ${theme.typography.body1.fontSize}px;
3392
3529
 
@@ -3445,7 +3582,7 @@ const StyledPopper$1 = styled(Popper)`
3445
3582
  }
3446
3583
  }
3447
3584
 
3448
- &.${rootClassName$1h}, &.${rootClassName$1h} > .dot-popper-paper {
3585
+ &.${rootClassName$1j}, &.${rootClassName$1j} > .dot-popper-paper {
3449
3586
  background-color: ${theme.palette.figma.background.level1.white};
3450
3587
  }
3451
3588
  `}
@@ -3475,12 +3612,12 @@ const StyledArrow = styled('span')`
3475
3612
  `;
3476
3613
 
3477
3614
  const flyoutMenuClassName = 'dot-flyout-menu';
3478
- const rootClassName$1g = 'dot-menu';
3615
+ const rootClassName$1i = 'dot-menu';
3479
3616
  const StyledPopper = styled(Popper)`
3480
3617
  ${({
3481
3618
  theme
3482
3619
  }) => css`
3483
- &.${rootClassName$1h} {
3620
+ &.${rootClassName$1j} {
3484
3621
  font-family: ${theme.typography.fontFamily};
3485
3622
  font-size: ${theme.typography.body1.fontSize}px;
3486
3623
 
@@ -3490,7 +3627,7 @@ const StyledPopper = styled(Popper)`
3490
3627
  }) => $zIndex === undefined ? `z-index: ${levelSecond};` : `z-index: ${$zIndex};`}
3491
3628
  }
3492
3629
  }
3493
- &.${rootClassName$1g}, &.${rootClassName$1h} {
3630
+ &.${rootClassName$1i}, &.${rootClassName$1j} {
3494
3631
  .MuiPaper-root:not(:empty) {
3495
3632
  border: 1px solid ${theme.palette.layer.n100};
3496
3633
  }
@@ -3570,14 +3707,14 @@ const MENU_ITEM_HEIGHT_NORMAL = 48;
3570
3707
  const MENU_ITEM_HEIGHT_DENSE = 36;
3571
3708
  const DEFAULT_MAX_VISIBLE_ITEMS = 7;
3572
3709
 
3573
- const rootClassName$1f = 'dot-ul';
3710
+ const rootClassName$1h = 'dot-ul';
3574
3711
  const listItemClassName$1 = 'dot-li';
3575
3712
  const listItemWithSubmenuClassName = 'dot-li-with-submenu';
3576
3713
  const StyledMenuList = styled(MenuList)`
3577
3714
  ${({
3578
3715
  theme
3579
3716
  }) => css`
3580
- &.${rootClassName$1f} {
3717
+ &.${rootClassName$1h} {
3581
3718
  background: ${theme.palette.figma.background.level1.white};
3582
3719
 
3583
3720
  .dot-li {
@@ -3679,7 +3816,7 @@ const DotMenuList = forwardRef(({
3679
3816
  onSubMenuCreate,
3680
3817
  selectedKey
3681
3818
  }, ref) => {
3682
- const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
3819
+ const rootClasses = useStylesWithRootClass(rootClassName$1h, className);
3683
3820
  const [activeSubmenu, setActiveSubmenu] = useState(null);
3684
3821
  const [subItemAnchorEl, setSubItemAnchorEl] = useState(null);
3685
3822
  const openSubmenu = (target, itemKey) => {
@@ -3791,7 +3928,7 @@ const DotMenu = ({
3791
3928
  open = false,
3792
3929
  selectedKey
3793
3930
  }) => {
3794
- const rootClasses = useStylesWithRootClass(rootClassName$1g, className, loading ? 'loading' : '');
3931
+ const rootClasses = useStylesWithRootClass(rootClassName$1i, className, loading ? 'loading' : '');
3795
3932
  const isSubmenu = checkIfSubmenu(anchorEl);
3796
3933
  const hasSubItems = checkForSubItems(menuItems);
3797
3934
  // Timeout object is customizable when Menu component is either submenu
@@ -3879,12 +4016,12 @@ const DotMenu = ({
3879
4016
  });
3880
4017
  };
3881
4018
 
3882
- const rootClassName$1e = 'dot-drawer';
4019
+ const rootClassName$1g = 'dot-drawer';
3883
4020
  const StyledDrawer = styled(Drawer)`
3884
4021
  ${({
3885
4022
  theme
3886
4023
  }) => css`
3887
- &.${rootClassName$1e} .MuiBackdrop-root {
4024
+ &.${rootClassName$1g} .MuiBackdrop-root {
3888
4025
  background-color: ${theme.palette.figma.overlay.default};
3889
4026
  }
3890
4027
 
@@ -3903,12 +4040,12 @@ const StyledDrawer = styled(Drawer)`
3903
4040
  `}
3904
4041
  `;
3905
4042
 
3906
- const rootClassName$1d = 'dot-drawer-header';
4043
+ const rootClassName$1f = 'dot-drawer-header';
3907
4044
  const StyleDrawerHeader = styled.div`
3908
4045
  ${({
3909
4046
  theme
3910
4047
  }) => css`
3911
- &.${rootClassName$1d} {
4048
+ &.${rootClassName$1f} {
3912
4049
  padding: ${theme.spacing(0, 0, 2)};
3913
4050
  display: flex;
3914
4051
  align-items: center;
@@ -3919,13 +4056,13 @@ const StyleDrawerHeader = styled.div`
3919
4056
  `}
3920
4057
  `;
3921
4058
 
3922
- const rootClassName$1c = 'dot-icon-btn';
4059
+ const rootClassName$1e = 'dot-icon-btn';
3923
4060
  const StyledIconButton = styled(IconButton)`
3924
4061
  ${({
3925
4062
  theme,
3926
4063
  color
3927
4064
  }) => css`
3928
- &.${rootClassName$1c} {
4065
+ &.${rootClassName$1e} {
3929
4066
  ${color === 'inherit' ? css`
3930
4067
  color: inherit;
3931
4068
  ` : ''}
@@ -3996,7 +4133,7 @@ const StyledIconButton = styled(IconButton)`
3996
4133
  color: inherit;
3997
4134
  }
3998
4135
 
3999
- .dot-icon.MuiIcon-fontSizeSmall {
4136
+ .dot-icon.dot-icon-small {
4000
4137
  padding: 1px;
4001
4138
  }
4002
4139
 
@@ -4011,7 +4148,7 @@ const DotIconButton = ({
4011
4148
  ariaRole = 'button',
4012
4149
  className,
4013
4150
  color = 'inherit',
4014
- 'data-pendoid': dataPendoId = rootClassName$1c,
4151
+ 'data-pendoid': dataPendoId = rootClassName$1e,
4015
4152
  'data-testid': dataTestId,
4016
4153
  disableInteractive,
4017
4154
  disableRipple = false,
@@ -4025,7 +4162,7 @@ const DotIconButton = ({
4025
4162
  tooltipPlacement
4026
4163
  }) => {
4027
4164
  const rippleClassName = disableRipple ? 'ripple-disabled' : '';
4028
- const rootClasses = useStylesWithRootClass(rootClassName$1c, rippleClassName, `shape-${shape}`, className);
4165
+ const rootClasses = useStylesWithRootClass(rootClassName$1e, rippleClassName, `shape-${shape}`, className);
4029
4166
  return jsx(DotTooltip, {
4030
4167
  childrenDisplayStyle: "inline-block",
4031
4168
  "data-testid": "icon-button-tooltip",
@@ -4062,7 +4199,7 @@ const DotDrawerHeader = ({
4062
4199
  onClose,
4063
4200
  variant
4064
4201
  }) => {
4065
- const rootClasses = useStylesWithRootClass(rootClassName$1d, className);
4202
+ const rootClasses = useStylesWithRootClass(rootClassName$1f, className);
4066
4203
  return jsxs(StyleDrawerHeader, {
4067
4204
  "aria-label": ariaLabel,
4068
4205
  "aria-level": 2,
@@ -4079,10 +4216,10 @@ const DotDrawerHeader = ({
4079
4216
  });
4080
4217
  };
4081
4218
 
4082
- const rootClassName$1b = 'dot-drawer-body';
4219
+ const rootClassName$1d = 'dot-drawer-body';
4083
4220
  const StyleDrawerBody = styled.div`
4084
4221
  ${() => css`
4085
- &.${rootClassName$1b} {
4222
+ &.${rootClassName$1d} {
4086
4223
  display: flex;
4087
4224
  .dot-drawer-close-button {
4088
4225
  align-self: self-start;
@@ -4103,7 +4240,7 @@ const DotDrawerBody = ({
4103
4240
  onClose,
4104
4241
  variant
4105
4242
  }) => {
4106
- const rootClasses = useStylesWithRootClass(rootClassName$1b, className);
4243
+ const rootClasses = useStylesWithRootClass(rootClassName$1d, className);
4107
4244
  return jsxs(StyleDrawerBody, {
4108
4245
  "aria-label": ariaLabel,
4109
4246
  className: rootClasses,
@@ -4118,12 +4255,12 @@ const DotDrawerBody = ({
4118
4255
  });
4119
4256
  };
4120
4257
 
4121
- const rootClassName$1a = 'dot-drawer-footer';
4258
+ const rootClassName$1c = 'dot-drawer-footer';
4122
4259
  const StyleDrawerFooter = styled.div`
4123
4260
  ${({
4124
4261
  theme
4125
4262
  }) => css`
4126
- &.${rootClassName$1a} {
4263
+ &.${rootClassName$1c} {
4127
4264
  padding: ${theme.spacing(2, 0, 0)};
4128
4265
  }
4129
4266
  `}
@@ -4136,7 +4273,7 @@ const DotDrawerFooter = ({
4136
4273
  className,
4137
4274
  'data-testid': dataTestId
4138
4275
  }) => {
4139
- const rootClasses = useStylesWithRootClass(rootClassName$1a, className);
4276
+ const rootClasses = useStylesWithRootClass(rootClassName$1c, className);
4140
4277
  return jsx(StyleDrawerFooter, {
4141
4278
  "aria-label": ariaLabel,
4142
4279
  className: rootClasses,
@@ -4152,7 +4289,7 @@ const DotDrawer = ({
4152
4289
  ariaRole = 'dialog',
4153
4290
  className,
4154
4291
  children,
4155
- 'data-pendoid': dataPendoId = rootClassName$1e,
4292
+ 'data-pendoid': dataPendoId = rootClassName$1g,
4156
4293
  'data-testid': dataTestId,
4157
4294
  drawerBodyProps,
4158
4295
  drawerFooterProps,
@@ -4175,7 +4312,7 @@ const DotDrawer = ({
4175
4312
  onClose(event);
4176
4313
  }
4177
4314
  };
4178
- const rootClasses = useStylesWithRootClass(rootClassName$1e, className);
4315
+ const rootClasses = useStylesWithRootClass(rootClassName$1g, className);
4179
4316
  const backdropEnabled = variant === 'temporary' && !(ModalProps === null || ModalProps === void 0 ? void 0 : ModalProps.hideBackdrop);
4180
4317
  const headerExists = !!drawerHeaderProps;
4181
4318
  const bodyPendoId = drawerBodyProps ? drawerBodyProps['data-pendoid'] : 'drawer-body';
@@ -4650,7 +4787,7 @@ const DotList = ({
4650
4787
  nestedListType = 'expandable',
4651
4788
  width = 240
4652
4789
  }) => {
4653
- const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
4790
+ const rootClasses = useStylesWithRootClass(rootClassName$1l, className);
4654
4791
  const listWidth = typeof width === 'number' ? `${width}px` : width;
4655
4792
  const listRef = useRef(undefined);
4656
4793
  const disableCloseOnClickAway = !nestedListCloseOnClickAway && nestedListType === 'expandable';
@@ -4750,12 +4887,12 @@ const DotList = ({
4750
4887
  });
4751
4888
  };
4752
4889
 
4753
- const rootClassName$19 = 'dot-copy-button';
4890
+ const rootClassName$1b = 'dot-copy-button';
4754
4891
  const StyledCopyButton = styled.span`
4755
4892
  ${({
4756
4893
  theme
4757
4894
  }) => css`
4758
- &.${rootClassName$19} .copied-to-clipboard {
4895
+ &.${rootClassName$1b} .copied-to-clipboard {
4759
4896
  color: ${theme.palette.figma.success.normal};
4760
4897
 
4761
4898
  &.MuiIcon-fontSizeSmall.button-size-small {
@@ -4781,7 +4918,7 @@ const DotCopyButton = ({
4781
4918
  color = 'inherit',
4782
4919
  copiedTooltip = 'Copied!',
4783
4920
  copyTooltip = 'Copy to clipboard',
4784
- 'data-pendoid': dataPendoId = rootClassName$19,
4921
+ 'data-pendoid': dataPendoId = rootClassName$1b,
4785
4922
  'data-testid': dataTestId = 'dot-copy-button',
4786
4923
  disableInteractive,
4787
4924
  disabled = false,
@@ -4830,7 +4967,7 @@ const DotCopyButton = ({
4830
4967
  return false;
4831
4968
  }, [value, showCopiedIcon, disabled, onClick]);
4832
4969
  return jsxs(StyledCopyButton, {
4833
- className: rootClassName$19,
4970
+ className: rootClassName$1b,
4834
4971
  "data-testid": dataTestId,
4835
4972
  children: [!timedShowCopiedIcon && jsx(DotIconButton, {
4836
4973
  ariaLabel: ariaLabel,
@@ -4937,7 +5074,7 @@ const DotInputText = ({
4937
5074
  autoFocus,
4938
5075
  className,
4939
5076
  defaultValue,
4940
- 'data-pendoid': dataPendoId = rootClassName$1s,
5077
+ 'data-pendoid': dataPendoId = rootClassName$1u,
4941
5078
  'data-testid': dataTestId,
4942
5079
  disabled = false,
4943
5080
  error = false,
@@ -4986,7 +5123,7 @@ const DotInputText = ({
4986
5123
  const internalInputRef = useRef(null);
4987
5124
  const textFieldInputRef = inputRef || internalInputRef;
4988
5125
  const [inputTextState, setInputTextState] = useState(getInitialState(value));
4989
- const rootStyles = useStylesWithRootClass(rootClassName$1s, hasError, hasWarning, hasSuccess, isAiEnabled, readOnly && readOnlyClassName$1);
5126
+ const rootStyles = useStylesWithRootClass(rootClassName$1u, hasError, hasWarning, hasSuccess, isAiEnabled, readOnly && readOnlyClassName$1);
4990
5127
  useEffect(() => {
4991
5128
  if (value !== inputTextState.inputValue) {
4992
5129
  setInputTextState(getInitialState(value, defaultValue));
@@ -5129,10 +5266,10 @@ const DotInputText = ({
5129
5266
  });
5130
5267
  };
5131
5268
 
5132
- const rootClassName$18 = 'dot-search-input';
5269
+ const rootClassName$1a = 'dot-search-input';
5133
5270
  const StyledSearchInput = styled.span`
5134
5271
  ${() => css`
5135
- &.${rootClassName$18} {
5272
+ &.${rootClassName$1a} {
5136
5273
  }
5137
5274
  `}
5138
5275
  `;
@@ -5149,7 +5286,7 @@ function SearchInput({
5149
5286
  tooltip = null,
5150
5287
  value
5151
5288
  }) {
5152
- const rootClasses = useStylesWithRootClass(rootClassName$18, className);
5289
+ const rootClasses = useStylesWithRootClass(rootClassName$1a, className);
5153
5290
  const [searchText, setSearchText] = useState(value);
5154
5291
  let previousSearchText = '';
5155
5292
  const handleChange = useCallback(event => {
@@ -5405,12 +5542,12 @@ const recentAppInstancesSetter = (latestInstance, maxRecentItems
5405
5542
  };
5406
5543
  };
5407
5544
 
5408
- const rootClassName$17 = 'dot-app-switcher';
5545
+ const rootClassName$19 = 'dot-app-switcher';
5409
5546
  const StyledAppSwitcher = styled(DotDrawer)`
5410
5547
  ${({
5411
5548
  theme
5412
5549
  }) => css`
5413
- &.${rootClassName$17} {
5550
+ &.${rootClassName$19} {
5414
5551
  .dot-drawer-paper {
5415
5552
  padding: 0;
5416
5553
  width: 382px;
@@ -5520,7 +5657,7 @@ const DotAppSwitcherView = ({
5520
5657
  if (dotCoreApiContext !== null) {
5521
5658
  setSelectedAppType = dotCoreApiContext.setSelectedAppSwitcherAppType;
5522
5659
  }
5523
- const rootClasses = useStylesWithRootClass(rootClassName$17, className);
5660
+ const rootClasses = useStylesWithRootClass(rootClassName$19, className);
5524
5661
  const [appTypeMap, setAppTypeMap] = useState();
5525
5662
  const [appTypeLabels, setAppTypeLabels] = useState();
5526
5663
  const [appTypeMenuItems, setAppTypeMenuItems] = useState();
@@ -5898,12 +6035,12 @@ var SvgLogoDigitalAiWhite = function SvgLogoDigitalAiWhite(_ref, ref) {
5898
6035
  };
5899
6036
  var ForwardRef = /*#__PURE__*/forwardRef(SvgLogoDigitalAiWhite);
5900
6037
 
5901
- const rootClassName$16 = 'dot-sidebar';
6038
+ const rootClassName$18 = 'dot-sidebar';
5902
6039
  const StyledSidebar = styled.aside`
5903
6040
  ${({
5904
6041
  theme
5905
6042
  }) => css`
5906
- &.${rootClassName$16} {
6043
+ &.${rootClassName$18} {
5907
6044
  align-items: stretch;
5908
6045
  background: ${theme.palette.figma.background.level1.white};
5909
6046
  border-width: 0 1px;
@@ -6197,10 +6334,10 @@ const StyledSidebar = styled.aside`
6197
6334
  `}
6198
6335
  `;
6199
6336
 
6200
- const rootClassName$15 = 'dot-truncate-with-tooltip';
6337
+ const rootClassName$17 = 'dot-truncate-with-tooltip';
6201
6338
  const StyledTruncateWithTooltip = styled(Tooltip)`
6202
6339
  ${() => css`
6203
- &.${rootClassName$15} {
6340
+ &.${rootClassName$17} {
6204
6341
  display: block;
6205
6342
  overflow: hidden;
6206
6343
  white-space: nowrap;
@@ -6231,7 +6368,7 @@ const DotTruncateWithTooltip = ({
6231
6368
  label,
6232
6369
  width
6233
6370
  }) => {
6234
- const rootClasses = useStylesWithRootClass(rootClassName$15, className, charactersLimit ? 'dot-characters-limit' : '');
6371
+ const rootClasses = useStylesWithRootClass(rootClassName$17, className, charactersLimit ? 'dot-characters-limit' : '');
6235
6372
  return jsx(StyledTruncateWithTooltip, {
6236
6373
  "aria-label": ariaLabel,
6237
6374
  arrow: arrow,
@@ -6345,7 +6482,7 @@ const DotSidebar = ({
6345
6482
  keys: collapseKeys
6346
6483
  }, toggleNavCollapseState, [isOpen, collapsable]);
6347
6484
  const sidebarClasses = useStylesWithRootClass('side-nav', openClass);
6348
- const rootClasses = useStylesWithRootClass(rootClassName$16, openClass, className);
6485
+ const rootClasses = useStylesWithRootClass(rootClassName$18, openClass, className);
6349
6486
  return jsxs(StyledSidebar, {
6350
6487
  "aria-label": ariaLabel,
6351
6488
  className: rootClasses,
@@ -6421,12 +6558,12 @@ const DotSidebar = ({
6421
6558
  });
6422
6559
  };
6423
6560
 
6424
- const rootClassName$14 = 'dot-badge';
6561
+ const rootClassName$16 = 'dot-badge';
6425
6562
  const StyledBadge = styled(Badge)`
6426
6563
  ${({
6427
6564
  theme
6428
6565
  }) => css`
6429
- &.${rootClassName$14} {
6566
+ &.${rootClassName$16} {
6430
6567
  color: ${theme.palette.figma.typography.black};
6431
6568
  word-break: normal;
6432
6569
 
@@ -6461,7 +6598,7 @@ const DotBadge = ({
6461
6598
  overlap,
6462
6599
  variant = 'dot'
6463
6600
  }) => {
6464
- const rootClasses = useStylesWithRootClass(rootClassName$14, className);
6601
+ const rootClasses = useStylesWithRootClass(rootClassName$16, className);
6465
6602
  return jsx(StyledBadge, {
6466
6603
  "$badgeColor": badgeColor,
6467
6604
  anchorOrigin: {
@@ -6483,7 +6620,7 @@ const DotBadge = ({
6483
6620
  });
6484
6621
  };
6485
6622
 
6486
- const rootClassName$13 = 'dot-app-toolbar';
6623
+ const rootClassName$15 = 'dot-app-toolbar';
6487
6624
  const denseClassName = 'dense';
6488
6625
  const StyledMainMenu = styled(DotDrawer)`
6489
6626
  ${({
@@ -6523,7 +6660,7 @@ const StyledAppToolbar = styled.header`
6523
6660
  ${({
6524
6661
  theme
6525
6662
  }) => css`
6526
- &.${rootClassName$13} {
6663
+ &.${rootClassName$15} {
6527
6664
  align-items: center;
6528
6665
  background: ${theme.palette.figma.appToolbar.background};
6529
6666
  border-bottom: 4px solid ${theme.palette.figma.border.default};
@@ -6652,7 +6789,7 @@ const DotAppToolbar = ({
6652
6789
  const displayAppLogo = appLogo || appLogoSmall;
6653
6790
  const mainMenuRef = useRef(null);
6654
6791
  const denseClass = dense ? denseClassName : '';
6655
- const rootClasses = useStylesWithRootClass(rootClassName$13, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6792
+ const rootClasses = useStylesWithRootClass(rootClassName$15, className, denseClass, showMainMenu ? '' : 'without-menu-icon');
6656
6793
  const mainMenuClasses = useStylesWithRootClass('dot-main-menu', denseClass, menuOpen ? 'open' : '');
6657
6794
  const targetBreakpoint = useMediaQuery(theme => theme.breakpoints.up('lg'));
6658
6795
  useEffect(() => {
@@ -6804,12 +6941,12 @@ const DotAppToolbar = ({
6804
6941
  }) : appToolbar;
6805
6942
  };
6806
6943
 
6807
- const rootClassName$12 = 'dot-chip';
6944
+ const rootClassName$14 = 'dot-chip';
6808
6945
  const StyledChip = styled(Chip)`
6809
6946
  ${({
6810
6947
  theme
6811
6948
  }) => css`
6812
- &.${rootClassName$12} {
6949
+ &.${rootClassName$14} {
6813
6950
  background: ${theme.palette.figma.neutral.normal};
6814
6951
  border-color: ${theme.palette.figma.border.darker};
6815
6952
  color: ${theme.palette.figma.typography.black};
@@ -6915,7 +7052,7 @@ const DotChip = ({
6915
7052
  charactersLimit = DEFAULT_CHARACTERS_LIMIT,
6916
7053
  children,
6917
7054
  className,
6918
- 'data-pendoid': dataPendoId = rootClassName$12,
7055
+ 'data-pendoid': dataPendoId = rootClassName$14,
6919
7056
  'data-testid': dataTestId,
6920
7057
  disabled = false,
6921
7058
  error = false,
@@ -6929,7 +7066,7 @@ const DotChip = ({
6929
7066
  tooltipProps
6930
7067
  }) => {
6931
7068
  const errorClass = error ? 'Mui-error' : '';
6932
- const rootClasses = useStylesWithRootClass(rootClassName$12, className, errorClass);
7069
+ const rootClasses = useStylesWithRootClass(rootClassName$14, className, errorClass);
6933
7070
  const isTruncated = charactersLimit > 0 && children.length > charactersLimit;
6934
7071
  const getChipLabelWithTooltip = label => jsx(DotTooltip, Object.assign({}, tooltipProps, {
6935
7072
  hoverVisibility: "always",
@@ -6965,7 +7102,7 @@ const DotChip = ({
6965
7102
  });
6966
7103
  };
6967
7104
 
6968
- const rootClassName$11 = 'dot-autocomplete';
7105
+ const rootClassName$13 = 'dot-autocomplete';
6969
7106
  const inputRootClassName = 'dot-input-root';
6970
7107
  const inputMediumClassName = 'dot-input-medium';
6971
7108
  const inputAiClassName = 'dot-input-ai';
@@ -6973,7 +7110,7 @@ const StyledAutocomplete = styled(Autocomplete)`
6973
7110
  ${({
6974
7111
  theme
6975
7112
  }) => css`
6976
- &.${rootClassName$11} {
7113
+ &.${rootClassName$13} {
6977
7114
  &.${inputMediumClassName} .dot-text-field .${inputRootClassName} {
6978
7115
  height: 56px;
6979
7116
  padding-left: ${theme.spacing(2)};
@@ -7072,8 +7209,8 @@ const isEmptyValue = value => {
7072
7209
  return !value;
7073
7210
  }
7074
7211
  };
7075
- const getRootClassNames = (className, size) => useStylesWithRootClass(rootClassName$11, size === 'medium' && inputMediumClassName, className);
7076
- const getTextFieldRootClassNames = (textFieldWarningClassName, isReadOnly) => useStylesWithRootClass(rootClassName$1s, isReadOnly && readOnlyClassName$1, textFieldWarningClassName);
7212
+ const getRootClassNames = (className, size) => useStylesWithRootClass(rootClassName$13, size === 'medium' && inputMediumClassName, className);
7213
+ const getTextFieldRootClassNames = (textFieldWarningClassName, isReadOnly) => useStylesWithRootClass(rootClassName$1u, isReadOnly && readOnlyClassName$1, textFieldWarningClassName);
7077
7214
  const getInputRootClassNames = isDense => useStylesWithRootClass(inputRootClassName, !isDense && inputMediumClassName);
7078
7215
  const getDefaultAutoCompleteValue = (hasMultiple, defaultValue) => hasMultiple && isString$2(defaultValue) ? [defaultValue] : defaultValue;
7079
7216
  const getAutoCompleteGroupBy = group => group ? option => option.group : undefined;
@@ -7095,7 +7232,7 @@ const DotAutoComplete = ({
7095
7232
  autoFocus,
7096
7233
  autoHighlight,
7097
7234
  className,
7098
- 'data-pendoid': dataPendoId = rootClassName$11,
7235
+ 'data-pendoid': dataPendoId = rootClassName$13,
7099
7236
  'data-testid': dataTestId,
7100
7237
  defaultValue,
7101
7238
  dense = true,
@@ -7165,7 +7302,7 @@ const DotAutoComplete = ({
7165
7302
  const rootClasses = useStylesWithRootClass(getRootClassNames(className, size), isAiEnabled ? inputAiClassName : '');
7166
7303
  const textFieldRootClasses = getTextFieldRootClassNames(textFieldWarningClassName, readOnly);
7167
7304
  const inputRootClasses = getInputRootClassNames(dense);
7168
- const popperClasses = useStylesWithRootClass(rootClassName$1h, popperClassName);
7305
+ const popperClasses = useStylesWithRootClass(rootClassName$1j, popperClassName);
7169
7306
  let highlightedOption = null;
7170
7307
  let textFieldInput;
7171
7308
  const textFieldRef = element => {
@@ -7515,10 +7652,10 @@ const DotAutoComplete = ({
7515
7652
  });
7516
7653
  };
7517
7654
 
7518
- const rootClassName$10 = 'dot-avatar-group';
7655
+ const rootClassName$12 = 'dot-avatar-group';
7519
7656
  const StyledAvatarGroup = styled(AvatarGroup)`
7520
7657
  ${() => css`
7521
- &.${rootClassName$10} {
7658
+ &.${rootClassName$12} {
7522
7659
  justify-content: flex-end;
7523
7660
 
7524
7661
  .MuiAvatar-root {
@@ -7537,7 +7674,7 @@ const DotAvatarGroup = ({
7537
7674
  max = 3,
7538
7675
  spacing = 'medium'
7539
7676
  }) => {
7540
- const rootClasses = useStylesWithRootClass(rootClassName$10, className);
7677
+ const rootClasses = useStylesWithRootClass(rootClassName$12, className);
7541
7678
  return jsx(StyledAvatarGroup, {
7542
7679
  "aria-label": ariaLabel,
7543
7680
  classes: {
@@ -7552,14 +7689,14 @@ const DotAvatarGroup = ({
7552
7689
  });
7553
7690
  };
7554
7691
 
7555
- const rootClassName$$ = 'dot-avatar-with-details';
7692
+ const rootClassName$11 = 'dot-avatar-with-details';
7556
7693
  const StyledAvatarWithDetails = styled.div`
7557
7694
  ${({
7558
7695
  theme,
7559
7696
  $maxSubtitleLines,
7560
7697
  $maxTitleLines
7561
7698
  }) => css`
7562
- &.${rootClassName$$} {
7699
+ &.${rootClassName$11} {
7563
7700
  gap: ${theme.spacing(2)};
7564
7701
  display: flex;
7565
7702
  align-items: center;
@@ -7595,12 +7732,12 @@ const DotAvatarWithDetails = ({
7595
7732
  ariaLabel,
7596
7733
  avatar,
7597
7734
  className,
7598
- 'data-pendoid': dataPendoId = rootClassName$$,
7735
+ 'data-pendoid': dataPendoId = rootClassName$11,
7599
7736
  'data-testid': dataTestId,
7600
7737
  subtitle,
7601
7738
  title
7602
7739
  }) => {
7603
- const rootClasses = useStylesWithRootClass(rootClassName$$, className);
7740
+ const rootClasses = useStylesWithRootClass(rootClassName$11, className);
7604
7741
  const titleClasses = useStylesWithRootClass('dot-avatar-with-details-title', title.maxLines ? 'max-lines-clamp' : '');
7605
7742
  const subtitleClasses = useStylesWithRootClass('dot-avatar-with-details-subtitle', (subtitle === null || subtitle === void 0 ? void 0 : subtitle.maxLines) ? 'max-lines-clamp' : '');
7606
7743
  return jsxs(StyledAvatarWithDetails, {
@@ -7635,13 +7772,13 @@ const DotAvatarWithDetails = ({
7635
7772
  });
7636
7773
  };
7637
7774
 
7638
- const rootClassName$_ = 'dot-breadcrumbs';
7775
+ const rootClassName$10 = 'dot-breadcrumbs';
7639
7776
  const breadcrumbsWrapperClass = 'dot-breadcrumbs-wrapper';
7640
7777
  const StyledBreadcrumbsWrapper = styled.div`
7641
7778
  ${({
7642
7779
  theme
7643
7780
  }) => css`
7644
- &.${rootClassName$_} {
7781
+ &.${rootClassName$10} {
7645
7782
  overflow: hidden;
7646
7783
 
7647
7784
  .dot-breadcrumbs-menu {
@@ -7661,7 +7798,7 @@ const StyledBreadcrumbs = styled(Breadcrumbs)`
7661
7798
  ${({
7662
7799
  theme
7663
7800
  }) => css`
7664
- &.${rootClassName$_} {
7801
+ &.${rootClassName$10} {
7665
7802
  margin-bottom: 0;
7666
7803
 
7667
7804
  .MuiBreadcrumbs-ol {
@@ -7989,7 +8126,7 @@ const DotBreadcrumbs = ({
7989
8126
  children: [jsx(StyledBreadcrumbs, {
7990
8127
  "aria-label": "breadcrumb",
7991
8128
  classes: {
7992
- root: rootClassName$_,
8129
+ root: rootClassName$10,
7993
8130
  ol: 'dot-ol',
7994
8131
  li: 'dot-li'
7995
8132
  },
@@ -8020,14 +8157,14 @@ const DotBreadcrumbs = ({
8020
8157
  });
8021
8158
  };
8022
8159
 
8023
- const rootClassName$Z = 'dot-button-toggle';
8160
+ const rootClassName$$ = 'dot-button-toggle';
8024
8161
  // TODO: need to update ripple color
8025
8162
  // https://github.com/mui/material-ui/issues/28543
8026
8163
  const StyledToggleButtonGroup = styled(ToggleButtonGroup)`
8027
8164
  ${({
8028
8165
  theme
8029
8166
  }) => css`
8030
- &.${rootClassName$Z} {
8167
+ &.${rootClassName$$} {
8031
8168
  button:not(.MuiToggleButton-sizeLarge):not(.MuiToggleButton-sizeSmall) {
8032
8169
  /* Override height for medium size */
8033
8170
  height: ${theme.spacing(5)};
@@ -8150,7 +8287,7 @@ const DotButtonToggle = ({
8150
8287
  buttonOptions,
8151
8288
  className,
8152
8289
  color,
8153
- 'data-pendoid': dataPendoId = rootClassName$Z,
8290
+ 'data-pendoid': dataPendoId = rootClassName$$,
8154
8291
  'data-testid': dataTestId = 'dot-toggle',
8155
8292
  disableFocusRipple = false,
8156
8293
  disableRipple = false,
@@ -8160,7 +8297,7 @@ const DotButtonToggle = ({
8160
8297
  size = 'medium',
8161
8298
  value
8162
8299
  }) => {
8163
- const rootClasses = useStylesWithRootClass(rootClassName$Z, className);
8300
+ const rootClasses = useStylesWithRootClass(rootClassName$$, className);
8164
8301
  const renderToggleButton = ({
8165
8302
  ariaLabel: optionAriaLabel,
8166
8303
  badgeContent: optionBadgeContent,
@@ -8245,12 +8382,12 @@ const TooltipToggleButton = forwardRef((_a, ref) => {
8245
8382
  }));
8246
8383
  });
8247
8384
 
8248
- const rootClassName$Y = 'dot-card';
8385
+ const rootClassName$_ = 'dot-card';
8249
8386
  const StyledCard = styled(Card)`
8250
8387
  ${({
8251
8388
  theme
8252
8389
  }) => css`
8253
- &.${rootClassName$Y} {
8390
+ &.${rootClassName$_} {
8254
8391
  background-color: ${theme.palette.figma.background.level1.white};
8255
8392
  }
8256
8393
  `}
@@ -8264,7 +8401,7 @@ const DotCard = ({
8264
8401
  onMouseEnter,
8265
8402
  onMouseLeave
8266
8403
  }) => {
8267
- const rootClasses = useStylesWithRootClass(rootClassName$Y, className);
8404
+ const rootClasses = useStylesWithRootClass(rootClassName$_, className);
8268
8405
  return jsx(StyledCard, {
8269
8406
  "aria-label": ariaLabel,
8270
8407
  classes: {
@@ -8295,12 +8432,12 @@ const DotCardContent = ({
8295
8432
  });
8296
8433
  };
8297
8434
 
8298
- const rootClassName$X = 'dot-card-footer';
8435
+ const rootClassName$Z = 'dot-card-footer';
8299
8436
  const StyledDiv = styled.div`
8300
8437
  ${({
8301
8438
  theme
8302
8439
  }) => css`
8303
- &.${rootClassName$X} {
8440
+ &.${rootClassName$Z} {
8304
8441
  padding: ${theme.spacing(2)};
8305
8442
  }
8306
8443
  `}
@@ -8312,7 +8449,7 @@ const DotCardFooter = ({
8312
8449
  className,
8313
8450
  'data-testid': dataTestId
8314
8451
  }) => {
8315
- const rootClasses = useStylesWithRootClass(rootClassName$X, className);
8452
+ const rootClasses = useStylesWithRootClass(rootClassName$Z, className);
8316
8453
  return jsx(StyledDiv, {
8317
8454
  "aria-label": ariaLabel,
8318
8455
  className: rootClasses,
@@ -8321,14 +8458,14 @@ const DotCardFooter = ({
8321
8458
  });
8322
8459
  };
8323
8460
 
8324
- const rootClassName$W = 'dot-card-header';
8461
+ const rootClassName$Y = 'dot-card-header';
8325
8462
  const StyledCardHeader = styled(CardHeader)`
8326
8463
  ${({
8327
8464
  theme,
8328
8465
  $maxSubheaderLines,
8329
8466
  $maxTitleLines
8330
8467
  }) => css`
8331
- &.${rootClassName$W} {
8468
+ &.${rootClassName$Y} {
8332
8469
  .MuiCardHeader-content {
8333
8470
  overflow-x: hidden;
8334
8471
 
@@ -8366,7 +8503,7 @@ const DotCardHeader = ({
8366
8503
  titleMaxLines = 1,
8367
8504
  titleSize = 'large'
8368
8505
  }) => {
8369
- const rootClasses = useStylesWithRootClass(rootClassName$W, className);
8506
+ const rootClasses = useStylesWithRootClass(rootClassName$Y, className);
8370
8507
  const nonSmallTitleSize = titleSize === 'medium' ? 'h3' : 'h2';
8371
8508
  const titleVariant = titleSize === 'small' ? 'h4' : nonSmallTitleSize;
8372
8509
  const subheaderVariant = subheaderSize === 'small' ? 'body2' : 'body1';
@@ -8403,9 +8540,9 @@ const DotCardHeader = ({
8403
8540
  });
8404
8541
  };
8405
8542
 
8406
- const rootClassName$V = 'dot-form-control-label';
8543
+ const rootClassName$X = 'dot-form-control-label';
8407
8544
  const StyledFormControlLabel = styled(FormControlLabel)`
8408
- &.${rootClassName$V} {
8545
+ &.${rootClassName$X} {
8409
8546
  .MuiFormControlLabel-label {
8410
8547
  margin-bottom: 0;
8411
8548
  padding: 0 0 0 4px;
@@ -8428,12 +8565,12 @@ const StyledFormControlLabel = styled(FormControlLabel)`
8428
8565
  }
8429
8566
  `;
8430
8567
 
8431
- const rootClassName$U = 'dot-checkbox';
8568
+ const rootClassName$W = 'dot-checkbox';
8432
8569
  const StyledCheckbox = styled(Checkbox)`
8433
8570
  ${({
8434
8571
  theme
8435
8572
  }) => css`
8436
- &.${rootClassName$U} {
8573
+ &.${rootClassName$W} {
8437
8574
  padding: ${theme.spacing(1)};
8438
8575
 
8439
8576
  &.MuiCheckbox-indeterminate {
@@ -8452,7 +8589,7 @@ function DotCheckbox({
8452
8589
  ariaLabelledby,
8453
8590
  checked,
8454
8591
  className,
8455
- 'data-pendoid': dataPendoId = rootClassName$V,
8592
+ 'data-pendoid': dataPendoId = rootClassName$X,
8456
8593
  'data-testid': dataTestId,
8457
8594
  disabled,
8458
8595
  disableRipple,
@@ -8467,14 +8604,14 @@ function DotCheckbox({
8467
8604
  size = 'medium',
8468
8605
  value
8469
8606
  }) {
8470
- const rootClasses = useStylesWithRootClass(rootClassName$V, className);
8607
+ const rootClasses = useStylesWithRootClass(rootClassName$X, className);
8471
8608
  const handleChange = event => {
8472
8609
  onChange && onChange(event, event.target.value);
8473
8610
  };
8474
8611
  const checkboxControl = jsx(StyledCheckbox, {
8475
8612
  checked: checked,
8476
8613
  classes: {
8477
- root: rootClassName$U
8614
+ root: rootClassName$W
8478
8615
  },
8479
8616
  color: "primary",
8480
8617
  "data-pendoid": dataPendoId,
@@ -8503,13 +8640,13 @@ function DotCheckbox({
8503
8640
  });
8504
8641
  }
8505
8642
 
8506
- const rootClassName$T = 'dot-form-group';
8643
+ const rootClassName$V = 'dot-form-group';
8507
8644
  const groupLabelClassName = 'dot-form-group-label';
8508
8645
  const startAdornmentClassName = 'dot-start-adornment';
8509
8646
  const endAdornmentClassName = 'dot-end-adornment';
8510
8647
  const placementClassName = 'dot-';
8511
8648
  const StyledFormControl = styled(FormControl)`
8512
- &.${rootClassName$T} {
8649
+ &.${rootClassName$V} {
8513
8650
  .MuiFormLabel-root {
8514
8651
  width: 100%;
8515
8652
  line-height: 24px;
@@ -8540,7 +8677,7 @@ const StyledFormControl = styled(FormControl)`
8540
8677
  }
8541
8678
  `;
8542
8679
 
8543
- const rootClassName$S = 'dot-checkbox-group';
8680
+ const rootClassName$U = 'dot-checkbox-group';
8544
8681
  const wrapperClassName$1 = 'dot-checkbox-group-wrapper';
8545
8682
  const checkboxListClassName = 'dot-checkbox-list';
8546
8683
  const checkboxListItemClassName = 'dot-checkbox-list-item';
@@ -8549,7 +8686,7 @@ const StyledCheckboxGroup = styled.div`
8549
8686
  theme
8550
8687
  }) => css`
8551
8688
  &.${wrapperClassName$1} {
8552
- .${rootClassName$S} {
8689
+ .${rootClassName$U} {
8553
8690
  width: 100%;
8554
8691
  }
8555
8692
 
@@ -8576,7 +8713,7 @@ const StyledCheckboxGroup = styled.div`
8576
8713
  margin-top: 0;
8577
8714
  padding-left: ${theme.spacing(2.5)};
8578
8715
 
8579
- .${rootClassName$V} {
8716
+ .${rootClassName$X} {
8580
8717
  margin: 0;
8581
8718
  }
8582
8719
  }
@@ -8584,13 +8721,13 @@ const StyledCheckboxGroup = styled.div`
8584
8721
  `}
8585
8722
  `;
8586
8723
 
8587
- const rootClassName$R = 'dot-form-group';
8724
+ const rootClassName$T = 'dot-form-group';
8588
8725
  const StyledFormGroup = styled(FormGroup)`
8589
8726
  ${({
8590
8727
  theme,
8591
8728
  row
8592
8729
  }) => css`
8593
- &.${rootClassName$R} > * {
8730
+ &.${rootClassName$T} > * {
8594
8731
  margin: ${row ? `${theme.spacing(0.5)}` : 0};
8595
8732
  }
8596
8733
  `}
@@ -8603,7 +8740,7 @@ function DotFormGroup({
8603
8740
  'data-testid': dataTestId,
8604
8741
  row
8605
8742
  }) {
8606
- const rootClasses = useStylesWithRootClass(rootClassName$T, className);
8743
+ const rootClasses = useStylesWithRootClass(rootClassName$V, className);
8607
8744
  return jsx(StyledFormGroup, {
8608
8745
  "aria-label": ariaLabel,
8609
8746
  classes: {
@@ -8642,7 +8779,7 @@ function DotCheckboxGroup({
8642
8779
  size = 'medium'
8643
8780
  }) {
8644
8781
  const placement = `${placementClassName}${labelPlacement}`;
8645
- const rootClasses = useStylesWithRootClass(rootClassName$T, rootClassName$S, className, placement);
8782
+ const rootClasses = useStylesWithRootClass(rootClassName$V, rootClassName$U, className, placement);
8646
8783
  const [selectedOptions, setSelectedOptions] = useState(defaultValues);
8647
8784
  const [allChecked, setAllChecked] = useState(false);
8648
8785
  /* This will ensure that state can be updated from the outside */
@@ -8727,12 +8864,12 @@ function DotCheckboxGroup({
8727
8864
  });
8728
8865
  }
8729
8866
 
8730
- const rootClassName$Q = 'chip-list';
8867
+ const rootClassName$S = 'chip-list';
8731
8868
  const StyledChipList = styled.div`
8732
8869
  ${({
8733
8870
  theme
8734
8871
  }) => css`
8735
- &.${rootClassName$Q} {
8872
+ &.${rootClassName$S} {
8736
8873
  display: flex;
8737
8874
  gap: ${theme.spacing(1)};
8738
8875
  }
@@ -8807,19 +8944,19 @@ function DotChipList({
8807
8944
  setChips(itemElements);
8808
8945
  }, [items, maxChars]);
8809
8946
  return jsx(StyledChipList, {
8810
- className: rootClassName$Q,
8947
+ className: rootClassName$S,
8811
8948
  "data-testid": dataTestId,
8812
8949
  style: style,
8813
8950
  children: chips
8814
8951
  });
8815
8952
  }
8816
8953
 
8817
- const rootClassName$P = 'dot-dialog';
8954
+ const rootClassName$R = 'dot-dialog';
8818
8955
  const StyledDialog = styled(Dialog)`
8819
8956
  ${({
8820
8957
  theme
8821
8958
  }) => css`
8822
- &.${rootClassName$P} {
8959
+ &.${rootClassName$R} {
8823
8960
  .MuiDialog-paper {
8824
8961
  background: ${theme.palette.figma.background.level1.white};
8825
8962
  color: ${theme.palette.figma.typography.black};
@@ -8865,7 +9002,7 @@ const DotDialog = ({
8865
9002
  cancelButtonProps,
8866
9003
  cancelButtonVisible = true,
8867
9004
  className,
8868
- 'data-pendoid': dataPendoId = rootClassName$P,
9005
+ 'data-pendoid': dataPendoId = rootClassName$R,
8869
9006
  'data-testid': dataTestId,
8870
9007
  children,
8871
9008
  closeIconVisible,
@@ -8879,7 +9016,7 @@ const DotDialog = ({
8879
9016
  submitButtonProps,
8880
9017
  title
8881
9018
  }) => {
8882
- const rootClasses = useStylesWithRootClass(rootClassName$P, className);
9019
+ const rootClasses = useStylesWithRootClass(rootClassName$R, className);
8883
9020
  const cancelClasses = useStylesWithRootClass(cancelButtonProps === null || cancelButtonProps === void 0 ? void 0 : cancelButtonProps.className, 'cancel-button');
8884
9021
  const [isOpen, setIsOpen] = useState(open);
8885
9022
  const hasSecondaryAction = !!secondaryButtonProps;
@@ -9016,7 +9153,7 @@ const DotConfirmationDialog = ({
9016
9153
  });
9017
9154
  };
9018
9155
 
9019
- const rootClassName$O = 'dot-grid';
9156
+ const rootClassName$Q = 'dot-grid';
9020
9157
  const frGetter = value => typeof value === 'number' ? `repeat(${value}, 1fr)` : value;
9021
9158
  const breakpointsGetter$1 = (theme, columnsBreakpoints, columnGap, rowGap) => `${theme.breakpoints.up('xs')} {
9022
9159
  column-gap: ${`${columnGap.xs}px`};
@@ -9076,7 +9213,7 @@ const Grid = ({
9076
9213
  children,
9077
9214
  isLoading
9078
9215
  }) => {
9079
- const rootClasses = useStylesWithRootClass(rootClassName$O, className);
9216
+ const rootClasses = useStylesWithRootClass(rootClassName$Q, className);
9080
9217
  return jsxs("div", {
9081
9218
  className: rootClasses,
9082
9219
  children: [children, isLoading && jsx(DotProgress, {
@@ -9100,7 +9237,7 @@ const StyledGrid = styled(Grid)`
9100
9237
  theme,
9101
9238
  width
9102
9239
  }) => css`
9103
- &.${rootClassName$O} {
9240
+ &.${rootClassName$Q} {
9104
9241
  display: grid;
9105
9242
  grid-template-rows: ${frGetter(rows)};
9106
9243
  ${columns ? `${columns && `grid-template-columns: ${frGetter(columns)}`};` : breakpointsGetter$1(theme, columnsBreakpoints, columnGap, rowGap)}
@@ -9371,12 +9508,12 @@ const CssGridDebug = ({
9371
9508
  });
9372
9509
  };
9373
9510
 
9374
- const rootClassName$N = 'dot-pill';
9511
+ const rootClassName$P = 'dot-pill';
9375
9512
  const StyledPill = styled(Chip)`
9376
9513
  ${({
9377
9514
  theme
9378
9515
  }) => css`
9379
- &.${rootClassName$N} {
9516
+ &.${rootClassName$P} {
9380
9517
  background-color: ${({
9381
9518
  backgroundcolor,
9382
9519
  variant
@@ -9500,7 +9637,7 @@ const DotPill = ({
9500
9637
  status = 'default',
9501
9638
  variant = 'filled'
9502
9639
  }) => {
9503
- const rootClasses = useStylesWithRootClass(rootClassName$N, className, status);
9640
+ const rootClasses = useStylesWithRootClass(rootClassName$P, className, status);
9504
9641
  return jsx(StyledPill, {
9505
9642
  "aria-label": ariaLabel,
9506
9643
  bordercolor: bordercolor,
@@ -9520,25 +9657,126 @@ const DotPill = ({
9520
9657
  };
9521
9658
 
9522
9659
  class ApiError extends Error {
9523
- constructor(response, message) {
9660
+ constructor(request, response, message) {
9524
9661
  super(message);
9662
+ this.name = 'ApiError';
9525
9663
  this.url = response.url;
9526
9664
  this.status = response.status;
9527
9665
  this.statusText = response.statusText;
9528
9666
  this.body = response.body;
9667
+ this.request = request;
9668
+ }
9669
+ }
9670
+
9671
+ var _CancelablePromise_isResolved, _CancelablePromise_isRejected, _CancelablePromise_isCancelled, _CancelablePromise_cancelHandlers, _CancelablePromise_promise, _CancelablePromise_resolve, _CancelablePromise_reject;
9672
+ /* generated using openapi-typescript-codegen -- do not edit */
9673
+ /* istanbul ignore file */
9674
+ /* tslint:disable */
9675
+ /* eslint-disable */
9676
+ class CancelError extends Error {
9677
+ constructor(message) {
9678
+ super(message);
9679
+ this.name = 'CancelError';
9680
+ }
9681
+ get isCancelled() {
9682
+ return true;
9683
+ }
9684
+ }
9685
+ class CancelablePromise {
9686
+ constructor(executor) {
9687
+ _CancelablePromise_isResolved.set(this, void 0);
9688
+ _CancelablePromise_isRejected.set(this, void 0);
9689
+ _CancelablePromise_isCancelled.set(this, void 0);
9690
+ _CancelablePromise_cancelHandlers.set(this, void 0);
9691
+ _CancelablePromise_promise.set(this, void 0);
9692
+ _CancelablePromise_resolve.set(this, void 0);
9693
+ _CancelablePromise_reject.set(this, void 0);
9694
+ __classPrivateFieldSet(this, _CancelablePromise_isResolved, false, "f");
9695
+ __classPrivateFieldSet(this, _CancelablePromise_isRejected, false, "f");
9696
+ __classPrivateFieldSet(this, _CancelablePromise_isCancelled, false, "f");
9697
+ __classPrivateFieldSet(this, _CancelablePromise_cancelHandlers, [], "f");
9698
+ __classPrivateFieldSet(this, _CancelablePromise_promise, new Promise((resolve, reject) => {
9699
+ __classPrivateFieldSet(this, _CancelablePromise_resolve, resolve, "f");
9700
+ __classPrivateFieldSet(this, _CancelablePromise_reject, reject, "f");
9701
+ const onResolve = value => {
9702
+ if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
9703
+ return;
9704
+ }
9705
+ __classPrivateFieldSet(this, _CancelablePromise_isResolved, true, "f");
9706
+ if (__classPrivateFieldGet(this, _CancelablePromise_resolve, "f")) __classPrivateFieldGet(this, _CancelablePromise_resolve, "f").call(this, value);
9707
+ };
9708
+ const onReject = reason => {
9709
+ if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
9710
+ return;
9711
+ }
9712
+ __classPrivateFieldSet(this, _CancelablePromise_isRejected, true, "f");
9713
+ if (__classPrivateFieldGet(this, _CancelablePromise_reject, "f")) __classPrivateFieldGet(this, _CancelablePromise_reject, "f").call(this, reason);
9714
+ };
9715
+ const onCancel = cancelHandler => {
9716
+ if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
9717
+ return;
9718
+ }
9719
+ __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").push(cancelHandler);
9720
+ };
9721
+ Object.defineProperty(onCancel, 'isResolved', {
9722
+ get: () => __classPrivateFieldGet(this, _CancelablePromise_isResolved, "f")
9723
+ });
9724
+ Object.defineProperty(onCancel, 'isRejected', {
9725
+ get: () => __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f")
9726
+ });
9727
+ Object.defineProperty(onCancel, 'isCancelled', {
9728
+ get: () => __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")
9729
+ });
9730
+ return executor(onResolve, onReject, onCancel);
9731
+ }), "f");
9732
+ }
9733
+ get [(_CancelablePromise_isResolved = new WeakMap(), _CancelablePromise_isRejected = new WeakMap(), _CancelablePromise_isCancelled = new WeakMap(), _CancelablePromise_cancelHandlers = new WeakMap(), _CancelablePromise_promise = new WeakMap(), _CancelablePromise_resolve = new WeakMap(), _CancelablePromise_reject = new WeakMap(), Symbol.toStringTag)]() {
9734
+ return 'Cancellable Promise';
9735
+ }
9736
+ then(onFulfilled, onRejected) {
9737
+ return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").then(onFulfilled, onRejected);
9738
+ }
9739
+ catch(onRejected) {
9740
+ return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").catch(onRejected);
9741
+ }
9742
+ finally(onFinally) {
9743
+ return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").finally(onFinally);
9744
+ }
9745
+ cancel() {
9746
+ if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
9747
+ return;
9748
+ }
9749
+ __classPrivateFieldSet(this, _CancelablePromise_isCancelled, true, "f");
9750
+ if (__classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").length) {
9751
+ try {
9752
+ for (const cancelHandler of __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f")) {
9753
+ cancelHandler();
9754
+ }
9755
+ } catch (error) {
9756
+ console.warn('Cancellation threw an error', error);
9757
+ return;
9758
+ }
9759
+ }
9760
+ __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").length = 0;
9761
+ if (__classPrivateFieldGet(this, _CancelablePromise_reject, "f")) __classPrivateFieldGet(this, _CancelablePromise_reject, "f").call(this, new CancelError('Request aborted'));
9762
+ }
9763
+ get isCancelled() {
9764
+ return __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f");
9529
9765
  }
9530
9766
  }
9531
9767
 
9532
9768
  const OpenAPI = {
9533
9769
  BASE: '',
9770
+ VERSION: '0.1',
9771
+ WITH_CREDENTIALS: false,
9772
+ CREDENTIALS: 'include',
9534
9773
  TOKEN: undefined,
9535
9774
  USERNAME: undefined,
9536
9775
  PASSWORD: undefined,
9537
- HEADERS: undefined};
9776
+ HEADERS: undefined,
9777
+ ENCODE_PATH: undefined
9778
+ };
9538
9779
 
9539
- /* istanbul ignore file */
9540
- /* tslint:disable */
9541
- /* eslint-disable */
9542
9780
  var DashboardCreateBody;
9543
9781
  (function (DashboardCreateBody) {
9544
9782
  (function (lifecycle_state) {
@@ -9551,9 +9789,6 @@ var DashboardCreateBody;
9551
9789
  })(DashboardCreateBody.bi_type || (DashboardCreateBody.bi_type = {}));
9552
9790
  })(DashboardCreateBody || (DashboardCreateBody = {}));
9553
9791
 
9554
- /* istanbul ignore file */
9555
- /* tslint:disable */
9556
- /* eslint-disable */
9557
9792
  var DashboardPatchBody;
9558
9793
  (function (DashboardPatchBody) {
9559
9794
  (function (lifecycle_state) {
@@ -9566,9 +9801,6 @@ var DashboardPatchBody;
9566
9801
  })(DashboardPatchBody.bi_type || (DashboardPatchBody.bi_type = {}));
9567
9802
  })(DashboardPatchBody || (DashboardPatchBody = {}));
9568
9803
 
9569
- /* istanbul ignore file */
9570
- /* tslint:disable */
9571
- /* eslint-disable */
9572
9804
  var DashboardPutBody;
9573
9805
  (function (DashboardPutBody) {
9574
9806
  (function (lifecycle_state) {
@@ -9581,9 +9813,6 @@ var DashboardPutBody;
9581
9813
  })(DashboardPutBody.bi_type || (DashboardPutBody.bi_type = {}));
9582
9814
  })(DashboardPutBody || (DashboardPutBody = {}));
9583
9815
 
9584
- /* istanbul ignore file */
9585
- /* tslint:disable */
9586
- /* eslint-disable */
9587
9816
  var DashboardView;
9588
9817
  (function (DashboardView) {
9589
9818
  (function (lifecycle_state) {
@@ -9596,159 +9825,180 @@ var DashboardView;
9596
9825
  })(DashboardView.bi_type || (DashboardView.bi_type = {}));
9597
9826
  })(DashboardView || (DashboardView = {}));
9598
9827
 
9599
- function isDefined(value) {
9828
+ const isDefined = value => {
9600
9829
  return value !== undefined && value !== null;
9601
- }
9602
- function isString(value) {
9830
+ };
9831
+ const isString = value => {
9603
9832
  return typeof value === 'string';
9604
- }
9605
- function isStringWithValue(value) {
9833
+ };
9834
+ const isStringWithValue = value => {
9606
9835
  return isString(value) && value !== '';
9607
- }
9608
- function isBlob(value) {
9609
- return value instanceof Blob;
9610
- }
9611
- function base64(str) {
9836
+ };
9837
+ const isBlob = value => {
9838
+ return typeof value === 'object' && typeof value.type === 'string' && typeof value.stream === 'function' && typeof value.arrayBuffer === 'function' && typeof value.constructor === 'function' && typeof value.constructor.name === 'string' && /^(Blob|File)$/.test(value.constructor.name) && /^(Blob|File)$/.test(value[Symbol.toStringTag]);
9839
+ };
9840
+ const isFormData = value => {
9841
+ return value instanceof FormData;
9842
+ };
9843
+ const base64 = str => {
9612
9844
  try {
9613
9845
  return btoa(str);
9614
9846
  } catch (err) {
9847
+ // @ts-ignore
9615
9848
  return Buffer.from(str).toString('base64');
9616
9849
  }
9617
- }
9618
- function getQueryString(params) {
9850
+ };
9851
+ const getQueryString = params => {
9619
9852
  const qs = [];
9620
- Object.keys(params).forEach(key => {
9621
- const value = params[key];
9853
+ const append = (key, value) => {
9854
+ qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
9855
+ };
9856
+ const process = (key, value) => {
9622
9857
  if (isDefined(value)) {
9623
9858
  if (Array.isArray(value)) {
9624
- value.forEach(value => {
9625
- qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
9859
+ value.forEach(v => {
9860
+ process(key, v);
9861
+ });
9862
+ } else if (typeof value === 'object') {
9863
+ Object.entries(value).forEach(([k, v]) => {
9864
+ process(`${key}[${k}]`, v);
9626
9865
  });
9627
9866
  } else {
9628
- qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
9867
+ append(key, value);
9629
9868
  }
9630
9869
  }
9870
+ };
9871
+ Object.entries(params).forEach(([key, value]) => {
9872
+ process(key, value);
9631
9873
  });
9632
9874
  if (qs.length > 0) {
9633
9875
  return `?${qs.join('&')}`;
9634
9876
  }
9635
9877
  return '';
9636
- }
9637
- function getUrl(options) {
9638
- const path = options.path;
9639
- const url = `${OpenAPI.BASE}${path}`;
9878
+ };
9879
+ const getUrl = (config, options) => {
9880
+ const encoder = encodeURI;
9881
+ const path = options.url.replace('{api-version}', config.VERSION).replace(/{(.*?)}/g, (substring, group) => {
9882
+ var _a;
9883
+ if ((_a = options.path) === null || _a === void 0 ? void 0 : _a.hasOwnProperty(group)) {
9884
+ return encoder(String(options.path[group]));
9885
+ }
9886
+ return substring;
9887
+ });
9888
+ const url = `${config.BASE}${path}`;
9640
9889
  if (options.query) {
9641
9890
  return `${url}${getQueryString(options.query)}`;
9642
9891
  }
9643
9892
  return url;
9644
- }
9645
- function getFormData(params) {
9646
- const formData = new FormData();
9647
- Object.keys(params).forEach(key => {
9648
- const value = params[key];
9649
- if (isDefined(value)) {
9650
- formData.append(key, value);
9651
- }
9652
- });
9653
- return formData;
9654
- }
9655
- function resolve(options, resolver) {
9656
- return __awaiter(this, void 0, void 0, function* () {
9657
- if (typeof resolver === 'function') {
9658
- return resolver(options);
9659
- }
9660
- return resolver;
9661
- });
9662
- }
9663
- function getHeaders(options) {
9664
- return __awaiter(this, void 0, void 0, function* () {
9665
- const token = yield resolve(options, OpenAPI.TOKEN);
9666
- const username = yield resolve(options, OpenAPI.USERNAME);
9667
- const password = yield resolve(options, OpenAPI.PASSWORD);
9668
- const additionalHeaders = yield resolve(options, OpenAPI.HEADERS);
9669
- const defaultHeaders = Object.entries(Object.assign(Object.assign({
9670
- Accept: 'application/json'
9671
- }, additionalHeaders), options.headers)).filter(([key, value]) => isDefined(value)).reduce((headers, [key, value]) => Object.assign(Object.assign({}, headers), {
9672
- [key]: value
9673
- }), {});
9674
- const headers = new Headers(defaultHeaders);
9675
- if (isStringWithValue(token)) {
9676
- headers.append('Authorization', `Bearer ${token}`);
9677
- }
9678
- if (isStringWithValue(username) && isStringWithValue(password)) {
9679
- const credentials = base64(`${username}:${password}`);
9680
- headers.append('Authorization', `Basic ${credentials}`);
9681
- }
9682
- if (options.body) {
9683
- if (options.mediaType) {
9684
- headers.append('Content-Type', options.mediaType);
9685
- } else if (isBlob(options.body)) {
9686
- headers.append('Content-Type', options.body.type || 'application/octet-stream');
9687
- } else if (isString(options.body)) {
9688
- headers.append('Content-Type', 'text/plain');
9893
+ };
9894
+ const getFormData = options => {
9895
+ if (options.formData) {
9896
+ const formData = new FormData();
9897
+ const process = (key, value) => {
9898
+ if (isString(value) || isBlob(value)) {
9899
+ formData.append(key, value);
9689
9900
  } else {
9690
- headers.append('Content-Type', 'application/json');
9901
+ formData.append(key, JSON.stringify(value));
9902
+ }
9903
+ };
9904
+ Object.entries(options.formData).filter(([_, value]) => isDefined(value)).forEach(([key, value]) => {
9905
+ if (Array.isArray(value)) {
9906
+ value.forEach(v => process(key, v));
9907
+ } else {
9908
+ process(key, value);
9691
9909
  }
9910
+ });
9911
+ return formData;
9912
+ }
9913
+ return undefined;
9914
+ };
9915
+ const resolve = (options, resolver) => __awaiter(void 0, void 0, void 0, function* () {
9916
+ if (typeof resolver === 'function') {
9917
+ return resolver(options);
9918
+ }
9919
+ return resolver;
9920
+ });
9921
+ const getHeaders = (config, options) => __awaiter(void 0, void 0, void 0, function* () {
9922
+ const [token, username, password, additionalHeaders] = yield Promise.all([resolve(options, config.TOKEN), resolve(options, config.USERNAME), resolve(options, config.PASSWORD), resolve(options, config.HEADERS)]);
9923
+ const headers = Object.entries(Object.assign(Object.assign({
9924
+ Accept: 'application/json'
9925
+ }, additionalHeaders), options.headers)).filter(([_, value]) => isDefined(value)).reduce((headers, [key, value]) => Object.assign(Object.assign({}, headers), {
9926
+ [key]: String(value)
9927
+ }), {});
9928
+ if (isStringWithValue(token)) {
9929
+ headers['Authorization'] = `Bearer ${token}`;
9930
+ }
9931
+ if (isStringWithValue(username) && isStringWithValue(password)) {
9932
+ const credentials = base64(`${username}:${password}`);
9933
+ headers['Authorization'] = `Basic ${credentials}`;
9934
+ }
9935
+ if (options.body !== undefined) {
9936
+ if (options.mediaType) {
9937
+ headers['Content-Type'] = options.mediaType;
9938
+ } else if (isBlob(options.body)) {
9939
+ headers['Content-Type'] = options.body.type || 'application/octet-stream';
9940
+ } else if (isString(options.body)) {
9941
+ headers['Content-Type'] = 'text/plain';
9942
+ } else if (!isFormData(options.body)) {
9943
+ headers['Content-Type'] = 'application/json';
9692
9944
  }
9693
- return headers;
9694
- });
9695
- }
9696
- function getRequestBody(options) {
9697
- var _a;
9698
- if (options.formData) {
9699
- return getFormData(options.formData);
9700
9945
  }
9701
- if (options.body) {
9946
+ return new Headers(headers);
9947
+ });
9948
+ const getRequestBody = options => {
9949
+ var _a;
9950
+ if (options.body !== undefined) {
9702
9951
  if ((_a = options.mediaType) === null || _a === void 0 ? void 0 : _a.includes('/json')) {
9703
9952
  return JSON.stringify(options.body);
9704
- } else if (isString(options.body) || isBlob(options.body)) {
9953
+ } else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {
9705
9954
  return options.body;
9706
9955
  } else {
9707
9956
  return JSON.stringify(options.body);
9708
9957
  }
9709
9958
  }
9710
9959
  return undefined;
9711
- }
9712
- function sendRequest(options, url) {
9713
- return __awaiter(this, void 0, void 0, function* () {
9714
- const request = {
9715
- method: options.method,
9716
- headers: yield getHeaders(options),
9717
- body: getRequestBody(options)
9718
- };
9719
- return yield fetch(url, request);
9720
- });
9721
- }
9722
- function getResponseHeader(response, responseHeader) {
9960
+ };
9961
+ const sendRequest = (config, options, url, body, formData, headers, onCancel) => __awaiter(void 0, void 0, void 0, function* () {
9962
+ const controller = new AbortController();
9963
+ const request = {
9964
+ headers,
9965
+ body: body !== null && body !== void 0 ? body : formData,
9966
+ method: options.method,
9967
+ signal: controller.signal
9968
+ };
9969
+ onCancel(() => controller.abort());
9970
+ return yield fetch(url, request);
9971
+ });
9972
+ const getResponseHeader = (response, responseHeader) => {
9723
9973
  if (responseHeader) {
9724
9974
  const content = response.headers.get(responseHeader);
9725
9975
  if (isString(content)) {
9726
9976
  return content;
9727
9977
  }
9728
9978
  }
9729
- return null;
9730
- }
9731
- function getResponseBody(response) {
9732
- return __awaiter(this, void 0, void 0, function* () {
9733
- if (response.status !== 204) {
9734
- try {
9735
- const contentType = response.headers.get('Content-Type');
9736
- if (contentType) {
9737
- const isJSON = contentType.toLowerCase().startsWith('application/json');
9738
- if (isJSON) {
9739
- return yield response.json();
9740
- } else {
9741
- return yield response.text();
9742
- }
9979
+ return undefined;
9980
+ };
9981
+ const getResponseBody = response => __awaiter(void 0, void 0, void 0, function* () {
9982
+ if (response.status !== 204) {
9983
+ try {
9984
+ const contentType = response.headers.get('Content-Type');
9985
+ if (contentType) {
9986
+ const jsonTypes = ['application/json', 'application/problem+json'];
9987
+ const isJSON = jsonTypes.some(type => contentType.toLowerCase().startsWith(type));
9988
+ if (isJSON) {
9989
+ return yield response.json();
9990
+ } else {
9991
+ return yield response.text();
9743
9992
  }
9744
- } catch (error) {
9745
- console.error(error);
9746
9993
  }
9994
+ } catch (error) {
9995
+ console.error(error);
9747
9996
  }
9748
- return null;
9749
- });
9750
- }
9751
- function catchErrors(options, result) {
9997
+ }
9998
+ return undefined;
9999
+ });
10000
+ const catchErrorCodes = (options, result) => {
10001
+ var _a, _b;
9752
10002
  const errors = Object.assign({
9753
10003
  400: 'Bad Request',
9754
10004
  401: 'Unauthorized',
@@ -9760,35 +10010,54 @@ function catchErrors(options, result) {
9760
10010
  }, options.errors);
9761
10011
  const error = errors[result.status];
9762
10012
  if (error) {
9763
- throw new ApiError(result, error);
10013
+ throw new ApiError(options, result, error);
9764
10014
  }
9765
10015
  if (!result.ok) {
9766
- throw new ApiError(result, 'Generic Error');
10016
+ const errorStatus = (_a = result.status) !== null && _a !== void 0 ? _a : 'unknown';
10017
+ const errorStatusText = (_b = result.statusText) !== null && _b !== void 0 ? _b : 'unknown';
10018
+ const errorBody = (() => {
10019
+ try {
10020
+ return JSON.stringify(result.body, null, 2);
10021
+ } catch (e) {
10022
+ return undefined;
10023
+ }
10024
+ })();
10025
+ throw new ApiError(options, result, `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`);
9767
10026
  }
9768
- }
10027
+ };
9769
10028
  /**
9770
- * Request using fetch client
9771
- * @param options The request options from the the service
9772
- * @returns ApiResult
10029
+ * Request method
10030
+ * @param config The OpenAPI configuration object
10031
+ * @param options The request options from the service
10032
+ * @returns CancelablePromise<T>
9773
10033
  * @throws ApiError
9774
10034
  */
9775
- function request(options) {
9776
- return __awaiter(this, void 0, void 0, function* () {
9777
- const url = getUrl(options);
9778
- const response = yield sendRequest(options, url);
9779
- const responseBody = yield getResponseBody(response);
9780
- const responseHeader = getResponseHeader(response, options.responseHeader);
9781
- const result = {
9782
- url,
9783
- ok: response.ok,
9784
- status: response.status,
9785
- statusText: response.statusText,
9786
- body: responseHeader || responseBody
9787
- };
9788
- catchErrors(options, result);
9789
- return result;
9790
- });
9791
- }
10035
+ const request = (config, options) => {
10036
+ return new CancelablePromise((resolve, reject, onCancel) => __awaiter(void 0, void 0, void 0, function* () {
10037
+ try {
10038
+ const url = getUrl(config, options);
10039
+ const formData = getFormData(options);
10040
+ const body = getRequestBody(options);
10041
+ const headers = yield getHeaders(config, options);
10042
+ if (!onCancel.isCancelled) {
10043
+ const response = yield sendRequest(config, options, url, body, formData, headers, onCancel);
10044
+ const responseBody = yield getResponseBody(response);
10045
+ const responseHeader = getResponseHeader(response, options.responseHeader);
10046
+ const result = {
10047
+ url,
10048
+ ok: response.ok,
10049
+ status: response.status,
10050
+ statusText: response.statusText,
10051
+ body: responseHeader !== null && responseHeader !== void 0 ? responseHeader : responseBody
10052
+ };
10053
+ catchErrorCodes(options, result);
10054
+ resolve(result.body);
10055
+ }
10056
+ } catch (error) {
10057
+ reject(error);
10058
+ }
10059
+ }));
10060
+ };
9792
10061
 
9793
10062
  class DashboardsService {
9794
10063
  /**
@@ -9800,7 +10069,7 @@ class DashboardsService {
9800
10069
  * @param sort Sort ordering to apply to the query.
9801
10070
  * @param filter List of filters (each filter is a separate query param, and they are OR'ed).
9802
10071
  *
9803
- * * **Filterable field names**: author_fullname, author_id, bi_type, categories, created_dt, dataset_id, description, external_embedding_id, external_id, id, is_ootb_dashboard, lifecycle_state, name, target_apps, updated_by_fullname, updated_by_id, updated_dt
10072
+ * * **Filterable field names**: author_fullname, author_id, bi_type, categories, created_dt, dataset_id, description, external_embedding_id, external_id, featured, id, is_ootb_dashboard, lifecycle_state, name, target_apps, updated_by_fullname, updated_by_id, updated_dt
9804
10073
  * * **Searchable field names**: author_fullname, categories, description, name, updated_by_fullname
9805
10074
  *
9806
10075
  * @param favorite Boolean flag to only return dashboards marked as favorites.
@@ -9819,39 +10088,36 @@ class DashboardsService {
9819
10088
  * @returns Error Default error response
9820
10089
  * @throws ApiError
9821
10090
  */
9822
- static getDashboards() {
9823
- return __awaiter(this, arguments, void 0, function* (xDigitalaiAccountId = null, start, count = 20, sort = 'id', filter, favorite = null, q = null, authorFullname = null, authorId = null, biType = 'MICROSTRATEGY', description = null, id = null, isOotbDashboard = null, lifecycleState = null, name = null, targetApp = null, viewModified = false) {
9824
- const result = yield request({
9825
- method: 'GET',
9826
- path: `/metadata/bi/dashboards`,
9827
- headers: {
9828
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9829
- },
9830
- query: {
9831
- start: start,
9832
- count: count,
9833
- sort: sort,
9834
- filter: filter,
9835
- favorite: favorite,
9836
- q: q,
9837
- author_fullname: authorFullname,
9838
- author_id: authorId,
9839
- bi_type: biType,
9840
- description: description,
9841
- id: id,
9842
- is_ootb_dashboard: isOotbDashboard,
9843
- lifecycle_state: lifecycleState,
9844
- name: name,
9845
- target_app: targetApp,
9846
- view_modified: viewModified
9847
- },
9848
- errors: {
9849
- 400: `An unknown parameter was specified.`,
9850
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
9851
- 422: `Unprocessable Entity`
9852
- }
9853
- });
9854
- return result.body;
10091
+ static getDashboards(xDigitalaiAccountId = null, start, count = 20, sort = 'id', filter, favorite = null, q = null, authorFullname = null, authorId = null, biType = 'MICROSTRATEGY', description = null, id = null, isOotbDashboard = null, lifecycleState = null, name = null, targetApp = null, viewModified = false) {
10092
+ return request(OpenAPI, {
10093
+ method: 'GET',
10094
+ url: '/metadata/bi/dashboards',
10095
+ headers: {
10096
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10097
+ },
10098
+ query: {
10099
+ start: start,
10100
+ count: count,
10101
+ sort: sort,
10102
+ filter: filter,
10103
+ favorite: favorite,
10104
+ q: q,
10105
+ author_fullname: authorFullname,
10106
+ author_id: authorId,
10107
+ bi_type: biType,
10108
+ description: description,
10109
+ id: id,
10110
+ is_ootb_dashboard: isOotbDashboard,
10111
+ lifecycle_state: lifecycleState,
10112
+ name: name,
10113
+ target_app: targetApp,
10114
+ view_modified: viewModified
10115
+ },
10116
+ errors: {
10117
+ 400: `An unknown parameter was specified.`,
10118
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10119
+ 422: `Unprocessable Entity`
10120
+ }
9855
10121
  });
9856
10122
  }
9857
10123
  /**
@@ -9863,23 +10129,20 @@ class DashboardsService {
9863
10129
  * @returns Error Default error response
9864
10130
  * @throws ApiError
9865
10131
  */
9866
- static postDashboards(requestBody_1) {
9867
- return __awaiter(this, arguments, void 0, function* (requestBody, xDigitalaiAccountId = null) {
9868
- const result = yield request({
9869
- method: 'POST',
9870
- path: `/metadata/bi/dashboards`,
9871
- headers: {
9872
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9873
- },
9874
- body: requestBody,
9875
- mediaType: 'application/json',
9876
- errors: {
9877
- 400: `The provided data is not valid.`,
9878
- 404: `The dashboard could not be found.`,
9879
- 422: `Unprocessable Entity`
9880
- }
9881
- });
9882
- return result.body;
10132
+ static postDashboards(requestBody, xDigitalaiAccountId = null) {
10133
+ return request(OpenAPI, {
10134
+ method: 'POST',
10135
+ url: '/metadata/bi/dashboards',
10136
+ headers: {
10137
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10138
+ },
10139
+ body: requestBody,
10140
+ mediaType: 'application/json',
10141
+ errors: {
10142
+ 400: `The provided data is not valid.`,
10143
+ 404: `The dashboard could not be found.`,
10144
+ 422: `Unprocessable Entity`
10145
+ }
9883
10146
  });
9884
10147
  }
9885
10148
  /**
@@ -9891,21 +10154,21 @@ class DashboardsService {
9891
10154
  * @returns Error Default error response
9892
10155
  * @throws ApiError
9893
10156
  */
9894
- static getDashboard(dashboardId_1) {
9895
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null) {
9896
- const result = yield request({
9897
- method: 'GET',
9898
- path: `/metadata/bi/dashboards/${dashboardId}`,
9899
- headers: {
9900
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9901
- },
9902
- errors: {
9903
- 400: `An unknown parameter was specified.`,
9904
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
9905
- 404: `The dashboard could not be found.`
9906
- }
9907
- });
9908
- return result.body;
10157
+ static getDashboard(dashboardId, xDigitalaiAccountId = null) {
10158
+ return request(OpenAPI, {
10159
+ method: 'GET',
10160
+ url: '/metadata/bi/dashboards/{dashboard_id}',
10161
+ path: {
10162
+ dashboard_id: dashboardId
10163
+ },
10164
+ headers: {
10165
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10166
+ },
10167
+ errors: {
10168
+ 400: `An unknown parameter was specified.`,
10169
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10170
+ 404: `The dashboard could not be found.`
10171
+ }
9909
10172
  });
9910
10173
  }
9911
10174
  /**
@@ -9919,28 +10182,28 @@ class DashboardsService {
9919
10182
  * @returns Error Default error response
9920
10183
  * @throws ApiError
9921
10184
  */
9922
- static putDashboard(dashboardId_1, requestBody_1) {
9923
- return __awaiter(this, arguments, void 0, function* (dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
9924
- const result = yield request({
9925
- method: 'PUT',
9926
- path: `/metadata/bi/dashboards/${dashboardId}`,
9927
- headers: {
9928
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9929
- },
9930
- query: {
9931
- is_sync: isSync
9932
- },
9933
- body: requestBody,
9934
- mediaType: 'application/json',
9935
- errors: {
9936
- 400: `The provided data is not valid.`,
9937
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
9938
- 404: `The dashboard could not be found.`,
9939
- 409: `Unable to update object because IDs are different.`,
9940
- 422: `Unprocessable Entity`
9941
- }
9942
- });
9943
- return result.body;
10185
+ static putDashboard(dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10186
+ return request(OpenAPI, {
10187
+ method: 'PUT',
10188
+ url: '/metadata/bi/dashboards/{dashboard_id}',
10189
+ path: {
10190
+ dashboard_id: dashboardId
10191
+ },
10192
+ headers: {
10193
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10194
+ },
10195
+ query: {
10196
+ is_sync: isSync
10197
+ },
10198
+ body: requestBody,
10199
+ mediaType: 'application/json',
10200
+ errors: {
10201
+ 400: `The provided data is not valid.`,
10202
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10203
+ 404: `The dashboard could not be found.`,
10204
+ 409: `Unable to update object because IDs are different.`,
10205
+ 422: `Unprocessable Entity`
10206
+ }
9944
10207
  });
9945
10208
  }
9946
10209
  /**
@@ -9954,28 +10217,28 @@ class DashboardsService {
9954
10217
  * @returns Error Default error response
9955
10218
  * @throws ApiError
9956
10219
  */
9957
- static patchDashboard(dashboardId_1, requestBody_1) {
9958
- return __awaiter(this, arguments, void 0, function* (dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
9959
- const result = yield request({
9960
- method: 'PATCH',
9961
- path: `/metadata/bi/dashboards/${dashboardId}`,
9962
- headers: {
9963
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9964
- },
9965
- query: {
9966
- is_sync: isSync
9967
- },
9968
- body: requestBody,
9969
- mediaType: 'application/json',
9970
- errors: {
9971
- 400: `The provided data is not valid.`,
9972
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
9973
- 404: `The dashboard could not be found.`,
9974
- 409: `Unable to update object because IDs are different.`,
9975
- 422: `Unprocessable Entity`
9976
- }
9977
- });
9978
- return result.body;
10220
+ static patchDashboard(dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10221
+ return request(OpenAPI, {
10222
+ method: 'PATCH',
10223
+ url: '/metadata/bi/dashboards/{dashboard_id}',
10224
+ path: {
10225
+ dashboard_id: dashboardId
10226
+ },
10227
+ headers: {
10228
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10229
+ },
10230
+ query: {
10231
+ is_sync: isSync
10232
+ },
10233
+ body: requestBody,
10234
+ mediaType: 'application/json',
10235
+ errors: {
10236
+ 400: `The provided data is not valid.`,
10237
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10238
+ 404: `The dashboard could not be found.`,
10239
+ 409: `Unable to update object because IDs are different.`,
10240
+ 422: `Unprocessable Entity`
10241
+ }
9979
10242
  });
9980
10243
  }
9981
10244
  /**
@@ -9986,16 +10249,16 @@ class DashboardsService {
9986
10249
  * @returns Error Default error response
9987
10250
  * @throws ApiError
9988
10251
  */
9989
- static deleteDashboard(dashboardId_1) {
9990
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null) {
9991
- const result = yield request({
9992
- method: 'DELETE',
9993
- path: `/metadata/bi/dashboards/${dashboardId}`,
9994
- headers: {
9995
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
9996
- }
9997
- });
9998
- return result.body;
10252
+ static deleteDashboard(dashboardId, xDigitalaiAccountId = null) {
10253
+ return request(OpenAPI, {
10254
+ method: 'DELETE',
10255
+ url: '/metadata/bi/dashboards/{dashboard_id}',
10256
+ path: {
10257
+ dashboard_id: dashboardId
10258
+ },
10259
+ headers: {
10260
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10261
+ }
9999
10262
  });
10000
10263
  }
10001
10264
  /**
@@ -10007,21 +10270,21 @@ class DashboardsService {
10007
10270
  * @returns Error Default error response
10008
10271
  * @throws ApiError
10009
10272
  */
10010
- static getInProgressDashboard(dashboardId_1) {
10011
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null) {
10012
- const result = yield request({
10013
- method: 'GET',
10014
- path: `/metadata/bi/dashboards/${dashboardId}/inprogress`,
10015
- headers: {
10016
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10017
- },
10018
- errors: {
10019
- 400: `An unknown parameter was specified.`,
10020
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10021
- 404: `The dashboard could not be found.`
10022
- }
10023
- });
10024
- return result.body;
10273
+ static getInProgressDashboard(dashboardId, xDigitalaiAccountId = null) {
10274
+ return request(OpenAPI, {
10275
+ method: 'GET',
10276
+ url: '/metadata/bi/dashboards/{dashboard_id}/inprogress',
10277
+ path: {
10278
+ dashboard_id: dashboardId
10279
+ },
10280
+ headers: {
10281
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10282
+ },
10283
+ errors: {
10284
+ 400: `An unknown parameter was specified.`,
10285
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10286
+ 404: `The dashboard could not be found.`
10287
+ }
10025
10288
  });
10026
10289
  }
10027
10290
  /**
@@ -10034,24 +10297,24 @@ class DashboardsService {
10034
10297
  * @returns Error Default error response
10035
10298
  * @throws ApiError
10036
10299
  */
10037
- static postInProgressDashboard(dashboardId_1) {
10038
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null, requestBody) {
10039
- const result = yield request({
10040
- method: 'POST',
10041
- path: `/metadata/bi/dashboards/${dashboardId}/inprogress`,
10042
- headers: {
10043
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10044
- },
10045
- body: requestBody,
10046
- mediaType: 'application/json',
10047
- errors: {
10048
- 400: `The provided data is not valid.`,
10049
- 404: `The dashboard could not be found.`,
10050
- 409: `Unable to update object because IDs are different.`,
10051
- 422: `Unprocessable Entity`
10052
- }
10053
- });
10054
- return result.body;
10300
+ static postInProgressDashboard(dashboardId, xDigitalaiAccountId = null, requestBody) {
10301
+ return request(OpenAPI, {
10302
+ method: 'POST',
10303
+ url: '/metadata/bi/dashboards/{dashboard_id}/inprogress',
10304
+ path: {
10305
+ dashboard_id: dashboardId
10306
+ },
10307
+ headers: {
10308
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10309
+ },
10310
+ body: requestBody,
10311
+ mediaType: 'application/json',
10312
+ errors: {
10313
+ 400: `The provided data is not valid.`,
10314
+ 404: `The dashboard could not be found.`,
10315
+ 409: `Unable to update object because IDs are different.`,
10316
+ 422: `Unprocessable Entity`
10317
+ }
10055
10318
  });
10056
10319
  }
10057
10320
  /**
@@ -10065,28 +10328,28 @@ class DashboardsService {
10065
10328
  * @returns Error Default error response
10066
10329
  * @throws ApiError
10067
10330
  */
10068
- static putInProgressDashboard(dashboardId_1, requestBody_1) {
10069
- return __awaiter(this, arguments, void 0, function* (dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10070
- const result = yield request({
10071
- method: 'PUT',
10072
- path: `/metadata/bi/dashboards/${dashboardId}/inprogress`,
10073
- headers: {
10074
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10075
- },
10076
- query: {
10077
- is_sync: isSync
10078
- },
10079
- body: requestBody,
10080
- mediaType: 'application/json',
10081
- errors: {
10082
- 400: `The provided data is not valid.`,
10083
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10084
- 404: `The dashboard could not be found.`,
10085
- 409: `Unable to update object because IDs are different.`,
10086
- 422: `Unprocessable Entity`
10087
- }
10088
- });
10089
- return result.body;
10331
+ static putInProgressDashboard(dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10332
+ return request(OpenAPI, {
10333
+ method: 'PUT',
10334
+ url: '/metadata/bi/dashboards/{dashboard_id}/inprogress',
10335
+ path: {
10336
+ dashboard_id: dashboardId
10337
+ },
10338
+ headers: {
10339
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10340
+ },
10341
+ query: {
10342
+ is_sync: isSync
10343
+ },
10344
+ body: requestBody,
10345
+ mediaType: 'application/json',
10346
+ errors: {
10347
+ 400: `The provided data is not valid.`,
10348
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10349
+ 404: `The dashboard could not be found.`,
10350
+ 409: `Unable to update object because IDs are different.`,
10351
+ 422: `Unprocessable Entity`
10352
+ }
10090
10353
  });
10091
10354
  }
10092
10355
  /**
@@ -10100,28 +10363,28 @@ class DashboardsService {
10100
10363
  * @returns Error Default error response
10101
10364
  * @throws ApiError
10102
10365
  */
10103
- static patchInProgressDashboard(dashboardId_1, requestBody_1) {
10104
- return __awaiter(this, arguments, void 0, function* (dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10105
- const result = yield request({
10106
- method: 'PATCH',
10107
- path: `/metadata/bi/dashboards/${dashboardId}/inprogress`,
10108
- headers: {
10109
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10110
- },
10111
- query: {
10112
- is_sync: isSync
10113
- },
10114
- body: requestBody,
10115
- mediaType: 'application/json',
10116
- errors: {
10117
- 400: `The provided data is not valid.`,
10118
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10119
- 404: `The dashboard could not be found.`,
10120
- 409: `Unable to update object because IDs are different.`,
10121
- 422: `Unprocessable Entity`
10122
- }
10123
- });
10124
- return result.body;
10366
+ static patchInProgressDashboard(dashboardId, requestBody, xDigitalaiAccountId = null, isSync = null) {
10367
+ return request(OpenAPI, {
10368
+ method: 'PATCH',
10369
+ url: '/metadata/bi/dashboards/{dashboard_id}/inprogress',
10370
+ path: {
10371
+ dashboard_id: dashboardId
10372
+ },
10373
+ headers: {
10374
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10375
+ },
10376
+ query: {
10377
+ is_sync: isSync
10378
+ },
10379
+ body: requestBody,
10380
+ mediaType: 'application/json',
10381
+ errors: {
10382
+ 400: `The provided data is not valid.`,
10383
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10384
+ 404: `The dashboard could not be found.`,
10385
+ 409: `Unable to update object because IDs are different.`,
10386
+ 422: `Unprocessable Entity`
10387
+ }
10125
10388
  });
10126
10389
  }
10127
10390
  /**
@@ -10133,22 +10396,22 @@ class DashboardsService {
10133
10396
  * @returns Error Default error response
10134
10397
  * @throws ApiError
10135
10398
  */
10136
- static deleteInProgressDashboard(dashboardId_1) {
10137
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null, publish = false) {
10138
- const result = yield request({
10139
- method: 'DELETE',
10140
- path: `/metadata/bi/dashboards/${dashboardId}/inprogress`,
10141
- headers: {
10142
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10143
- },
10144
- query: {
10145
- publish: publish
10146
- },
10147
- errors: {
10148
- 422: `Unprocessable Entity`
10149
- }
10150
- });
10151
- return result.body;
10399
+ static deleteInProgressDashboard(dashboardId, xDigitalaiAccountId = null, publish = false) {
10400
+ return request(OpenAPI, {
10401
+ method: 'DELETE',
10402
+ url: '/metadata/bi/dashboards/{dashboard_id}/inprogress',
10403
+ path: {
10404
+ dashboard_id: dashboardId
10405
+ },
10406
+ headers: {
10407
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10408
+ },
10409
+ query: {
10410
+ publish: publish
10411
+ },
10412
+ errors: {
10413
+ 422: `Unprocessable Entity`
10414
+ }
10152
10415
  });
10153
10416
  }
10154
10417
  /**
@@ -10161,23 +10424,23 @@ class DashboardsService {
10161
10424
  * @returns Error Default error response
10162
10425
  * @throws ApiError
10163
10426
  */
10164
- static copyDashboard(dashboardId_1) {
10165
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null, requestBody) {
10166
- const result = yield request({
10167
- method: 'POST',
10168
- path: `/metadata/bi/dashboards/${dashboardId}/copy`,
10169
- headers: {
10170
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10171
- },
10172
- body: requestBody,
10173
- mediaType: 'application/json',
10174
- errors: {
10175
- 400: `The provided data is not valid.`,
10176
- 404: `The dashboard could not be found.`,
10177
- 422: `Unprocessable Entity`
10178
- }
10179
- });
10180
- return result.body;
10427
+ static copyDashboard(dashboardId, xDigitalaiAccountId = null, requestBody) {
10428
+ return request(OpenAPI, {
10429
+ method: 'POST',
10430
+ url: '/metadata/bi/dashboards/{dashboard_id}/copy',
10431
+ path: {
10432
+ dashboard_id: dashboardId
10433
+ },
10434
+ headers: {
10435
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10436
+ },
10437
+ body: requestBody,
10438
+ mediaType: 'application/json',
10439
+ errors: {
10440
+ 400: `The provided data is not valid.`,
10441
+ 404: `The dashboard could not be found.`,
10442
+ 422: `Unprocessable Entity`
10443
+ }
10181
10444
  });
10182
10445
  }
10183
10446
  /**
@@ -10189,20 +10452,20 @@ class DashboardsService {
10189
10452
  * @returns Error Default error response
10190
10453
  * @throws ApiError
10191
10454
  */
10192
- static favoriteDashboard(dashboardId_1) {
10193
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null) {
10194
- const result = yield request({
10195
- method: 'POST',
10196
- path: `/metadata/bi/dashboards/${dashboardId}/favorite`,
10197
- headers: {
10198
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10199
- },
10200
- errors: {
10201
- 400: `The provided data is not valid.`,
10202
- 404: `The dashboard could not be found.`
10203
- }
10204
- });
10205
- return result.body;
10455
+ static favoriteDashboard(dashboardId, xDigitalaiAccountId = null) {
10456
+ return request(OpenAPI, {
10457
+ method: 'POST',
10458
+ url: '/metadata/bi/dashboards/{dashboard_id}/favorite',
10459
+ path: {
10460
+ dashboard_id: dashboardId
10461
+ },
10462
+ headers: {
10463
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10464
+ },
10465
+ errors: {
10466
+ 400: `The provided data is not valid.`,
10467
+ 404: `The dashboard could not be found.`
10468
+ }
10206
10469
  });
10207
10470
  }
10208
10471
  /**
@@ -10214,20 +10477,20 @@ class DashboardsService {
10214
10477
  * @returns Error Default error response
10215
10478
  * @throws ApiError
10216
10479
  */
10217
- static unfavoriteDashboard(dashboardId_1) {
10218
- return __awaiter(this, arguments, void 0, function* (dashboardId, xDigitalaiAccountId = null) {
10219
- const result = yield request({
10220
- method: 'DELETE',
10221
- path: `/metadata/bi/dashboards/${dashboardId}/favorite`,
10222
- headers: {
10223
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10224
- },
10225
- errors: {
10226
- 400: `The provided data is not valid.`,
10227
- 404: `The dashboard could not be found.`
10228
- }
10229
- });
10230
- return result.body;
10480
+ static unfavoriteDashboard(dashboardId, xDigitalaiAccountId = null) {
10481
+ return request(OpenAPI, {
10482
+ method: 'DELETE',
10483
+ url: '/metadata/bi/dashboards/{dashboard_id}/favorite',
10484
+ path: {
10485
+ dashboard_id: dashboardId
10486
+ },
10487
+ headers: {
10488
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10489
+ },
10490
+ errors: {
10491
+ 400: `The provided data is not valid.`,
10492
+ 404: `The dashboard could not be found.`
10493
+ }
10231
10494
  });
10232
10495
  }
10233
10496
  /**
@@ -10240,35 +10503,32 @@ class DashboardsService {
10240
10503
  * * **Searchable field names**: author_fullname, categories, description, name
10241
10504
  *
10242
10505
  * @param targetApp String match on the Dashboard target application - 'AGILITY', 'CONTINUOUSTEST', 'DEPLOY','RELEASE', 'TEAMFORGE', 'CHANGERISKPREDICTION', 'SERVICEMGMTPROCESSOPTIMIZATION', 'FLOWACCELERATION', 'INTEGRATEANDTESTANALYTICSLENS', 'OPERATEANDMONITORANALYTICSLENS', 'PLANANDCREATEANALYTICSLENS', 'QUALITYIMPROVEMENT', 'RELEASEANDDEPLOYANALYTICSLENS', or 'APPLICATIONSECURITY'.
10243
- * @param biType String match on Dashboard bi type - 'MICROSTRATEGY'.
10244
- * @param isOotbDashboard Boolean match on Dashboard OOTB status.
10245
- * @param lifecycleState String match on Dashboard lifecycle state - 'DRAFT' or 'PUBLISHED'.
10246
- * @returns MetadataResponse OK
10247
- * @returns Error Default error response
10248
- * @throws ApiError
10249
- */
10250
- static getDashboardsMetadata() {
10251
- return __awaiter(this, arguments, void 0, function* (xDigitalaiAccountId = null, filter, targetApp = null, biType = 'MICROSTRATEGY', isOotbDashboard = null, lifecycleState = null) {
10252
- const result = yield request({
10253
- method: 'GET',
10254
- path: `/metadata/bi/dashboards/metadata`,
10255
- headers: {
10256
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10257
- },
10258
- query: {
10259
- filter: filter,
10260
- target_app: targetApp,
10261
- bi_type: biType,
10262
- is_ootb_dashboard: isOotbDashboard,
10263
- lifecycle_state: lifecycleState
10264
- },
10265
- errors: {
10266
- 400: `Given query params are not valid.`,
10267
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10268
- 422: `Unprocessable Entity`
10269
- }
10270
- });
10271
- return result.body;
10506
+ * @param biType String match on Dashboard bi type - 'MICROSTRATEGY'.
10507
+ * @param isOotbDashboard Boolean match on Dashboard OOTB status.
10508
+ * @param lifecycleState String match on Dashboard lifecycle state - 'DRAFT' or 'PUBLISHED'.
10509
+ * @returns MetadataResponse OK
10510
+ * @returns Error Default error response
10511
+ * @throws ApiError
10512
+ */
10513
+ static getDashboardsMetadata(xDigitalaiAccountId = null, filter, targetApp = null, biType = 'MICROSTRATEGY', isOotbDashboard = null, lifecycleState = null) {
10514
+ return request(OpenAPI, {
10515
+ method: 'GET',
10516
+ url: '/metadata/bi/dashboards/metadata',
10517
+ headers: {
10518
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10519
+ },
10520
+ query: {
10521
+ filter: filter,
10522
+ target_app: targetApp,
10523
+ bi_type: biType,
10524
+ is_ootb_dashboard: isOotbDashboard,
10525
+ lifecycle_state: lifecycleState
10526
+ },
10527
+ errors: {
10528
+ 400: `Given query params are not valid.`,
10529
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10530
+ 422: `Unprocessable Entity`
10531
+ }
10272
10532
  });
10273
10533
  }
10274
10534
  }
@@ -10282,47 +10542,42 @@ class HelpContentService {
10282
10542
  * @returns Error Default error response
10283
10543
  * @throws ApiError
10284
10544
  */
10285
- static getHelpContent() {
10286
- return __awaiter(this, arguments, void 0, function* (xDigitalaiAccountId = null) {
10287
- const result = yield request({
10288
- method: 'GET',
10289
- path: `/metadata/bi/helpcontent`,
10290
- headers: {
10291
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10292
- },
10293
- errors: {
10294
- 400: `An unknown parameter was specified.`,
10295
- 401: `Could not resolve a valid Tenant from the provided API Token.`
10296
- }
10297
- });
10298
- return result.body;
10545
+ static getHelpContent(xDigitalaiAccountId = null) {
10546
+ return request(OpenAPI, {
10547
+ method: 'GET',
10548
+ url: '/metadata/bi/helpcontent',
10549
+ headers: {
10550
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10551
+ },
10552
+ errors: {
10553
+ 400: `An unknown parameter was specified.`,
10554
+ 401: `Could not resolve a valid Tenant from the provided API Token.`
10555
+ }
10299
10556
  });
10300
10557
  }
10301
10558
  /**
10302
10559
  * Upload an HTML file to be displayed as help content.
10303
10560
  * Upload help content.
10304
- * @param requestBody
10561
+ * @param formData
10305
10562
  * @param xDigitalaiAccountId Perform the requested operation in the context of the Digital.ai account represented by this GUID. <em>Requires elevated permissions.</em>
10306
10563
  * @returns HelpContent Content uploaded.
10307
10564
  * @returns Error Default error response
10308
10565
  * @throws ApiError
10309
10566
  */
10310
- static createHelpContent(requestBody_1) {
10311
- return __awaiter(this, arguments, void 0, function* (requestBody, xDigitalaiAccountId = null) {
10312
- const result = yield request({
10313
- method: 'POST',
10314
- path: `/metadata/bi/helpcontent`,
10315
- headers: {
10316
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10317
- },
10318
- body: requestBody,
10319
- errors: {
10320
- 400: `The provided data is not valid.`,
10321
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10322
- 422: `Unprocessable Entity`
10323
- }
10324
- });
10325
- return result.body;
10567
+ static createHelpContent(formData, xDigitalaiAccountId = null) {
10568
+ return request(OpenAPI, {
10569
+ method: 'POST',
10570
+ url: '/metadata/bi/helpcontent',
10571
+ headers: {
10572
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10573
+ },
10574
+ formData: formData,
10575
+ mediaType: 'multipart/form-data',
10576
+ errors: {
10577
+ 400: `The provided data is not valid.`,
10578
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10579
+ 422: `Unprocessable Entity`
10580
+ }
10326
10581
  });
10327
10582
  }
10328
10583
  /**
@@ -10334,50 +10589,51 @@ class HelpContentService {
10334
10589
  * @returns Error Default error response
10335
10590
  * @throws ApiError
10336
10591
  */
10337
- static getHelpContentById(helpContentId_1) {
10338
- return __awaiter(this, arguments, void 0, function* (helpContentId, xDigitalaiAccountId = null) {
10339
- const result = yield request({
10340
- method: 'GET',
10341
- path: `/metadata/bi/helpcontent/${helpContentId}`,
10342
- headers: {
10343
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10344
- },
10345
- errors: {
10346
- 400: `An unknown parameter was specified.`,
10347
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10348
- 404: `The help content could not be found.`
10349
- }
10350
- });
10351
- return result.body;
10592
+ static getHelpContentById(helpContentId, xDigitalaiAccountId = null) {
10593
+ return request(OpenAPI, {
10594
+ method: 'GET',
10595
+ url: '/metadata/bi/helpcontent/{help_content_id}',
10596
+ path: {
10597
+ help_content_id: helpContentId
10598
+ },
10599
+ headers: {
10600
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10601
+ },
10602
+ errors: {
10603
+ 400: `An unknown parameter was specified.`,
10604
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10605
+ 404: `The help content could not be found.`
10606
+ }
10352
10607
  });
10353
10608
  }
10354
10609
  /**
10355
10610
  * Update a help content definition.
10356
10611
  * Update a single help content definition, selected by ID.
10357
10612
  * @param helpContentId
10358
- * @param requestBody
10613
+ * @param formData
10359
10614
  * @param xDigitalaiAccountId Perform the requested operation in the context of the Digital.ai account represented by this GUID. <em>Requires elevated permissions.</em>
10360
10615
  * @returns HelpContent OK
10361
10616
  * @returns Error Default error response
10362
10617
  * @throws ApiError
10363
10618
  */
10364
- static putHelpContentById(helpContentId_1, requestBody_1) {
10365
- return __awaiter(this, arguments, void 0, function* (helpContentId, requestBody, xDigitalaiAccountId = null) {
10366
- const result = yield request({
10367
- method: 'PUT',
10368
- path: `/metadata/bi/helpcontent/${helpContentId}`,
10369
- headers: {
10370
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10371
- },
10372
- body: requestBody,
10373
- errors: {
10374
- 400: `An unknown parameter was specified.`,
10375
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10376
- 404: `The help content could not be found.`,
10377
- 422: `Unprocessable Entity`
10378
- }
10379
- });
10380
- return result.body;
10619
+ static putHelpContentById(helpContentId, formData, xDigitalaiAccountId = null) {
10620
+ return request(OpenAPI, {
10621
+ method: 'PUT',
10622
+ url: '/metadata/bi/helpcontent/{help_content_id}',
10623
+ path: {
10624
+ help_content_id: helpContentId
10625
+ },
10626
+ headers: {
10627
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10628
+ },
10629
+ formData: formData,
10630
+ mediaType: 'multipart/form-data',
10631
+ errors: {
10632
+ 400: `An unknown parameter was specified.`,
10633
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10634
+ 404: `The help content could not be found.`,
10635
+ 422: `Unprocessable Entity`
10636
+ }
10381
10637
  });
10382
10638
  }
10383
10639
  /**
@@ -10388,21 +10644,21 @@ class HelpContentService {
10388
10644
  * @returns Error Default error response
10389
10645
  * @throws ApiError
10390
10646
  */
10391
- static deleteHelpContentById(helpContentId_1) {
10392
- return __awaiter(this, arguments, void 0, function* (helpContentId, xDigitalaiAccountId = null) {
10393
- const result = yield request({
10394
- method: 'DELETE',
10395
- path: `/metadata/bi/helpcontent/${helpContentId}`,
10396
- headers: {
10397
- 'X-Digitalai-Account-ID': xDigitalaiAccountId
10398
- },
10399
- errors: {
10400
- 400: `An unknown parameter was specified.`,
10401
- 401: `Could not resolve a valid Tenant from the provided API Token.`,
10402
- 404: `The help content could not be found.`
10403
- }
10404
- });
10405
- return result.body;
10647
+ static deleteHelpContentById(helpContentId, xDigitalaiAccountId = null) {
10648
+ return request(OpenAPI, {
10649
+ method: 'DELETE',
10650
+ url: '/metadata/bi/helpcontent/{help_content_id}',
10651
+ path: {
10652
+ help_content_id: helpContentId
10653
+ },
10654
+ headers: {
10655
+ 'X-Digitalai-Account-ID': xDigitalaiAccountId
10656
+ },
10657
+ errors: {
10658
+ 400: `An unknown parameter was specified.`,
10659
+ 401: `Could not resolve a valid Tenant from the provided API Token.`,
10660
+ 404: `The help content could not be found.`
10661
+ }
10406
10662
  });
10407
10663
  }
10408
10664
  }
@@ -10951,6 +11207,9 @@ const DotMetadataApiProvider = ({
10951
11207
  if (dashboard.in_progress_changes) {
10952
11208
  // If the dashboard is published and has in-progress changes, we need to update the in-progress dashboard
10953
11209
  response = yield DashboardsService.patchInProgressDashboard(dashboard.id, updatePayload, accountId, isSync);
11210
+ } else if (Object.keys(updatePayload).length === 1 && 'featured' in updatePayload) {
11211
+ // If the dashboard is published and only update is related to 'featured' flag, we can update the published dashboard directly
11212
+ response = yield DashboardsService.patchDashboard(dashboard.id, updatePayload, accountId, isSync);
10954
11213
  } else {
10955
11214
  // If the dashboard is published and has no in-progress changes, we need to create an in-progress dashboard
10956
11215
  response = yield DashboardsService.postInProgressDashboard(dashboard.id, accountId, updatePayload);
@@ -11089,18 +11348,18 @@ function addAutoHideDuration(severity) {
11089
11348
  return severity === 'error' ? null : 10000;
11090
11349
  }
11091
11350
 
11092
- const rootClassName$M = 'dot-snackbar';
11351
+ const rootClassName$O = 'dot-snackbar';
11093
11352
  const StyledSnackbar = styled(Snackbar)`
11094
11353
  ${({
11095
11354
  theme,
11096
11355
  width,
11097
11356
  $anchorOriginTop
11098
11357
  }) => css`
11099
- &.${rootClassName$M} {
11358
+ &.${rootClassName$O} {
11100
11359
  .MuiAlert-message {
11101
11360
  word-break: break-word;
11102
11361
  }
11103
- .${rootClassName$1o} {
11362
+ .${rootClassName$1q} {
11104
11363
  align-items: flex-start;
11105
11364
  }
11106
11365
  &.MuiSnackbar-anchorOriginTopLeft,
@@ -11153,7 +11412,7 @@ const DotSnackbar = ({
11153
11412
  }) => {
11154
11413
  const hasActions = !!(primaryAction || secondaryAction);
11155
11414
  const calculatedAutoHideDuration = autoHideDuration === null || autoHideDuration > 0 ? autoHideDuration : addAutoHideDuration(severity);
11156
- const rootClasses = useStylesWithRootClass(rootClassName$M, className);
11415
+ const rootClasses = useStylesWithRootClass(rootClassName$O, className);
11157
11416
  const handleSnackbarClose = reason => {
11158
11417
  if (!reason || hideOnClickAway || !hideOnClickAway && reason !== 'clickaway') {
11159
11418
  onClose();
@@ -11223,10 +11482,10 @@ const DotSnackbar = ({
11223
11482
  });
11224
11483
  };
11225
11484
 
11226
- const rootClassName$L = 'dot-snackbar-container';
11485
+ const rootClassName$N = 'dot-snackbar-container';
11227
11486
  const StyledSnackbarContainer = styled.div`
11228
11487
  ${() => css`
11229
- &.${rootClassName$L} {
11488
+ &.${rootClassName$N} {
11230
11489
  position: absolute;
11231
11490
  top: 0;
11232
11491
  width: 250px;
@@ -11258,10 +11517,10 @@ const DotSnackbarContainer = ({
11258
11517
  };
11259
11518
  }
11260
11519
  return jsx(StyledSnackbarContainer, {
11261
- className: rootClassName$L,
11520
+ className: rootClassName$N,
11262
11521
  children: jsx("div", {
11263
- className: rootClassName$L,
11264
- "data-testid": rootClassName$L,
11522
+ className: rootClassName$N,
11523
+ "data-testid": rootClassName$N,
11265
11524
  children: alerts.slice().reverse().map(alert => {
11266
11525
  return jsx(DotSnackbar, {
11267
11526
  autoCloseOnAction: autoCloseOnAction,
@@ -11335,12 +11594,12 @@ const useEnqueueErrorMessage = error => {
11335
11594
  }, [error]);
11336
11595
  };
11337
11596
 
11338
- const rootClassName$K = 'dot-dashboard-details';
11597
+ const rootClassName$M = 'dot-dashboard-details';
11339
11598
  const StyledDashboardDetails = styled(DotDrawer)`
11340
11599
  ${({
11341
11600
  theme
11342
11601
  }) => css`
11343
- &.${rootClassName$K} {
11602
+ &.${rootClassName$M} {
11344
11603
  .dot-drawer-paper {
11345
11604
  padding: 0;
11346
11605
  width: 382px;
@@ -11466,7 +11725,7 @@ const DotDashboardDetailsView = ({
11466
11725
  modifiedAuthorUser
11467
11726
  }) => {
11468
11727
  var _a, _b;
11469
- const rootClasses = useStylesWithRootClass(rootClassName$K, className);
11728
+ const rootClasses = useStylesWithRootClass(rootClassName$M, className);
11470
11729
  const closeHandler = useCallback(event => {
11471
11730
  onClose && onClose(event);
11472
11731
  }, [onClose]);
@@ -12128,12 +12387,12 @@ function DotDashboardDialog({
12128
12387
  });
12129
12388
  }
12130
12389
 
12131
- const rootClassName$J = 'dot-impact-dialog';
12390
+ const rootClassName$L = 'dot-impact-dialog';
12132
12391
  const StyledImpactDialog = styled(DotDialog)`
12133
12392
  ${({
12134
12393
  theme
12135
12394
  }) => css`
12136
- &.${rootClassName$J} {
12395
+ &.${rootClassName$L} {
12137
12396
  .high-impact-default-content {
12138
12397
  margin-top: ${theme.spacing(2)};
12139
12398
  margin-bottom: ${theme.spacing(3)};
@@ -12239,7 +12498,7 @@ const DotImpactDialog = ({
12239
12498
  }
12240
12499
  return '';
12241
12500
  }, [action, capitalize, impact, record]);
12242
- const rootClasses = useStylesWithRootClass(rootClassName$J, className);
12501
+ const rootClasses = useStylesWithRootClass(rootClassName$L, className);
12243
12502
  return jsx(StyledImpactDialog, {
12244
12503
  "data-testid": dataTestId,
12245
12504
  className: rootClasses,
@@ -12808,6 +13067,7 @@ function DotDashboardOptionsMenu({
12808
13067
  currentUser,
12809
13068
  isEdit = false,
12810
13069
  menuPlacement,
13070
+ onFeature,
12811
13071
  onStartDelete,
12812
13072
  onStartDuplicate,
12813
13073
  onStartStatusChange,
@@ -12870,6 +13130,21 @@ function DotDashboardOptionsMenu({
12870
13130
  const isDraft = !dashboard.parent_id && dashboard.lifecycle_state === DashboardView.lifecycle_state.DRAFT;
12871
13131
  const isPublished = dashboard.parent_id || dashboard.lifecycle_state === DashboardView.lifecycle_state.PUBLISHED;
12872
13132
  const menuItems = [];
13133
+ if (onFeature && isPublished && !dashboard.in_progress_changes) {
13134
+ const label = dashboard.featured ? 'Remove from featured page' : 'Add to featured page';
13135
+ menuItems.push({
13136
+ children: jsx(DotButton, {
13137
+ "data-testid": `feature-dashboard-action-button-${dashboard.id}`,
13138
+ ariaLabel: label,
13139
+ type: "text",
13140
+ startIcon: jsx(DotIcon, {
13141
+ iconId: "add-outlined"
13142
+ }),
13143
+ children: label
13144
+ }, `feature-dashboard-action-button-${dashboard.id}`),
13145
+ key: 'feature'
13146
+ });
13147
+ }
12873
13148
  if (!isEdit && onViewMode && !dashboard.is_ootb_dashboard && !dashboardLocked(dashboard, currentUser)) {
12874
13149
  menuItems.push({
12875
13150
  children: jsx(DotButton, {
@@ -13067,6 +13342,9 @@ function DotDashboardOptionsMenu({
13067
13342
  case 'unpublish':
13068
13343
  onStartStatusChange(dashboard, DashboardView.lifecycle_state.DRAFT);
13069
13344
  break;
13345
+ case 'feature':
13346
+ onFeature(dashboard);
13347
+ break;
13070
13348
  }
13071
13349
  handleMenuClose();
13072
13350
  }, [menuItems, handleMenuClose]);
@@ -13611,7 +13889,7 @@ function DotDashboardHeader({
13611
13889
  });
13612
13890
  }
13613
13891
 
13614
- const rootClassName$I = 'dot-empty-state';
13892
+ const rootClassName$K = 'dot-empty-state';
13615
13893
  const emptyStateImageSizing = {
13616
13894
  xsmall: 9,
13617
13895
  dense: 15,
@@ -13682,9 +13960,9 @@ const StyledEmptyState = styled.div`
13682
13960
  `}
13683
13961
  `;
13684
13962
 
13685
- const rootClassName$H = 'dot-illustration';
13963
+ const rootClassName$J = 'dot-illustration';
13686
13964
  const StyledIllustration = styled.span`
13687
- &.${rootClassName$H} {
13965
+ &.${rootClassName$J} {
13688
13966
  display: inline-block;
13689
13967
  }
13690
13968
  `;
@@ -13701,17 +13979,17 @@ const DotIllustration = ({
13701
13979
  tooltip,
13702
13980
  tooltipPlacement = 'right-end'
13703
13981
  }) => {
13704
- const rootClasses = useStylesWithRootClass(rootClassName$H, className);
13982
+ const rootClasses = useStylesWithRootClass(rootClassName$J, className);
13705
13983
  return jsx(DotTooltip, {
13706
13984
  childrenDisplayStyle: "inline-block",
13707
13985
  title: tooltip,
13708
13986
  placement: tooltipPlacement,
13709
- "data-testid": `${dataTestId || rootClassName$H}-tooltip`,
13987
+ "data-testid": `${dataTestId || rootClassName$J}-tooltip`,
13710
13988
  children: jsx(StyledIllustration, {
13711
13989
  "aria-hidden": "false",
13712
13990
  "aria-label": ariaLabel || title || 'Illustration',
13713
13991
  className: rootClasses,
13714
- "data-testid": dataTestId || rootClassName$H,
13992
+ "data-testid": dataTestId || rootClassName$J,
13715
13993
  role: ariaRole,
13716
13994
  children: jsx("img", {
13717
13995
  alt: alt || 'Illustration',
@@ -13737,7 +14015,7 @@ const DotEmptyState = ({
13737
14015
  subtitle,
13738
14016
  title
13739
14017
  }) => {
13740
- const rootClasses = useStylesWithRootClass(rootClassName$I, className);
14018
+ const rootClasses = useStylesWithRootClass(rootClassName$K, className);
13741
14019
  return jsxs(StyledEmptyState, {
13742
14020
  "aria-label": ariaLabel,
13743
14021
  className: `${rootClasses} ${size}`,
@@ -13818,20 +14096,20 @@ const StyledRadioGroup = styled(RadioGroup)`
13818
14096
  &.${groupClassName} {
13819
14097
  padding-left: ${theme.spacing(2.5)};
13820
14098
 
13821
- .${rootClassName$V} {
14099
+ .${rootClassName$X} {
13822
14100
  margin: 0;
13823
14101
  }
13824
14102
  }
13825
14103
  `}
13826
14104
  `;
13827
14105
 
13828
- const rootClassName$G = 'dot-date-picker';
14106
+ const rootClassName$I = 'dot-date-picker';
13829
14107
  const popperClassName = 'dot-date-picker-popper';
13830
14108
  const containerClassName$2 = 'dot-date-picker-container';
13831
14109
  const rectanglePickersDayClassName = 'dot-rectangle-pickers-day';
13832
14110
  const StyledDatePickerContainer = styled.div`
13833
14111
  ${() => css`
13834
- &.${rootClassName$G} .full-width {
14112
+ &.${rootClassName$I} .full-width {
13835
14113
  width: 100%;
13836
14114
  }
13837
14115
  `}
@@ -13840,7 +14118,7 @@ const StyledDatePicker = styled(DatePicker)`
13840
14118
  ${({
13841
14119
  theme
13842
14120
  }) => css`
13843
- &.${rootClassName$G} {
14121
+ &.${rootClassName$I} {
13844
14122
  ${pickerInputStyles(theme)};
13845
14123
 
13846
14124
  .Mui-disabled.MuiInputBase-root,
@@ -13882,7 +14160,7 @@ const StyledPickersDay = styled(PickersDay)`
13882
14160
  `}
13883
14161
  `;
13884
14162
 
13885
- const rootClassName$F = 'dot-time-picker';
14163
+ const rootClassName$H = 'dot-time-picker';
13886
14164
  const containerClassName$1 = 'dot-time-picker-container';
13887
14165
  const timePickerPopperClassName = 'dot-time-picker-popper';
13888
14166
  const TIME_SELECTION_HEIGHT_SPACING = 34.5;
@@ -13902,7 +14180,7 @@ const StyledTimePicker = styled(TimePicker)`
13902
14180
  ${({
13903
14181
  theme
13904
14182
  }) => css`
13905
- &.${rootClassName$F} {
14183
+ &.${rootClassName$H} {
13906
14184
  ${pickerInputStyles(theme)};
13907
14185
 
13908
14186
  .Mui-disabled.MuiInputBase-root,
@@ -13979,36 +14257,36 @@ const StyledTimePickerPopper = styled(Popper)`
13979
14257
  `}
13980
14258
  `;
13981
14259
 
13982
- const rootClassName$E = 'dot-form';
14260
+ const rootClassName$G = 'dot-form';
13983
14261
  const StyledFormContainer = styled.div`
13984
14262
  ${({
13985
14263
  theme
13986
14264
  }) => css`
13987
- &.${rootClassName$E} {
14265
+ &.${rootClassName$G} {
13988
14266
  margin: ${theme.spacing(3, 0)};
13989
14267
 
13990
- .${rootClassName$T},
13991
- .${rootClassName$V},
13992
- .${rootClassName$1s},
14268
+ .${rootClassName$V},
14269
+ .${rootClassName$X},
14270
+ .${rootClassName$1u},
13993
14271
  .${rootSelectClassName},
13994
- .${rootClassName$G},
13995
- .${rootClassName$F} {
14272
+ .${rootClassName$I},
14273
+ .${rootClassName$H} {
13996
14274
  margin: ${theme.spacing(1, 0)};
13997
14275
  }
13998
14276
 
13999
14277
  .${wrapperClassName$2} {
14000
- + .${rootClassName$1s},
14278
+ + .${rootClassName$1u},
14001
14279
  .${wrapperClassName$2}
14002
14280
  + .${rootSelectClassName},
14003
14281
  .${wrapperClassName$2}
14004
- + .${rootClassName$G},
14282
+ + .${rootClassName$I},
14005
14283
  .${wrapperClassName$2}
14006
- + .${rootClassName$F} {
14284
+ + .${rootClassName$H} {
14007
14285
  margin: ${theme.spacing(0, 0, 1, 0)};
14008
14286
  }
14009
14287
 
14010
- .${rootClassName$S}, .${groupClassName} {
14011
- .${rootClassName$V} {
14288
+ .${rootClassName$U}, .${groupClassName} {
14289
+ .${rootClassName$X} {
14012
14290
  margin: 0;
14013
14291
  }
14014
14292
  }
@@ -14023,7 +14301,7 @@ const DotForm = ({
14023
14301
  'data-testid': dataTestId,
14024
14302
  onSubmit
14025
14303
  }) => {
14026
- const rootClasses = useStylesWithRootClass(rootClassName$E, className);
14304
+ const rootClasses = useStylesWithRootClass(rootClassName$G, className);
14027
14305
  return jsx("form", {
14028
14306
  "aria-label": ariaLabel,
14029
14307
  "data-testid": dataTestId,
@@ -14036,10 +14314,10 @@ const DotForm = ({
14036
14314
  });
14037
14315
  };
14038
14316
 
14039
- const rootClassName$D = 'dot-dynamic-form';
14317
+ const rootClassName$F = 'dot-dynamic-form';
14040
14318
  const StyledDynamicForm = styled(DotForm)`
14041
14319
  ${() => css`
14042
- &.${rootClassName$D} {
14320
+ &.${rootClassName$F} {
14043
14321
  }
14044
14322
  `}
14045
14323
  `;
@@ -14219,12 +14497,12 @@ const checkIfFormDataValid = formState => {
14219
14497
  return true;
14220
14498
  };
14221
14499
 
14222
- const rootClassName$C = 'dot-progress-button';
14500
+ const rootClassName$E = 'dot-progress-button';
14223
14501
  const StyledProgressButton = styled(DotButton)`
14224
14502
  ${({
14225
14503
  theme
14226
14504
  }) => css`
14227
- &.${rootClassName$C} {
14505
+ &.${rootClassName$E} {
14228
14506
  .hidden {
14229
14507
  // hide children but preserve its space so that
14230
14508
  // button's dimensions don't change
@@ -14249,7 +14527,7 @@ const DotProgressButton = ({
14249
14527
  ariaLabel,
14250
14528
  children,
14251
14529
  className,
14252
- 'data-pendoid': dataPendoId = rootClassName$C,
14530
+ 'data-pendoid': dataPendoId = rootClassName$E,
14253
14531
  'data-testid': dataTestId,
14254
14532
  disabled = false,
14255
14533
  disableInteractive,
@@ -14263,7 +14541,7 @@ const DotProgressButton = ({
14263
14541
  tooltip,
14264
14542
  type = 'primary'
14265
14543
  }) => {
14266
- const rootClasses = useStylesWithRootClass(rootClassName$C, className);
14544
+ const rootClasses = useStylesWithRootClass(rootClassName$E, className);
14267
14545
  const isButtonDisabled = disabled || isLoading;
14268
14546
  const titleClasses = useStylesWithRootClass(isLoading ? 'hidden' : '');
14269
14547
  const progressCircleSize = size === 'large' ? SPINNER_LARGE_SIZE : SPINNER_DEFAULT_SIZE;
@@ -14293,12 +14571,12 @@ const DotProgressButton = ({
14293
14571
  });
14294
14572
  };
14295
14573
 
14296
- const rootClassName$B = 'dot-radio';
14574
+ const rootClassName$D = 'dot-radio';
14297
14575
  const StyledRadioButton = styled(Radio)`
14298
14576
  ${({
14299
14577
  theme
14300
14578
  }) => css`
14301
- &.${rootClassName$B} {
14579
+ &.${rootClassName$D} {
14302
14580
  padding: 8px;
14303
14581
 
14304
14582
  svg {
@@ -14316,7 +14594,7 @@ function DotRadioButton({
14316
14594
  ariaLabel,
14317
14595
  checked,
14318
14596
  className,
14319
- 'data-pendoid': dataPendoId = rootClassName$V,
14597
+ 'data-pendoid': dataPendoId = rootClassName$X,
14320
14598
  'data-testid': dataTestId,
14321
14599
  disabled,
14322
14600
  id,
@@ -14329,7 +14607,7 @@ function DotRadioButton({
14329
14607
  size = 'medium',
14330
14608
  value
14331
14609
  }) {
14332
- const rootClasses = useStylesWithRootClass(rootClassName$V, className);
14610
+ const rootClasses = useStylesWithRootClass(rootClassName$X, className);
14333
14611
  const handleChange = event => {
14334
14612
  onChange && onChange(event, event.target.value);
14335
14613
  };
@@ -14337,7 +14615,7 @@ function DotRadioButton({
14337
14615
  const radioControl = jsx(StyledRadioButton, {
14338
14616
  checked: checked,
14339
14617
  classes: {
14340
- root: rootClassName$B
14618
+ root: rootClassName$D
14341
14619
  },
14342
14620
  color: "primary",
14343
14621
  "data-pendoid": dataPendoId,
@@ -14383,7 +14661,7 @@ const DotRadioGroup = ({
14383
14661
  size = 'medium'
14384
14662
  }) => {
14385
14663
  const placement = `${placementClassName}${labelPlacement}`;
14386
- const rootClasses = useStylesWithRootClass(rootClassName$T, className, placement);
14664
+ const rootClasses = useStylesWithRootClass(rootClassName$V, className, placement);
14387
14665
  const radioValue = value || defaultValue;
14388
14666
  const [selectedValue, setSelectedValue] = useState(radioValue);
14389
14667
  /* This will ensure that value can be updated from the outside */
@@ -14448,7 +14726,7 @@ const DotRadioGroup = ({
14448
14726
  });
14449
14727
  };
14450
14728
 
14451
- const rootClassName$A = 'dot-switch';
14729
+ const rootClassName$C = 'dot-switch';
14452
14730
  const StyledSwitch = styled(Switch)`
14453
14731
  ${({
14454
14732
  theme
@@ -14475,7 +14753,7 @@ const DotSwitch = ({
14475
14753
  checked,
14476
14754
  className,
14477
14755
  color,
14478
- 'data-pendoid': dataPendoId = rootClassName$A,
14756
+ 'data-pendoid': dataPendoId = rootClassName$C,
14479
14757
  'data-testid': dataTestId,
14480
14758
  disabled = false,
14481
14759
  id,
@@ -14485,7 +14763,7 @@ const DotSwitch = ({
14485
14763
  onChange,
14486
14764
  size = 'medium'
14487
14765
  }) => {
14488
- const rootClasses = useStylesWithRootClass(rootClassName$A, className);
14766
+ const rootClasses = useStylesWithRootClass(rootClassName$C, className);
14489
14767
  const handleChange = event => {
14490
14768
  onChange && onChange(event);
14491
14769
  };
@@ -14515,7 +14793,7 @@ const DotSwitch = ({
14515
14793
  tabIndex: 0
14516
14794
  });
14517
14795
  return jsx(StyledFormControlLabel, {
14518
- className: rootClassName$V,
14796
+ className: rootClassName$X,
14519
14797
  control: switchControl,
14520
14798
  label: label,
14521
14799
  labelPlacement: labelPlacement
@@ -14836,7 +15114,7 @@ const DotDynamicForm = ({
14836
15114
  onChange,
14837
15115
  onSubmit
14838
15116
  }) => {
14839
- const rootClasses = useStylesWithRootClass(rootClassName$D, className);
15117
+ const rootClasses = useStylesWithRootClass(rootClassName$F, className);
14840
15118
  // Memoize this operation so that is doesn't get executed each time this
14841
15119
  // component re-renders
14842
15120
  const initialFormState = useMemo(() => getInitialFormState(config, liveValidation), [config, liveValidation, getInitialFormState]);
@@ -15082,7 +15360,7 @@ const DotDynamicForm = ({
15082
15360
  });
15083
15361
  };
15084
15362
 
15085
- const rootClassName$z = 'dot-inline-edit';
15363
+ const rootClassName$B = 'dot-inline-edit';
15086
15364
  const editModeClassName = 'dot-edit-mode';
15087
15365
  const viewModeClassName = 'dot-view-mode';
15088
15366
  const placeholderClassName = 'dot-placeholder';
@@ -15094,7 +15372,7 @@ const StyledInlineEdit = styled.div`
15094
15372
  theme,
15095
15373
  fullWidth
15096
15374
  }) => css`
15097
- &.${rootClassName$z} {
15375
+ &.${rootClassName$B} {
15098
15376
  align-items: center;
15099
15377
  color: ${theme.palette.figma.typography.black};
15100
15378
  display: ${fullWidth ? 'flex' : 'inline-flex'};
@@ -15308,7 +15586,7 @@ const DotInlineEdit = ({
15308
15586
  bindings,
15309
15587
  charactersLimit,
15310
15588
  className,
15311
- 'data-pendoid': dataPendoId = rootClassName$z,
15589
+ 'data-pendoid': dataPendoId = rootClassName$B,
15312
15590
  'data-testid': dataTestId,
15313
15591
  fullWidth = true,
15314
15592
  hideActionButtons,
@@ -15344,7 +15622,7 @@ const DotInlineEdit = ({
15344
15622
  }
15345
15623
  }, [value]);
15346
15624
  const isSaveDisabled = checkIfEmptyValue(inputValue);
15347
- const rootClasses = useStylesWithRootClass(rootClassName$z, className, editing ? editModeClassName : '');
15625
+ const rootClasses = useStylesWithRootClass(rootClassName$B, className, editing ? editModeClassName : '');
15348
15626
  const handleShowTooltip = visible => {
15349
15627
  if (!editing) {
15350
15628
  setShowTooltip(visible);
@@ -15532,13 +15810,13 @@ const DotInlineEdit = ({
15532
15810
  });
15533
15811
  };
15534
15812
 
15535
- const rootClassName$y = 'dot-navigation-rail';
15813
+ const rootClassName$A = 'dot-navigation-rail';
15536
15814
  const StyledNavigationRail = styled.div`
15537
15815
  ${({
15538
15816
  theme,
15539
15817
  railItemPosition
15540
15818
  }) => css`
15541
- &.${rootClassName$y} {
15819
+ &.${rootClassName$A} {
15542
15820
  background: ${theme.palette.figma.neutral.elevated};
15543
15821
  border-left: 1px solid ${theme.palette.figma.border.default};
15544
15822
  display: flex;
@@ -15598,7 +15876,7 @@ const DotNavigationRail = ({
15598
15876
  railItems,
15599
15877
  selectedIndex
15600
15878
  }) => {
15601
- const rootClasses = useStylesWithRootClass(rootClassName$y, className);
15879
+ const rootClasses = useStylesWithRootClass(rootClassName$A, className);
15602
15880
  const [selectedItemIndex, setSelectedItemIndex] = useState(selectedIndex !== null && selectedIndex !== void 0 ? selectedIndex : defaultIndex);
15603
15881
  /* Used to change selected index programmatically from the consumer component */
15604
15882
  useEffect(() => {
@@ -15649,12 +15927,12 @@ const DotNavigationRail = ({
15649
15927
  });
15650
15928
  };
15651
15929
 
15652
- const rootClassName$x = 'dot-skeleton';
15930
+ const rootClassName$z = 'dot-skeleton';
15653
15931
  const StyledSkeleton = styled(Skeleton)`
15654
15932
  ${({
15655
15933
  theme
15656
15934
  }) => css`
15657
- &.${rootClassName$x} {
15935
+ &.${rootClassName$z} {
15658
15936
  background-color: ${theme.palette.figma.border.darker};
15659
15937
  }
15660
15938
  `}
@@ -15669,7 +15947,7 @@ const DotSkeleton = ({
15669
15947
  width,
15670
15948
  variant
15671
15949
  }) => {
15672
- const rootClasses = useStylesWithRootClass(rootClassName$x, className);
15950
+ const rootClasses = useStylesWithRootClass(rootClassName$z, className);
15673
15951
  return jsx(StyledSkeleton, {
15674
15952
  animation: "wave",
15675
15953
  "aria-label": ariaLabel,
@@ -15684,12 +15962,12 @@ const DotSkeleton = ({
15684
15962
  });
15685
15963
  };
15686
15964
 
15687
- const rootClassName$w = 'dot-split-button-group';
15965
+ const rootClassName$y = 'dot-split-button-group';
15688
15966
  const StyledSplitButtonGroup = styled(ButtonGroup)`
15689
15967
  ${({
15690
15968
  theme
15691
15969
  }) => css`
15692
- &.${rootClassName$w} {
15970
+ &.${rootClassName$y} {
15693
15971
  &.outlined,
15694
15972
  &.text {
15695
15973
  .expand-button {
@@ -15755,7 +16033,7 @@ const DotSplitButton = ({
15755
16033
  autoFocus = false,
15756
16034
  ariaLabel,
15757
16035
  className,
15758
- 'data-pendoid': dataPendoId = rootClassName$w,
16036
+ 'data-pendoid': dataPendoId = rootClassName$y,
15759
16037
  'data-testid': dataTestId,
15760
16038
  defaultMainOptionKey,
15761
16039
  disabled = false,
@@ -15771,7 +16049,7 @@ const DotSplitButton = ({
15771
16049
  tooltipPlacement,
15772
16050
  type = 'primary'
15773
16051
  }) => {
15774
- const rootClasses = useStylesWithRootClass(rootClassName$w, className, type, disabled ? 'disabled' : '');
16052
+ const rootClasses = useStylesWithRootClass(rootClassName$y, className, type, disabled ? 'disabled' : '');
15775
16053
  const [open, setOpen] = useState(false);
15776
16054
  const anchorRef = useRef(null);
15777
16055
  const hasEmptyOptions = options.length === 0;
@@ -15839,15 +16117,15 @@ const DotSplitButton = ({
15839
16117
  });
15840
16118
  };
15841
16119
 
15842
- const rootClassName$v = 'dot-stepper';
16120
+ const rootClassName$x = 'dot-stepper';
15843
16121
  const stepListClassName = 'dot-stepper-list';
15844
- const contentClassName = 'dot-stepper-content';
16122
+ const contentClassName$1 = 'dot-stepper-content';
15845
16123
  const StyledStepper = styled.div`
15846
16124
  ${({
15847
16125
  theme,
15848
16126
  offset
15849
16127
  }) => css`
15850
- &.${rootClassName$v} {
16128
+ &.${rootClassName$x} {
15851
16129
  display: flex;
15852
16130
  align-items: flex-start;
15853
16131
  padding: 0;
@@ -16006,7 +16284,7 @@ const StyledStepper = styled.div`
16006
16284
  }
16007
16285
  }
16008
16286
 
16009
- .${contentClassName} {
16287
+ .${contentClassName$1} {
16010
16288
  width: 100%;
16011
16289
 
16012
16290
  .left {
@@ -16162,7 +16440,7 @@ const DotStepper = ({
16162
16440
  return ['left', 'right'].includes(stepsPosition) ? stepsPosition : 'left';
16163
16441
  }
16164
16442
  };
16165
- const rootClasses = useStylesWithRootClass(rootClassName$v, getStepsPosition(), className);
16443
+ const rootClasses = useStylesWithRootClass(rootClassName$x, getStepsPosition(), className);
16166
16444
  const stepContentClasses = displayInitialContent || displayFinalContent ? 'center-content' : '';
16167
16445
  const stickyBottomClasses = useStylesWithRootClass('actions-container', isStickyBottom ? 'with-top-border' : '');
16168
16446
  const actionsClasses = useStylesWithRootClass('actions', displayInitialContent || displayFinalContent ? 'center-actions' : '');
@@ -16257,7 +16535,7 @@ const DotStepper = ({
16257
16535
  };
16258
16536
  const renderContent = () => {
16259
16537
  return jsx("div", {
16260
- className: contentClassName,
16538
+ className: contentClassName$1,
16261
16539
  ref: stepperContentRef,
16262
16540
  children: jsxs(ScrollbarContainer, {
16263
16541
  offset: offset,
@@ -16380,12 +16658,12 @@ const DotStepper = ({
16380
16658
  });
16381
16659
  };
16382
16660
 
16383
- const rootClassName$u = 'dot-table-pagination-custom-actions';
16661
+ const rootClassName$w = 'dot-table-pagination-custom-actions';
16384
16662
  const StyledTablePaginationCustomActions = styled.div`
16385
16663
  ${({
16386
16664
  theme
16387
16665
  }) => css`
16388
- &.${rootClassName$u} {
16666
+ &.${rootClassName$w} {
16389
16667
  margin-left: ${theme.spacing(2.5)};
16390
16668
  display: flex;
16391
16669
  align-items: center;
@@ -16509,7 +16787,7 @@ const DotTablePaginationCustomActions = props => {
16509
16787
  });
16510
16788
  };
16511
16789
  return jsxs(StyledTablePaginationCustomActions, {
16512
- className: rootClassName$u,
16790
+ className: rootClassName$w,
16513
16791
  children: [jsx(DotIconButton, {
16514
16792
  ariaLabel: "previous page",
16515
16793
  className: "page-control-button",
@@ -16556,7 +16834,7 @@ const DotTablePaginationCustomActions = props => {
16556
16834
  });
16557
16835
  };
16558
16836
 
16559
- const rootClassName$t = 'dot-table-pagination';
16837
+ const rootClassName$v = 'dot-table-pagination';
16560
16838
  // TO-DO: Determine how to apply styles to standard popper element
16561
16839
  const paginationItemClassName = 'dot-pagination-menu-item';
16562
16840
  const StyledTablePagination = styled.div`
@@ -16564,7 +16842,7 @@ const StyledTablePagination = styled.div`
16564
16842
  theme,
16565
16843
  typography
16566
16844
  }) => css`
16567
- .${rootClassName$t} {
16845
+ .${rootClassName$v} {
16568
16846
  border-top: 1px solid ${theme.palette.figma.border.default};
16569
16847
 
16570
16848
  .dot-caption,
@@ -16607,7 +16885,7 @@ const DotTablePagination = ({
16607
16885
  showJumpToPageActionButton = false,
16608
16886
  typography = 'subtitle2'
16609
16887
  }) => {
16610
- const rootClasses = useStylesWithRootClass(rootClassName$t, className, showJumpToPageActionButton ? 'with-custom-actions' : '');
16888
+ const rootClasses = useStylesWithRootClass(rootClassName$v, className, showJumpToPageActionButton ? 'with-custom-actions' : '');
16611
16889
  const handlePageChange = (event, newPage) => {
16612
16890
  onPageChange && onPageChange(newPage);
16613
16891
  };
@@ -16615,7 +16893,7 @@ const DotTablePagination = ({
16615
16893
  onRowsPerPageChange && onRowsPerPageChange(evt);
16616
16894
  };
16617
16895
  return /* Container is used to pass 'typography' prop to a styled component */jsx(StyledTablePagination, {
16618
- className: rootClassName$t,
16896
+ className: rootClassName$v,
16619
16897
  typography: typography,
16620
16898
  children: jsx(TablePagination, {
16621
16899
  ActionsComponent: showJumpToPageActionButton ? DotTablePaginationCustomActions : undefined,
@@ -16641,14 +16919,14 @@ const DotTablePagination = ({
16641
16919
  });
16642
16920
  };
16643
16921
 
16644
- const rootClassName$s = 'dot-table';
16922
+ const rootClassName$u = 'dot-table';
16645
16923
  const MULTISELECT_COLUMN_WIDTH = 52;
16646
16924
  const COLLAPSIBLE_COLUMN_WIDTH = 42;
16647
16925
  const StyledPaper$1 = styled(Paper)`
16648
16926
  ${({
16649
16927
  theme
16650
16928
  }) => css`
16651
- &.${rootClassName$s} {
16929
+ &.${rootClassName$u} {
16652
16930
  background: ${theme.palette.figma.background.level0.componentsBackground};
16653
16931
  border: 1px solid ${theme.palette.figma.border.default};
16654
16932
  overflow: hidden;
@@ -16791,10 +17069,10 @@ const StyledMenu$1 = styled(DotMenu)`
16791
17069
  }
16792
17070
  `;
16793
17071
 
16794
- const rootClassName$r = 'dot-tbody';
17072
+ const rootClassName$t = 'dot-tbody';
16795
17073
  const StyledTableBody = styled(TableBody)`
16796
17074
  ${() => css`
16797
- &.${rootClassName$r} {
17075
+ &.${rootClassName$t} {
16798
17076
  tr:last-child td {
16799
17077
  border-bottom: none;
16800
17078
  }
@@ -16989,12 +17267,12 @@ function stableSort(array, comparator) {
16989
17267
  return stabilizedThis.map(el => el[0]);
16990
17268
  }
16991
17269
 
16992
- const rootClassName$q = 'dot-td';
17270
+ const rootClassName$s = 'dot-td';
16993
17271
  const StyledTableCell = styled(TableCell)`
16994
17272
  ${({
16995
17273
  theme
16996
17274
  }) => css`
16997
- &.${rootClassName$q} {
17275
+ &.${rootClassName$s} {
16998
17276
  padding-top: 0;
16999
17277
  padding-bottom: 0;
17000
17278
 
@@ -17089,7 +17367,7 @@ const DotBodyCell = ({
17089
17367
  const isOverflowing = actionTableCellWidth > (wrapperRef === null || wrapperRef === void 0 ? void 0 : wrapperRef.current.clientWidth);
17090
17368
  setShowMenu(isOverflowing);
17091
17369
  };
17092
- const rootClasses = useStylesWithRootClass(rootClassName$q, className, noWrap && 'noWrap', Array.isArray(value) && 'actionItems');
17370
+ const rootClasses = useStylesWithRootClass(rootClassName$s, className, noWrap && 'noWrap', Array.isArray(value) && 'actionItems');
17093
17371
  const getTableCellValue = () => {
17094
17372
  if (Array.isArray(value)) {
17095
17373
  return jsx("div", {
@@ -17157,13 +17435,13 @@ const EmptyDotRow = ({
17157
17435
  const TABLE_TYPOGRAPHY_VARIANT = 'body1';
17158
17436
  const TABLE_DEFAULT_SKELETON_ROWS = 4;
17159
17437
 
17160
- const rootClassName$p = 'dot-th-checkbox';
17438
+ const rootClassName$r = 'dot-th-checkbox';
17161
17439
  const styledTableHeaderCheckboxElement = (isCell = true) => {
17162
17440
  return styled(isCell ? TableCell : 'div')`
17163
17441
  ${({
17164
17442
  theme
17165
17443
  }) => css`
17166
- &.${rootClassName$p} {
17444
+ &.${rootClassName$r} {
17167
17445
  background: ${theme.palette.figma.background.level0.componentsBackground};
17168
17446
  padding: ${theme.spacing(0, 1)};
17169
17447
  width: ${theme.spacing(5)};
@@ -17191,7 +17469,7 @@ const DotHeaderCheckboxCell = ({
17191
17469
  isFromTableSelectionToolbar,
17192
17470
  multiSelectHeader
17193
17471
  }) => {
17194
- const rootClasses = useStylesWithRootClass(rootClassName$p, className, isFromTableSelectionToolbar ? 'table-selection-toolbar-checkbox' : '');
17472
+ const rootClasses = useStylesWithRootClass(rootClassName$r, className, isFromTableSelectionToolbar ? 'table-selection-toolbar-checkbox' : '');
17195
17473
  const [multiSelectState, setMultiSelectState] = useState('unchecked');
17196
17474
  const {
17197
17475
  onCheckAllChange,
@@ -17241,12 +17519,12 @@ const DotHeaderCheckboxCell = ({
17241
17519
  });
17242
17520
  };
17243
17521
 
17244
- const rootClassName$o = 'dot-th';
17522
+ const rootClassName$q = 'dot-th';
17245
17523
  const StyledTableHeaderCell = styled(TableCell)`
17246
17524
  ${({
17247
17525
  theme
17248
17526
  }) => css`
17249
- &.${rootClassName$o} {
17527
+ &.${rootClassName$q} {
17250
17528
  background: ${theme.palette.figma.background.level0.componentsBackground};
17251
17529
 
17252
17530
  &.MuiTableCell-alignCenter > span.MuiTableSortLabel-root {
@@ -17286,7 +17564,7 @@ const DotHeaderCell = ({
17286
17564
  value,
17287
17565
  width
17288
17566
  }) => {
17289
- const rootClasses = useStylesWithRootClass(rootClassName$o, pinned ? 'dot-pinned-cell' : '', className);
17567
+ const rootClasses = useStylesWithRootClass(rootClassName$q, pinned ? 'dot-pinned-cell' : '', className);
17290
17568
  const headerTitle = isString$2(value) ? value : null;
17291
17569
  const formattedValue = getFormattedTableCellValue(value, typography);
17292
17570
  const getCellValue = () => {
@@ -17377,12 +17655,12 @@ const DotHeaderRow = ({
17377
17655
  });
17378
17656
  };
17379
17657
 
17380
- const rootClassName$n = 'dot-tr';
17658
+ const rootClassName$p = 'dot-tr';
17381
17659
  const StyledTableRowStyles = styled(TableRow)`
17382
17660
  ${({
17383
17661
  theme
17384
17662
  }) => css`
17385
- &.${rootClassName$n} {
17663
+ &.${rootClassName$p} {
17386
17664
  &.selected {
17387
17665
  &,
17388
17666
  .dot-td.dot-pinned-cell,
@@ -17608,12 +17886,12 @@ const ExpandCollapseCell = ({
17608
17886
  });
17609
17887
  };
17610
17888
 
17611
- const rootClassName$m = 'dot-td-checkbox';
17889
+ const rootClassName$o = 'dot-td-checkbox';
17612
17890
  const StyledTableBodyCheckboxCell = styled(TableCell)`
17613
17891
  ${({
17614
17892
  theme
17615
17893
  }) => css`
17616
- &.${rootClassName$m} {
17894
+ &.${rootClassName$o} {
17617
17895
  padding: ${theme.spacing(0, 1)};
17618
17896
  width: ${theme.spacing(5)};
17619
17897
 
@@ -17632,7 +17910,7 @@ const DotBodyCheckboxCell = ({
17632
17910
  onChange,
17633
17911
  rowId
17634
17912
  }) => {
17635
- const rootClasses = useStylesWithRootClass(rootClassName$m, className);
17913
+ const rootClasses = useStylesWithRootClass(rootClassName$o, className);
17636
17914
  const [isCheckboxChecked, setIsCheckboxChecked] = useState(isChecked);
17637
17915
  /** This effect is used when 'checked' status is changed from the outside */
17638
17916
  useEffect(() => {
@@ -17685,7 +17963,7 @@ const DotTableRow = ({
17685
17963
  selectedTableRowIds
17686
17964
  } = multiSelectBody || {};
17687
17965
  const isCheckboxChecked = selectedTableRowIds && selectedTableRowIds.includes(id) || false;
17688
- const rootClasses = useStylesWithRootClass(rootClassName$n, isCheckboxChecked ? 'selected' : undefined, className);
17966
+ const rootClasses = useStylesWithRootClass(rootClassName$p, isCheckboxChecked ? 'selected' : undefined, className);
17689
17967
  const renderCheckboxCell = () => {
17690
17968
  return jsx(DotBodyCheckboxCell, {
17691
17969
  ariaLabel: "Click to select this row",
@@ -17806,7 +18084,7 @@ const DotTableBody = ({
17806
18084
  return jsxs(Fragment, {
17807
18085
  children: [jsx(StyledTableBody, {
17808
18086
  classes: {
17809
- root: rootClassName$r
18087
+ root: rootClassName$t
17810
18088
  },
17811
18089
  children: getTableBodyRows()
17812
18090
  }), jsx(StyledMenu$1, {
@@ -17821,12 +18099,12 @@ const DotTableBody = ({
17821
18099
  });
17822
18100
  };
17823
18101
 
17824
- const rootClassName$l = 'dot-table-selection-toolbar';
18102
+ const rootClassName$n = 'dot-table-selection-toolbar';
17825
18103
  const StyledTableSelectionToolbar = styled(DotActionToolbar)`
17826
18104
  ${({
17827
18105
  theme
17828
18106
  }) => css`
17829
- &.${rootClassName$l} {
18107
+ &.${rootClassName$n} {
17830
18108
  display: flex;
17831
18109
  align-items: center;
17832
18110
  justify-content: space-between;
@@ -17881,7 +18159,7 @@ const DotTableSelectionToolbar = ({
17881
18159
  multiSelectHeader,
17882
18160
  selectedRowsNumber
17883
18161
  }) => {
17884
- const rootClasses = useStylesWithRootClass(rootClassName$l, className);
18162
+ const rootClasses = useStylesWithRootClass(rootClassName$n, className);
17885
18163
  return jsxs(StyledTableSelectionToolbar, {
17886
18164
  ariaLabel: ariaLabel,
17887
18165
  className: rootClasses,
@@ -17967,7 +18245,7 @@ const DotTable = ({
17967
18245
  setPage(page);
17968
18246
  }
17969
18247
  }, [page]);
17970
- const rootClasses = useStylesWithRootClass(rootClassName$s, className, loading ? 'loading' : '', showMultiselectOverTableHeaderRow ? 'with-multiselect-over-table-header' : '', showMultiselectOverTableHeaderRow && !selectedRowsNumber ? 'hidden-multiselect' : '');
18248
+ const rootClasses = useStylesWithRootClass(rootClassName$u, className, loading ? 'loading' : '', showMultiselectOverTableHeaderRow ? 'with-multiselect-over-table-header' : '', showMultiselectOverTableHeaderRow && !selectedRowsNumber ? 'hidden-multiselect' : '');
17971
18249
  const updateData = (newOrder, newOrderBy, newPage, newRowsPerPage) => {
17972
18250
  const newData = stableSort(data, getComparator(newOrder, newOrderBy));
17973
18251
  setPageData(newRowsPerPage ? newData.slice(newPage * newRowsPerPage, newPage * newRowsPerPage + newRowsPerPage) : newData);
@@ -18170,7 +18448,7 @@ const DotTableAction = ({
18170
18448
  });
18171
18449
  };
18172
18450
 
18173
- const rootClassName$k = 'dot-table-actions';
18451
+ const rootClassName$m = 'dot-table-actions';
18174
18452
  const TableActionsContainer = styled.div`
18175
18453
  overflow: hidden;
18176
18454
  text-overflow: clip;
@@ -18260,7 +18538,7 @@ const DotTableActions = ({
18260
18538
  };
18261
18539
  return jsxs(Fragment, {
18262
18540
  children: [jsxs(TableActionsContainer, {
18263
- className: rootClassName$k,
18541
+ className: rootClassName$m,
18264
18542
  ref: wrapperRef,
18265
18543
  children: [!showMenu && renderTableActions(), (showMenu || actions.length > 2) && jsx(DotIconButton, {
18266
18544
  ariaLabel: "more options",
@@ -18284,12 +18562,12 @@ const DotTableActions = ({
18284
18562
  });
18285
18563
  };
18286
18564
 
18287
- const rootClassName$j = 'dot-tabs';
18565
+ const rootClassName$l = 'dot-tabs';
18288
18566
  const StyledTabs = styled(Tabs)`
18289
18567
  ${({
18290
18568
  theme
18291
18569
  }) => css`
18292
- &.${rootClassName$j} {
18570
+ &.${rootClassName$l} {
18293
18571
  &.MuiTabs-root {
18294
18572
  width: 100%;
18295
18573
  }
@@ -18342,7 +18620,7 @@ const DotTabs = ({
18342
18620
  centered = false,
18343
18621
  className,
18344
18622
  color,
18345
- 'data-pendoid': dataPendoId = rootClassName$j,
18623
+ 'data-pendoid': dataPendoId = rootClassName$l,
18346
18624
  'data-testid': dataTestId,
18347
18625
  initialValue = 0,
18348
18626
  onChange,
@@ -18351,7 +18629,7 @@ const DotTabs = ({
18351
18629
  variant = 'standard'
18352
18630
  }) => {
18353
18631
  const [value, setValue] = useState(initialValue);
18354
- const rootClasses = useStylesWithRootClass(rootClassName$j, className);
18632
+ const rootClasses = useStylesWithRootClass(rootClassName$l, className);
18355
18633
  useEffect(() => {
18356
18634
  if (color) {
18357
18635
  console.warn('DEPRECATED: `color` prop is deprecated in `<DotTabs>`, please remove any usage of it in your application.');
@@ -18405,9 +18683,9 @@ const DotTabs = ({
18405
18683
  });
18406
18684
  };
18407
18685
 
18408
- const rootClassName$i = 'dot-file-upload';
18409
- const containerClassName = `${rootClassName$i}-container`;
18410
- const dropZoneClassName = `${rootClassName$i}-drop-zone`;
18686
+ const rootClassName$k = 'dot-file-upload';
18687
+ const containerClassName = `${rootClassName$k}-container`;
18688
+ const dropZoneClassName = `${rootClassName$k}-drop-zone`;
18411
18689
  const StyledFileUploadContainer = styled.div`
18412
18690
  ${({
18413
18691
  theme
@@ -18427,7 +18705,7 @@ const StyledFileUpload = styled.div`
18427
18705
  ${({
18428
18706
  theme
18429
18707
  }) => css`
18430
- &.${rootClassName$i}.${dropZoneClassName} {
18708
+ &.${rootClassName$k}.${dropZoneClassName} {
18431
18709
  align-items: center;
18432
18710
  background: ${theme.palette.figma.background.level0.bckgGray};
18433
18711
  border: 2px dashed ${theme.palette.figma.border.defaultButton};
@@ -18459,12 +18737,12 @@ const StyledFileUpload = styled.div`
18459
18737
  `}
18460
18738
  `;
18461
18739
 
18462
- const rootClassName$h = 'dot-file-list-item';
18740
+ const rootClassName$j = 'dot-file-list-item';
18463
18741
  const StyledFileListItem = styled(StyledListItem)`
18464
18742
  ${({
18465
18743
  theme
18466
18744
  }) => css`
18467
- &.${rootClassName$h} {
18745
+ &.${rootClassName$j} {
18468
18746
  border-bottom: 1px solid ${theme.palette.figma.border.default};
18469
18747
  &:hover {
18470
18748
  cursor: pointer;
@@ -18476,7 +18754,7 @@ const StyledFileListItem = styled(StyledListItem)`
18476
18754
  outline: none;
18477
18755
  }
18478
18756
 
18479
- &.file-success:not(:hover, :focus-visible) .${rootClassName$h}-end-icon {
18757
+ &.file-success:not(:hover, :focus-visible) .${rootClassName$j}-end-icon {
18480
18758
  i:before {
18481
18759
  color: ${theme.palette.figma.success.normal};
18482
18760
  }
@@ -18486,7 +18764,7 @@ const StyledFileListItem = styled(StyledListItem)`
18486
18764
  }
18487
18765
  }
18488
18766
 
18489
- &.file-error:not(:hover, :focus-visible) .${rootClassName$h}-end-icon {
18767
+ &.file-error:not(:hover, :focus-visible) .${rootClassName$j}-end-icon {
18490
18768
  i:before,
18491
18769
  .MuiListItemText-secondary {
18492
18770
  color: ${theme.palette.figma.destructive.normal};
@@ -18528,7 +18806,7 @@ const DotFileListItem = ({
18528
18806
  onKeyPress,
18529
18807
  tabIndex = 0
18530
18808
  }) => {
18531
- const rootClasses = useStylesWithRootClass(rootClassName$h, className, error ? 'file-error' : 'file-success');
18809
+ const rootClasses = useStylesWithRootClass(rootClassName$j, className, error ? 'file-error' : 'file-success');
18532
18810
  const defaultIcon = error ? 'error-solid' : 'check-solid';
18533
18811
  const [endIcon, setEndIcon] = useState(defaultIcon);
18534
18812
  const handleItemClick = clickedFile => _event => onClick === null || onClick === void 0 ? void 0 : onClick(clickedFile);
@@ -18561,7 +18839,7 @@ const DotFileListItem = ({
18561
18839
  })]
18562
18840
  }), jsx(DotIconButton, {
18563
18841
  ariaLabel: "delete file",
18564
- className: `${rootClassName$h}-end-icon`,
18842
+ className: `${rootClassName$j}-end-icon`,
18565
18843
  "data-testid": dataTestId && `${dataTestId}-end-icon`,
18566
18844
  disabled: disableDelete,
18567
18845
  iconId: endIcon,
@@ -18685,7 +18963,7 @@ const DotFileUpload = ({
18685
18963
  buttonOnly = false,
18686
18964
  className,
18687
18965
  contentErrors,
18688
- 'data-pendoid': dataPendoId = rootClassName$i,
18966
+ 'data-pendoid': dataPendoId = rootClassName$k,
18689
18967
  'data-testid': dataTestId,
18690
18968
  disabled,
18691
18969
  hideFilesList,
@@ -18698,7 +18976,7 @@ const DotFileUpload = ({
18698
18976
  const [uploadedFiles, setUploadedFiles] = useState([]);
18699
18977
  const [hasMaxFilesError, setHasMaxFilesError] = useState(false);
18700
18978
  const isUploadDisabled = disabled || maxFiles && uploadedFiles.length >= maxFiles;
18701
- const rootClasses = useStylesWithRootClass(rootClassName$i, className, !buttonOnly ? dropZoneClassName : '', isUploadDisabled ? 'disabled' : '');
18979
+ const rootClasses = useStylesWithRootClass(rootClassName$k, className, !buttonOnly ? dropZoneClassName : '', isUploadDisabled ? 'disabled' : '');
18702
18980
  const maxFilesClasses = useStylesWithRootClass('dot-max-files-message', hasMaxFilesError ? 'dot-max-files-reached' : '');
18703
18981
  const allowMultiple = maxFiles === undefined || maxFiles > 1;
18704
18982
  const setNewlyUploadedFiles = (acceptedFiles, fileRejections) => {
@@ -18770,13 +19048,13 @@ const DotFileUpload = ({
18770
19048
  });
18771
19049
  };
18772
19050
 
18773
- const rootClassName$g = 'dot-fab';
19051
+ const rootClassName$i = 'dot-fab';
18774
19052
  const StyledFab = styled(Fab)`
18775
19053
  ${({
18776
19054
  theme,
18777
19055
  color
18778
19056
  }) => css`
18779
- &.${rootClassName$g} {
19057
+ &.${rootClassName$i} {
18780
19058
  ${color === 'default' ? css`
18781
19059
  background-color: ${theme.palette.figma.typography.white};
18782
19060
  color: ${theme.palette.figma.typography.black};
@@ -18816,7 +19094,7 @@ const DotFab = ({
18816
19094
  children,
18817
19095
  className,
18818
19096
  color = 'default',
18819
- 'data-pendoid': dataPendoId = rootClassName$g,
19097
+ 'data-pendoid': dataPendoId = rootClassName$i,
18820
19098
  'data-testid': dataTestId,
18821
19099
  disableRipple = false,
18822
19100
  disabled = false,
@@ -18824,7 +19102,7 @@ const DotFab = ({
18824
19102
  size = 'large',
18825
19103
  variant = 'circular'
18826
19104
  }) => {
18827
- const rootClasses = useStylesWithRootClass(rootClassName$g, className);
19105
+ const rootClasses = useStylesWithRootClass(rootClassName$i, className);
18828
19106
  return jsx(StyledFab, {
18829
19107
  "aria-label": ariaLabel,
18830
19108
  color: color,
@@ -18840,12 +19118,12 @@ const DotFab = ({
18840
19118
  });
18841
19119
  };
18842
19120
 
18843
- const rootClassName$f = 'dot-divider';
19121
+ const rootClassName$h = 'dot-divider';
18844
19122
  const StyledDivider = styled(Divider)`
18845
19123
  ${({
18846
19124
  theme
18847
19125
  }) => css`
18848
- &.${rootClassName$f} {
19126
+ &.${rootClassName$h} {
18849
19127
  color: ${theme.palette.figma.border.darker};
18850
19128
 
18851
19129
  .MuiDivider-light {
@@ -18865,7 +19143,7 @@ const DotDivider = ({
18865
19143
  orientation,
18866
19144
  variant
18867
19145
  }) => {
18868
- const rootClasses = useStylesWithRootClass(rootClassName$f, className);
19146
+ const rootClasses = useStylesWithRootClass(rootClassName$h, className);
18869
19147
  return jsx(StyledDivider, {
18870
19148
  absolute: absolute,
18871
19149
  "aria-label": ariaLabel,
@@ -18894,7 +19172,7 @@ const DotPopper = ({
18894
19172
  placement
18895
19173
  }) => {
18896
19174
  const [arrowRef, setArrowRef] = useState(null);
18897
- const rootClasses = useStylesWithRootClass(rootClassName$1h, className);
19175
+ const rootClasses = useStylesWithRootClass(rootClassName$1j, className);
18898
19176
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18899
19177
  const handleClickAway = event => {
18900
19178
  if (onClickAway && (!anchorEl || !anchorEl.contains(event.currentTarget))) {
@@ -18959,14 +19237,14 @@ const getListItemLayout = listItems => {
18959
19237
  }));
18960
19238
  };
18961
19239
 
18962
- const rootClassName$e = 'dot-draggable-list';
19240
+ const rootClassName$g = 'dot-draggable-list';
18963
19241
  const listItemClassName = 'dot-draggable-list-item';
18964
19242
  const StyledDraggableList = styled.div`
18965
19243
  ${({
18966
19244
  theme,
18967
19245
  draggableHandle
18968
19246
  }) => css`
18969
- &.${rootClassName$e} {
19247
+ &.${rootClassName$g} {
18970
19248
  padding: ${theme.spacing(1, 0)};
18971
19249
  position: relative;
18972
19250
 
@@ -19001,7 +19279,7 @@ const ListGridLayout = WidthProvider(GridLayout);
19001
19279
  const DotDraggableList = ({
19002
19280
  ariaLabel,
19003
19281
  className,
19004
- 'data-pendoid': dataPendoId = rootClassName$e,
19282
+ 'data-pendoid': dataPendoId = rootClassName$g,
19005
19283
  'data-testid': dataTestId,
19006
19284
  disableDrag,
19007
19285
  draggableHandle,
@@ -19010,7 +19288,7 @@ const DotDraggableList = ({
19010
19288
  rowHeight = DEFAULT_LIST_ITEM_HEIGHT,
19011
19289
  width = DEFAULT_LIST_WIDTH
19012
19290
  }) => {
19013
- const rootClasses = useStylesWithRootClass(rootClassName$e, className, draggableHandle ? 'with-draggable-handle' : '');
19291
+ const rootClasses = useStylesWithRootClass(rootClassName$g, className, draggableHandle ? 'with-draggable-handle' : '');
19014
19292
  const listItemClasses = useStylesWithRootClass(listItemClassName, draggableHandle && !disableDrag ? 'with-handle-grab-cursor' : '', draggableHandle || disableDrag ? 'with-default-cursor' : '');
19015
19293
  const listWidth = isNumber(width) ? `${width}px` : width;
19016
19294
  const [orderedItems, setOrderedItems] = useState([]);
@@ -22286,7 +22564,7 @@ cjs.exports.DraggableCore = DraggableCore;
22286
22564
  var cjsExports = cjs.exports;
22287
22565
  var Draggable$1 = /*@__PURE__*/getDefaultExportFromCjs(cjsExports);
22288
22566
 
22289
- const rootClassName$d = 'dot-draggable-window';
22567
+ const rootClassName$f = 'dot-draggable-window';
22290
22568
  const defaultWidth = '600px';
22291
22569
  const defaultHeight = '324px';
22292
22570
  const StyledPaper = styled(Paper)`
@@ -22295,7 +22573,7 @@ const StyledPaper = styled(Paper)`
22295
22573
  $maxHeight,
22296
22574
  $maxWidth
22297
22575
  }) => css`
22298
- &.${rootClassName$d} {
22576
+ &.${rootClassName$f} {
22299
22577
  max-width: ${$maxWidth !== null && $maxWidth !== void 0 ? $maxWidth : defaultWidth};
22300
22578
  max-height: ${$maxHeight !== null && $maxHeight !== void 0 ? $maxHeight : defaultHeight};
22301
22579
  ${$maxWidth ? '' : `width: ${defaultWidth};`}
@@ -22333,7 +22611,7 @@ const StyledPaper = styled(Paper)`
22333
22611
  const DotDraggableWindow = ({
22334
22612
  ariaLabel,
22335
22613
  anchorEl,
22336
- 'data-pendoid': dataPendoId = rootClassName$d,
22614
+ 'data-pendoid': dataPendoId = rootClassName$f,
22337
22615
  'data-testid': dataTestId,
22338
22616
  className,
22339
22617
  children,
@@ -22342,7 +22620,7 @@ const DotDraggableWindow = ({
22342
22620
  onClose,
22343
22621
  title
22344
22622
  }) => {
22345
- const rootClasses = useStylesWithRootClass(rootClassName$d, className);
22623
+ const rootClasses = useStylesWithRootClass(rootClassName$f, className);
22346
22624
  const nodeRef = useRef(null);
22347
22625
  return jsx(Draggable$1, {
22348
22626
  bounds: "body",
@@ -22384,12 +22662,12 @@ const DotDraggableWindow = ({
22384
22662
  });
22385
22663
  };
22386
22664
 
22387
- const rootClassName$c = 'dot-linear-progress';
22665
+ const rootClassName$e = 'dot-linear-progress';
22388
22666
  const StyledLinearProgress = styled(LinearProgress)`
22389
22667
  ${({
22390
22668
  theme
22391
22669
  }) => css`
22392
- &.${rootClassName$c} {
22670
+ &.${rootClassName$e} {
22393
22671
  &.MuiLinearProgress-colorError {
22394
22672
  color: ${theme.palette.figma.inProgress.error};
22395
22673
  }
@@ -22421,7 +22699,7 @@ const DotLinearProgress = ({
22421
22699
  valueBuffer,
22422
22700
  variant = 'indeterminate'
22423
22701
  }) => {
22424
- const rootClasses = useStylesWithRootClass(rootClassName$c, className);
22702
+ const rootClasses = useStylesWithRootClass(rootClassName$e, className);
22425
22703
  useEffect(() => {
22426
22704
  if (!ariaLabel) {
22427
22705
  console.warn('a11y: DotLinearProgress must have an ariaLabel to describe the progress bar');
@@ -22472,7 +22750,7 @@ const DotDatePicker = ({
22472
22750
  autoFocus = false,
22473
22751
  className,
22474
22752
  closeOnSelect = true,
22475
- 'data-pendoid': dataPendoId = rootClassName$G,
22753
+ 'data-pendoid': dataPendoId = rootClassName$I,
22476
22754
  'data-testid': dataTestId,
22477
22755
  defaultValue,
22478
22756
  disableOpenPicker,
@@ -22513,7 +22791,7 @@ const DotDatePicker = ({
22513
22791
  const hasBothValueAndDefaultValue = value !== undefined && defaultValue !== undefined;
22514
22792
  const isInputReadOnly = readOnly || hasValueWithoutChangeHandler || hasBothValueAndDefaultValue;
22515
22793
  const inputRef = useRef(null);
22516
- const rootClasses = useStylesWithRootClass(rootClassName$G, className, isInputReadOnly ? 'read-only' : '');
22794
+ const rootClasses = useStylesWithRootClass(rootClassName$I, className, isInputReadOnly ? 'read-only' : '');
22517
22795
  const containerClasses = useStylesWithRootClass(containerClassName$2, fullWidth ? 'full-width' : '', className);
22518
22796
  const focusInput = ref => {
22519
22797
  setTimeout(() => {
@@ -22734,7 +23012,7 @@ const DotTimePicker = ({
22734
23012
  ariaLabel,
22735
23013
  autoFocus = false,
22736
23014
  className,
22737
- 'data-pendoid': dataPendoId = rootClassName$F,
23015
+ 'data-pendoid': dataPendoId = rootClassName$H,
22738
23016
  'data-testid': dataTestId,
22739
23017
  defaultValue,
22740
23018
  disableOpenPicker = false,
@@ -22766,7 +23044,7 @@ const DotTimePicker = ({
22766
23044
  const hasValueWithoutChangeHandler = value !== undefined && onChange === undefined;
22767
23045
  const hasBothValueAndDefaultValue = value !== undefined && defaultValue !== undefined;
22768
23046
  const isComponentReadOnly = readOnly || hasValueWithoutChangeHandler || hasBothValueAndDefaultValue;
22769
- const rootClasses = useStylesWithRootClass(rootClassName$F, className, isComponentReadOnly ? 'read-only' : '');
23047
+ const rootClasses = useStylesWithRootClass(rootClassName$H, className, isComponentReadOnly ? 'read-only' : '');
22770
23048
  const containerClasses = useStylesWithRootClass(containerClassName$1, fullWidth ? 'full-width' : '', className);
22771
23049
  const inputRef = useRef(null);
22772
23050
  const [isPickerOpened, setIsPickerOpened] = useState(false);
@@ -23062,13 +23340,13 @@ const DotTimePicker = ({
23062
23340
  });
23063
23341
  };
23064
23342
 
23065
- const rootClassName$b = 'dot-carousel';
23343
+ const rootClassName$d = 'dot-carousel';
23066
23344
  const StyledCarousel = styled.div`
23067
23345
  ${({
23068
23346
  backgroundColor,
23069
23347
  theme
23070
23348
  }) => css`
23071
- &.${rootClassName$b} {
23349
+ &.${rootClassName$d} {
23072
23350
  display: flex;
23073
23351
  flex-direction: column;
23074
23352
  justify-content: space-between;
@@ -23168,7 +23446,7 @@ const DotCarousel = ({
23168
23446
  progressIndicator,
23169
23447
  showPagesButtons = true
23170
23448
  }) => {
23171
- const rootClasses = useStylesWithRootClass(rootClassName$b, className, backgroundColor ? 'with-background-color' : '');
23449
+ const rootClasses = useStylesWithRootClass(rootClassName$d, className, backgroundColor ? 'with-background-color' : '');
23172
23450
  const rightNavigationButtonClasses = useStylesWithRootClass('carousel-right-arrow', displayNavigationButtons);
23173
23451
  const leftNavigationButtonClasses = useStylesWithRootClass('carousel-left-arrow', displayNavigationButtons);
23174
23452
  const createUuids = () => {
@@ -23319,13 +23597,13 @@ const DotCarousel = ({
23319
23597
  });
23320
23598
  };
23321
23599
 
23322
- const rootClassName$a = 'dot-sticky-with-border';
23600
+ const rootClassName$c = 'dot-sticky-with-border';
23323
23601
  const StyledStickyWithBorder = styled.div`
23324
23602
  ${({
23325
23603
  pinnedStickyBorder,
23326
23604
  unpinnedStickyBorder
23327
23605
  }) => css`
23328
- &.${rootClassName$a} {
23606
+ &.${rootClassName$c} {
23329
23607
  position: sticky;
23330
23608
  top: -1px;
23331
23609
 
@@ -23353,7 +23631,7 @@ const DotStickyWithBorder = ({
23353
23631
  }) => {
23354
23632
  const [isPinned, setIsPinned] = useState(false);
23355
23633
  const ref = useRef(undefined);
23356
- const rootClasses = useStylesWithRootClass(rootClassName$a, className, isPinned ? 'pinned' : 'unpinned');
23634
+ const rootClasses = useStylesWithRootClass(rootClassName$c, className, isPinned ? 'pinned' : 'unpinned');
23357
23635
  useEffect(() => {
23358
23636
  const element = ref.current;
23359
23637
  const observer = new IntersectionObserver(([e]) => setIsPinned(e.intersectionRatio < 1), {
@@ -23375,18 +23653,18 @@ const DotStickyWithBorder = ({
23375
23653
  });
23376
23654
  };
23377
23655
 
23378
- const rootClassName$9 = 'dot--board';
23656
+ const rootClassName$b = 'dot--board';
23379
23657
  const classNames$5 = {
23380
- root: rootClassName$9,
23381
- spacingNormal: `${rootClassName$9}-normal`,
23382
- spacingDense: `${rootClassName$9}-dense`,
23383
- loading: `${rootClassName$9}-loading`
23658
+ root: rootClassName$b,
23659
+ spacingNormal: `${rootClassName$b}-normal`,
23660
+ spacingDense: `${rootClassName$b}-dense`,
23661
+ loading: `${rootClassName$b}-loading`
23384
23662
  };
23385
23663
  const StyledBoard = styled.div`
23386
23664
  ${({
23387
23665
  theme
23388
23666
  }) => css`
23389
- &.${rootClassName$9} {
23667
+ &.${rootClassName$b} {
23390
23668
  display: flex;
23391
23669
  overflow-x: auto;
23392
23670
  flex: 1;
@@ -23394,7 +23672,7 @@ const StyledBoard = styled.div`
23394
23672
  }
23395
23673
 
23396
23674
  @media (max-width: 650px) {
23397
- &.${rootClassName$9} {
23675
+ &.${rootClassName$b} {
23398
23676
  justify-content: center;
23399
23677
  }
23400
23678
  }
@@ -23495,18 +23773,18 @@ const Board = React__default.forwardRef(({
23495
23773
  });
23496
23774
  });
23497
23775
 
23498
- const rootClassName$8 = 'dot--board-column';
23776
+ const rootClassName$a = 'dot--board-column';
23499
23777
  const classNames$4 = {
23500
- root: rootClassName$8,
23501
- spacingNormal: `${rootClassName$8}-normal`,
23502
- spacingDense: `${rootClassName$8}-dense`,
23503
- collapse: `${rootClassName$8}-collapse`
23778
+ root: rootClassName$a,
23779
+ spacingNormal: `${rootClassName$a}-normal`,
23780
+ spacingDense: `${rootClassName$a}-dense`,
23781
+ collapse: `${rootClassName$a}-collapse`
23504
23782
  };
23505
23783
  const StyledBoardColumn = styled.div`
23506
23784
  ${({
23507
23785
  theme
23508
23786
  }) => css`
23509
- &.${rootClassName$8} {
23787
+ &.${rootClassName$a} {
23510
23788
  display: flex;
23511
23789
  flex-direction: column;
23512
23790
  overflow: hidden;
@@ -23597,13 +23875,13 @@ const BoardColumn = React__default.forwardRef(({
23597
23875
  });
23598
23876
  });
23599
23877
 
23600
- const rootClassName$7 = 'dot--board-column-header';
23878
+ const rootClassName$9 = 'dot--board-column-header';
23601
23879
  const classNames$3 = {
23602
- root: rootClassName$7,
23603
- spacingNormal: `${rootClassName$7}-normal`,
23604
- spacingDense: `${rootClassName$7}-dense`,
23605
- colorBar: `${rootClassName$7}-color-bar`,
23606
- title: `${rootClassName$7}-title`
23880
+ root: rootClassName$9,
23881
+ spacingNormal: `${rootClassName$9}-normal`,
23882
+ spacingDense: `${rootClassName$9}-dense`,
23883
+ colorBar: `${rootClassName$9}-color-bar`,
23884
+ title: `${rootClassName$9}-title`
23607
23885
  };
23608
23886
  const StyledBoardColumnHeader = styled.div`
23609
23887
  ${({
@@ -23671,11 +23949,11 @@ const BoardColumnHeader = ({
23671
23949
  });
23672
23950
  };
23673
23951
 
23674
- const rootClassName$6 = 'dot--board-column-items';
23952
+ const rootClassName$8 = 'dot--board-column-items';
23675
23953
  const classNames$2 = {
23676
- root: rootClassName$6,
23677
- spacingNormal: `${rootClassName$6}-normal`,
23678
- spacingDense: `${rootClassName$6}-dense`
23954
+ root: rootClassName$8,
23955
+ spacingNormal: `${rootClassName$8}-normal`,
23956
+ spacingDense: `${rootClassName$8}-dense`
23679
23957
  };
23680
23958
  const StyledBoardColumnItems = styled.div`
23681
23959
  ${({
@@ -23727,11 +24005,11 @@ const BoardColumnItems = ({
23727
24005
  });
23728
24006
  };
23729
24007
 
23730
- const rootClassName$5 = 'dot--board-column-action-bar';
24008
+ const rootClassName$7 = 'dot--board-column-action-bar';
23731
24009
  const classNames$1 = {
23732
- root: rootClassName$5,
23733
- spacingNormal: `${rootClassName$5}-normal`,
23734
- spacingDense: `${rootClassName$5}-dense`
24010
+ root: rootClassName$7,
24011
+ spacingNormal: `${rootClassName$7}-normal`,
24012
+ spacingDense: `${rootClassName$7}-dense`
23735
24013
  };
23736
24014
  const StyledBoardColumnActionBar = styled(DotActionToolbar)`
23737
24015
  ${({
@@ -23802,13 +24080,13 @@ const BoardColumnCollapse = ({
23802
24080
  return useMemo(() => collapsed ? children : null, [children, collapsed]);
23803
24081
  };
23804
24082
 
23805
- const rootClassName$4 = 'dot--board-column-header';
24083
+ const rootClassName$6 = 'dot--board-column-header';
23806
24084
  const classNames = {
23807
- root: rootClassName$4,
23808
- spacingNormal: `${rootClassName$4}-normal`,
23809
- spacingDense: `${rootClassName$4}-dense`,
23810
- title: `${rootClassName$4}-title`,
23811
- text: `${rootClassName$4}-text`
24085
+ root: rootClassName$6,
24086
+ spacingNormal: `${rootClassName$6}-normal`,
24087
+ spacingDense: `${rootClassName$6}-dense`,
24088
+ title: `${rootClassName$6}-title`,
24089
+ text: `${rootClassName$6}-text`
23812
24090
  };
23813
24091
  const StyledBoardColumnSummary = styled.div`
23814
24092
  ${({
@@ -23870,12 +24148,12 @@ const BoardColumnSummary = ({
23870
24148
  });
23871
24149
  };
23872
24150
 
23873
- const rootClassName$3 = 'dot-search';
24151
+ const rootClassName$5 = 'dot-search';
23874
24152
  const StyledSearch = styled(DotInputText)`
23875
24153
  ${({
23876
24154
  theme
23877
24155
  }) => css`
23878
- &.${rootClassName$3} {
24156
+ &.${rootClassName$5} {
23879
24157
  &.with-value .MuiInputBase-root {
23880
24158
  background-color: ${theme.palette.figma.primary.light};
23881
24159
 
@@ -23918,7 +24196,7 @@ const DotSearch = _a => {
23918
24196
  value
23919
24197
  } = _a,
23920
24198
  rest = __rest(_a, ["ariaLabel", "className", 'data-testid', "disabled", "hasDebounce", "id", "name", "onSearch", "onClear", "placeholder", "value"]);
23921
- const rootClasses = useStylesWithRootClass(rootClassName$3, className, value ? 'with-value' : '');
24199
+ const rootClasses = useStylesWithRootClass(rootClassName$5, className, value ? 'with-value' : '');
23922
24200
  return jsx(StyledSearch, Object.assign({}, rest, {
23923
24201
  "aria-label": ariaLabel,
23924
24202
  className: rootClasses,
@@ -23937,12 +24215,12 @@ const DotSearch = _a => {
23937
24215
  }));
23938
24216
  };
23939
24217
 
23940
- const rootClassName$2 = 'dot-toggle-switch';
24218
+ const rootClassName$4 = 'dot-toggle-switch';
23941
24219
  const StyledToggleSwitch = styled(Stack)`
23942
24220
  ${({
23943
24221
  theme
23944
24222
  }) => css`
23945
- &.${rootClassName$2} {
24223
+ &.${rootClassName$4} {
23946
24224
  gap: ${theme.spacing(2)};
23947
24225
  cursor: pointer;
23948
24226
 
@@ -23996,7 +24274,7 @@ const StyledToggleSwitch = styled(Stack)`
23996
24274
  const DotToggleSwitch = ({
23997
24275
  ariaLabel,
23998
24276
  className,
23999
- 'data-pendoid': dataPendoId = rootClassName$2,
24277
+ 'data-pendoid': dataPendoId = rootClassName$4,
24000
24278
  'data-testid': dataTestId,
24001
24279
  disabled = false,
24002
24280
  label,
@@ -24006,7 +24284,7 @@ const DotToggleSwitch = ({
24006
24284
  }) => {
24007
24285
  const toggleOptions = options.slice(0, 2);
24008
24286
  const isChecked = toggleOptions[1].value === value;
24009
- const rootClasses = useStylesWithRootClass(rootClassName$2, className, disabled ? 'dot-disabled' : '');
24287
+ const rootClasses = useStylesWithRootClass(rootClassName$4, className, disabled ? 'dot-disabled' : '');
24010
24288
  const toggleValue = () => {
24011
24289
  const [firstOption, secondOption] = toggleOptions;
24012
24290
  const newValue = value === firstOption.value ? secondOption.value : firstOption.value;
@@ -25275,13 +25553,13 @@ var Sketch = /*#__PURE__*/React__default.forwardRef((props, ref) => {
25275
25553
  });
25276
25554
  Sketch.displayName = 'Sketch';
25277
25555
 
25278
- const rootClassName$1 = 'dot-color-picker';
25556
+ const rootClassName$3 = 'dot-color-picker';
25279
25557
  const StyledColorPicker = styled(Sketch)`
25280
25558
  ${({
25281
25559
  theme,
25282
25560
  $hideShadow
25283
25561
  }) => css`
25284
- &.${rootClassName$1} {
25562
+ &.${rootClassName$3} {
25285
25563
  --sketch-background: ${theme.palette.figma.background.level0.componentsBackground} !important;
25286
25564
  --sketch-swatch-border-top: none !important;
25287
25565
  --sketch-box-shadow: ${theme.shadows[1]} !important;
@@ -25337,7 +25615,7 @@ const DotColorPicker = ({
25337
25615
  return jsx(StyledColorPicker, {
25338
25616
  "$hideShadow": hideShadow,
25339
25617
  "aria-label": ariaLabel,
25340
- className: rootClassName$1,
25618
+ className: rootClassName$3,
25341
25619
  color: color,
25342
25620
  "data-pendoid": dataPendoId,
25343
25621
  "data-testid": dataTestId,
@@ -25352,14 +25630,14 @@ const DotColorPicker = ({
25352
25630
  });
25353
25631
  };
25354
25632
 
25355
- const rootClassName = 'dot-select';
25633
+ const rootClassName$2 = 'dot-select';
25356
25634
  const StyledSelectContainer = styled.div`
25357
25635
  ${({
25358
25636
  theme,
25359
25637
  size,
25360
25638
  persistentLabel
25361
25639
  }) => css`
25362
- &.${rootClassName} {
25640
+ &.${rootClassName$2} {
25363
25641
  .MuiInputBase-root {
25364
25642
  background: ${theme.palette.figma.neutral.normal};
25365
25643
  height: ${theme.spacing(7)};
@@ -25408,7 +25686,7 @@ const DotSelect = ({
25408
25686
  autoFocus,
25409
25687
  className,
25410
25688
  defaultValue = '',
25411
- 'data-pendoid': dataPendoId = rootClassName,
25689
+ 'data-pendoid': dataPendoId = rootClassName$2,
25412
25690
  'data-testid': dataTestId,
25413
25691
  disabled = false,
25414
25692
  error = false,
@@ -25432,7 +25710,7 @@ const DotSelect = ({
25432
25710
  options,
25433
25711
  renderOption
25434
25712
  }) => {
25435
- const rootStyles = useStylesWithRootClass(rootClassName, className);
25713
+ const rootStyles = useStylesWithRootClass(rootClassName$2, className);
25436
25714
  return jsxs(StyledSelectContainer, {
25437
25715
  persistentLabel: persistentLabel,
25438
25716
  size: size,
@@ -25492,4 +25770,171 @@ const DotSelect = ({
25492
25770
  });
25493
25771
  };
25494
25772
 
25495
- export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardAppTypeToLabelMap, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAnnotation, 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, DotColorPicker, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDraggableWindow, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFab, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputLabel, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotMenu, DotMenuList, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSearch, DotSelect, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotToggleSwitch, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage, useKeyPress };
25773
+ const rootClassName$1 = 'dot-chat-bubble';
25774
+ const actionsClassName = 'dot-chat-bubble-actions';
25775
+ const contentClassName = 'dot-chat-bubble-content';
25776
+ const StyledChatBubble = styled.div`
25777
+ ${({
25778
+ theme,
25779
+ $orientation
25780
+ }) => css`
25781
+ &.${rootClassName$1} {
25782
+ display: flex;
25783
+ flex-direction: column;
25784
+ gap: ${theme.spacing(0.5)};
25785
+ width: fit-content;
25786
+
25787
+ .${contentClassName} {
25788
+ overflow-wrap: break-word;
25789
+ padding: ${theme.spacing(1, 2)};
25790
+ border-top-left-radius: ${$orientation === 'left' ? '0' : theme.spacing(2)};
25791
+ border-top-right-radius: ${$orientation === 'right' ? '0' : theme.spacing(2)};
25792
+ border-bottom-right-radius: ${theme.spacing(2)};
25793
+ border-bottom-left-radius: ${theme.spacing(2)};
25794
+
25795
+ &.default {
25796
+ background-color: ${theme.palette.figma.neutral.light};
25797
+ }
25798
+
25799
+ &.info {
25800
+ background-color: ${theme.palette.figma.primary.light};
25801
+ }
25802
+
25803
+ &.error {
25804
+ background-color: ${theme.palette.figma.destructive.light};
25805
+ }
25806
+
25807
+ &.warning {
25808
+ background-color: ${theme.palette.figma.warning.light};
25809
+ }
25810
+
25811
+ &.success {
25812
+ background-color: ${theme.palette.figma.success.light};
25813
+ }
25814
+
25815
+ &.none {
25816
+ padding: 0;
25817
+ background-color: transparent;
25818
+ }
25819
+ }
25820
+
25821
+ .${actionsClassName} {
25822
+ align-self: ${$orientation === 'left' ? 'flex-start' : 'flex-end'};
25823
+ }
25824
+ }
25825
+ `}
25826
+ `;
25827
+
25828
+ const DotChatBubble = ({
25829
+ actions,
25830
+ ariaLabel,
25831
+ ariaRole,
25832
+ className,
25833
+ children,
25834
+ 'data-testid': dataTestId,
25835
+ 'data-pendoid': dataPendoId,
25836
+ orientation,
25837
+ severity = 'default'
25838
+ }) => {
25839
+ const rootClasses = useStylesWithRootClass(rootClassName$1, className);
25840
+ const contentClasses = useStylesWithRootClass(contentClassName, severity);
25841
+ return jsxs(StyledChatBubble, {
25842
+ "aria-label": ariaLabel,
25843
+ className: rootClasses,
25844
+ "data-pendoid": dataPendoId,
25845
+ "data-testid": dataTestId,
25846
+ role: ariaRole,
25847
+ "$orientation": orientation,
25848
+ children: [jsx("div", {
25849
+ className: contentClasses,
25850
+ "data-testid": dataTestId && `${dataTestId}-content`,
25851
+ children: children
25852
+ }), actions && jsx("div", {
25853
+ className: actionsClassName,
25854
+ children: actions
25855
+ })]
25856
+ });
25857
+ };
25858
+
25859
+ const rootClassName = 'dot-loading-dots';
25860
+ const dotAnimation = keyframes`
25861
+ 0%,
25862
+ 100% {
25863
+ transform: translateY(0);
25864
+ }
25865
+ 50% {
25866
+ transform: translateY(-8px);
25867
+ }
25868
+ `;
25869
+ const StyledLoadingDots = styled.div`
25870
+ ${({
25871
+ theme,
25872
+ $size,
25873
+ $duration,
25874
+ $count
25875
+ }) => {
25876
+ const dotSize = typeof $size === 'number' ? `${$size}px` : $size;
25877
+ const spacing = typeof $size === 'number' ? `${$size * 0.75}px` : '6px';
25878
+ return css`
25879
+ &.${rootClassName} {
25880
+ display: flex;
25881
+ align-items: center;
25882
+ gap: ${spacing};
25883
+
25884
+ .loading-dot {
25885
+ width: ${dotSize};
25886
+ height: ${dotSize};
25887
+ border-radius: 50%;
25888
+ background-color: ${theme.palette.figma.typography.black};
25889
+ animation: ${dotAnimation} ${$duration}s infinite ease-in-out;
25890
+
25891
+ ${Array.from({
25892
+ length: $count
25893
+ }, (_, i) => {
25894
+ return css`
25895
+ &:nth-child(${i + 1}) {
25896
+ animation-delay: ${$duration / $count * i}s;
25897
+ }
25898
+ `;
25899
+ })}
25900
+ }
25901
+ }
25902
+ `;
25903
+ }}
25904
+ `;
25905
+
25906
+ const DotLoadingDots = ({
25907
+ ariaLabel,
25908
+ className,
25909
+ count = 3,
25910
+ 'data-pendoid': dataPendoId = rootClassName,
25911
+ 'data-testid': dataTestId,
25912
+ size = 8,
25913
+ speed = 0.8
25914
+ }) => {
25915
+ const rootClasses = useStylesWithRootClass(rootClassName, className);
25916
+ useEffect(() => {
25917
+ if (!ariaLabel) {
25918
+ console.warn('a11y: LoadingDots should have an ariaLabel to describe the loading state');
25919
+ }
25920
+ }, []);
25921
+ const dotCount = Math.max(1, Math.min(count, 10));
25922
+ const animationDuration = 0.8 / speed;
25923
+ return jsx(StyledLoadingDots, {
25924
+ "aria-label": ariaLabel || 'Loading',
25925
+ className: rootClasses,
25926
+ "data-pendoid": dataPendoId,
25927
+ "data-testid": dataTestId,
25928
+ role: "status",
25929
+ "$size": size,
25930
+ "$duration": animationDuration,
25931
+ "$count": dotCount,
25932
+ children: Array.from({
25933
+ length: dotCount
25934
+ }, (_, i) => jsx("div", {
25935
+ className: "loading-dot"
25936
+ }, i))
25937
+ });
25938
+ };
25939
+
25940
+ export { ApiError$1 as ApiError, BoardStatusProvider, Cell, ColumnStatusProvider, CreateUUID, CssCell, CssGrid, CssGridDebug, DashboardAppTypeOptions, DashboardAppTypeToLabelMap, DashboardView, DatePickerKeydownContext, Daytime, DotAccordion, DotActionToolbar, DotAlertBanner, DotAnnotation, 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, DotChatBubble, DotCheckbox, DotCheckboxGroup, DotChip, DotChipList, DotClickAwayListener, DotColorPicker, DotConfirmationDialog, DotCopyButton, DotCoreApiProvider, DotDashboardActions, DotDashboardDetails, DotDashboardDialog, DotDashboardHeader, DotDashboardOptionsMenu, DotDashboardPublishConfirm, DotDashboardStatusPill, DotDatePicker, DotDialog, DotDivider, DotDraggableList, DotDraggableWindow, DotDrawer, DotDynamicForm, DotEmptyFilterState, DotEmptyState, DotFab, DotFileListItem, DotFileUpload, DotForm, DotFormGroup, DotHeaderRow, DotIcon, DotIconButton, DotIllustration, DotImpactDialog, DotInlineEdit, DotInputLabel, DotInputSelect, DotInputText, DotLinearProgress, DotLink, DotList, DotLoadingDots, DotMenu, DotMenuList, DotMetadataApiProvider, DotNavigationRail, DotPill, DotPopper, DotProgress, DotProgressButton, DotRadioButton, DotRadioGroup, DotSearch, DotSelect, DotSidebar, DotSkeleton, DotSnackbar, DotSnackbarContainer, DotSnackbarProvider, DotSplitButton, DotStepper, DotStickyWithBorder, DotSwitch, DotTable, DotTableAction, DotTableActions, DotTablePagination, DotTabs, DotThemeProvider, DotTimePicker, DotToggleSwitch, DotTooltip, DotTruncateWithTooltip, DotTypography, avatarColors, breakpointOptions, checkIfValidDate, darkFigmaColors, lightThemeColors as lightColors, lightFigmaColors, mockScrollIntoView, parseAutoCompleteValue, variables as themeVariables, typographyOptions, useBoardStatus, useColumnStatus, useDotCoreApiContext, useDotMetadataApiContext, useDotSnackbarContext, useEnqueueErrorMessage, useKeyPress };