@carto/meridian-ds 2.5.5 → 2.6.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 (80) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{Alert-lLA0z7fX.js → Alert-DHd9hCGz.js} +20 -77
  3. package/dist/{Alert-BdmDjcVc.cjs → Alert-DOeOwxOe.cjs} +22 -79
  4. package/dist/{MenuItem-nokUtiks.cjs → MenuItem-CYJN2OVU.cjs} +6 -6
  5. package/dist/{MenuItem-ZNdBUBvt.js → MenuItem-MUmADf3e.js} +1 -1
  6. package/dist/components/index.cjs +309 -112
  7. package/dist/components/index.js +249 -52
  8. package/dist/{TablePaginationActions-DAMGtIub.cjs → css-utils-CCi3p7os.cjs} +123 -55
  9. package/dist/{TablePaginationActions-C6TVGJM-.js → css-utils-WejOmkiI.js} +126 -58
  10. package/dist/theme/index.cjs +108 -114
  11. package/dist/theme/index.js +7 -13
  12. package/dist/types/components/AccordionGroup/AccordionGroup.d.ts +4 -1
  13. package/dist/types/components/AccordionGroup/AccordionGroup.d.ts.map +1 -1
  14. package/dist/types/components/AccordionGroup/AccordionGroup.stories.d.ts +39 -9
  15. package/dist/types/components/AccordionGroup/AccordionGroup.stories.d.ts.map +1 -1
  16. package/dist/types/components/AccordionGroup/AccordionGroup.test.d.ts +2 -0
  17. package/dist/types/components/AccordionGroup/AccordionGroup.test.d.ts.map +1 -0
  18. package/dist/types/components/AppBar/AppBar.d.ts +3 -1
  19. package/dist/types/components/AppBar/AppBar.d.ts.map +1 -1
  20. package/dist/types/components/AppBar/AppBar.stories.d.ts +2 -2
  21. package/dist/types/components/AppBar/AppBar.stories.d.ts.map +1 -1
  22. package/dist/types/components/AppBar/AppBar.test.d.ts +2 -0
  23. package/dist/types/components/AppBar/AppBar.test.d.ts.map +1 -0
  24. package/dist/types/components/Avatar/Avatar.d.ts +4 -1
  25. package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
  26. package/dist/types/components/Avatar/Avatar.stories.d.ts +1 -2
  27. package/dist/types/components/Avatar/Avatar.stories.d.ts.map +1 -1
  28. package/dist/types/components/Avatar/Avatar.test.d.ts +2 -0
  29. package/dist/types/components/Avatar/Avatar.test.d.ts.map +1 -0
  30. package/dist/types/components/Button/Button.d.ts +5 -0
  31. package/dist/types/components/Button/Button.d.ts.map +1 -1
  32. package/dist/types/components/Button/Button.stories.d.ts +3 -0
  33. package/dist/types/components/Button/Button.stories.d.ts.map +1 -1
  34. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.d.ts +117 -0
  35. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.d.ts.map +1 -0
  36. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.stories.d.ts +66 -0
  37. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.stories.d.ts.map +1 -0
  38. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.test.d.ts +2 -0
  39. package/dist/types/components/EllipsisWithTooltip/EllipsisWithTooltip.test.d.ts.map +1 -0
  40. package/dist/types/components/EllipsisWithTooltip/index.d.ts +3 -0
  41. package/dist/types/components/EllipsisWithTooltip/index.d.ts.map +1 -0
  42. package/dist/types/components/Link/Link.d.ts +5 -0
  43. package/dist/types/components/Link/Link.d.ts.map +1 -1
  44. package/dist/types/components/Link/Link.stories.d.ts +9 -27
  45. package/dist/types/components/Link/Link.stories.d.ts.map +1 -1
  46. package/dist/types/components/TablePaginationActions/TablePaginationActions.d.ts +5 -2
  47. package/dist/types/components/TablePaginationActions/TablePaginationActions.d.ts.map +1 -1
  48. package/dist/types/components/TablePaginationActions/TablePaginationActions.stories.d.ts +72 -0
  49. package/dist/types/components/TablePaginationActions/TablePaginationActions.stories.d.ts.map +1 -0
  50. package/dist/types/components/TablePaginationActions/TablePaginationActions.test.d.ts +2 -0
  51. package/dist/types/components/TablePaginationActions/TablePaginationActions.test.d.ts.map +1 -0
  52. package/dist/types/components/Tag/Tag.d.ts +176 -4
  53. package/dist/types/components/Tag/Tag.d.ts.map +1 -1
  54. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts +3 -2
  55. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.d.ts.map +1 -1
  56. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.stories.d.ts +2 -2
  57. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.stories.d.ts.map +1 -1
  58. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.test.d.ts +2 -0
  59. package/dist/types/components/ToggleButtonGroup/ToggleButtonGroup.test.d.ts.map +1 -0
  60. package/dist/types/components/TooltipData/TooltipData.d.ts.map +1 -1
  61. package/dist/types/components/TooltipData/TooltipData.stories.d.ts +34 -0
  62. package/dist/types/components/TooltipData/TooltipData.stories.d.ts.map +1 -0
  63. package/dist/types/components/TooltipData/TooltipData.test.d.ts +2 -0
  64. package/dist/types/components/TooltipData/TooltipData.test.d.ts.map +1 -0
  65. package/dist/types/components/index.d.ts +2 -0
  66. package/dist/types/components/index.d.ts.map +1 -1
  67. package/dist/types/theme/components/forms.d.ts.map +1 -1
  68. package/dist/types/theme/components/stories/Tooltip.stories.d.ts +0 -3
  69. package/dist/types/theme/components/stories/Tooltip.stories.d.ts.map +1 -1
  70. package/dist/types/utils/css-utils.d.ts +14 -0
  71. package/dist/types/utils/css-utils.d.ts.map +1 -0
  72. package/dist/types/utils/useTranslationFallback.d.ts +20 -0
  73. package/dist/types/utils/useTranslationFallback.d.ts.map +1 -0
  74. package/dist/types/utils/useTranslationFallback.test.d.ts +2 -0
  75. package/dist/types/utils/useTranslationFallback.test.d.ts.map +1 -0
  76. package/dist/types/widgets/TableWidgetUI/TableWidgetUI.d.ts.map +1 -1
  77. package/dist/types/widgets/WrapperWidgetUI/WrapperWidgetUI.d.ts.map +1 -1
  78. package/dist/widgets/index.cjs +114 -119
  79. package/dist/widgets/index.js +4 -9
  80. package/package.json +1 -1
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const React = require("react");
5
- const reactIntl = require("react-intl");
6
5
  const material = require("@mui/material");
7
6
  const iconsMaterial = require("@mui/icons-material");
8
- const TablePaginationActions = require("../TablePaginationActions-DAMGtIub.cjs");
9
- const Alert$1 = require("../Alert-BdmDjcVc.cjs");
7
+ const Alert$1 = require("../Alert-DOeOwxOe.cjs");
8
+ const cssUtils = require("../css-utils-CCi3p7os.cjs");
10
9
  const ArrowDown = require("../ArrowDown-DJ0vhbsw.cjs");
11
10
  const OpenDiagonallyRight = require("../OpenDiagonallyRight-CpL4ROwg.cjs");
12
- const MenuItem = require("../MenuItem-nokUtiks.cjs");
11
+ const reactIntl = require("react-intl");
12
+ const MenuItem = require("../MenuItem-CYJN2OVU.cjs");
13
13
  require("cartocolor");
14
14
  const reactWindow = require("react-window");
15
15
  const reactCodemirror2 = require("react-codemirror2");
@@ -65,11 +65,14 @@ function _Button({
65
65
  loadingPosition,
66
66
  external,
67
67
  showExternalIcon = true,
68
+ screenReaderText,
68
69
  "aria-describedby": ariaDescribedby,
69
70
  ...otherProps
70
71
  }, ref) {
71
- const intl = reactIntl.useIntl();
72
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
72
+ const screenReaderTextValue = Alert$1.useTranslationFallback(
73
+ "c4r.button.opensInNewTab",
74
+ screenReaderText
75
+ );
73
76
  const defaultIconLoader = /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: 18, color: "inherit" });
74
77
  const isDefaultLoading = loading && loadingPosition === void 0;
75
78
  const isExternalLink = otherProps.href && external;
@@ -83,9 +86,7 @@ function _Button({
83
86
  if (isExternalLink) {
84
87
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
85
88
  children,
86
- /* @__PURE__ */ jsxRuntime.jsx(Alert$1.ScreenReaderOnly, { id: "external-hint", children: `(${intlConfig.formatMessage({
87
- id: "c4r.button.opensInNewTab"
88
- })})` })
89
+ /* @__PURE__ */ jsxRuntime.jsx(Alert$1.ScreenReaderOnly, { id: "external-hint", children: screenReaderTextValue })
89
90
  ] });
90
91
  }
91
92
  return children;
@@ -120,7 +121,7 @@ function _Button({
120
121
  },
121
122
  ref,
122
123
  "aria-describedby": isExternalLink ? "external-hint" : ariaDescribedby,
123
- children: /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "inherit", color: "inherit", noWrap: true, component: "span", children: renderContent() })
124
+ children: /* @__PURE__ */ jsxRuntime.jsx(cssUtils.Typography, { variant: "inherit", color: "inherit", noWrap: true, component: "span", children: renderContent() })
124
125
  }
125
126
  );
126
127
  }
@@ -226,7 +227,7 @@ const Root$5 = material.styled(material.Box)(({ theme }) => ({
226
227
  alignItems: "center",
227
228
  gap: theme.spacing(0.5)
228
229
  }));
229
- const Indicator = material.styled(TablePaginationActions.Typography)(({ theme }) => ({
230
+ const Indicator = material.styled(cssUtils.Typography)(({ theme }) => ({
230
231
  ".Mui-disabled &": {
231
232
  color: theme.palette.text.disabled
232
233
  }
@@ -234,9 +235,9 @@ const Indicator = material.styled(TablePaginationActions.Typography)(({ theme })
234
235
  const Icon = material.styled(material.Box)(({ theme }) => ({
235
236
  display: "flex",
236
237
  svg: {
237
- width: TablePaginationActions.ICON_SIZE_SMALL,
238
- height: TablePaginationActions.ICON_SIZE_SMALL,
239
- fontSize: TablePaginationActions.ICON_SIZE_SMALL,
238
+ width: cssUtils.ICON_SIZE_SMALL,
239
+ height: cssUtils.ICON_SIZE_SMALL,
240
+ fontSize: cssUtils.ICON_SIZE_SMALL,
240
241
  path: {
241
242
  fill: theme.palette.text.secondary,
242
243
  ".Mui-disabled &": {
@@ -283,7 +284,7 @@ function _LabelWithIndicator({
283
284
  const LabelWithIndicator = React.forwardRef(_LabelWithIndicator);
284
285
  function _PasswordField({ InputProps, size = "small", disabled, ...otherProps }, ref) {
285
286
  const intl = reactIntl.useIntl();
286
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
287
+ const intlConfig = cssUtils.useImperativeIntl(intl);
287
288
  const [showPassword, setShowPassword] = React.useState(false);
288
289
  const handleClickShowPassword = () => setShowPassword(!showPassword);
289
290
  const showPasswordLabel = intlConfig.formatMessage({
@@ -304,7 +305,7 @@ function _PasswordField({ InputProps, size = "small", disabled, ...otherProps },
304
305
  role: "textbox"
305
306
  },
306
307
  endAdornment: /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
307
- Alert$1.IconButton,
308
+ cssUtils.IconButton,
308
309
  {
309
310
  size,
310
311
  disabled,
@@ -420,7 +421,7 @@ function _SelectField({
420
421
  },
421
422
  children: [
422
423
  placeholder && /* @__PURE__ */ jsxRuntime.jsx(PlaceholderItem, { disabled: true, value: "", children: /* @__PURE__ */ jsxRuntime.jsx(
423
- TablePaginationActions.Typography,
424
+ cssUtils.Typography,
424
425
  {
425
426
  variant: isSmall ? "body2" : "body1",
426
427
  color: "text.hint",
@@ -525,7 +526,7 @@ function _MenuItemFilter({
525
526
  "data-testid": dataTestId
526
527
  }, ref) {
527
528
  const intl = reactIntl.useIntl();
528
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
529
+ const intlConfig = cssUtils.useImperativeIntl(intl);
529
530
  return /* @__PURE__ */ jsxRuntime.jsx(
530
531
  StyledMenuItem$1,
531
532
  {
@@ -617,14 +618,14 @@ function _MultipleSelectField({
617
618
  const isSmall = size === "small";
618
619
  const paddingSize = isSmall || variant === "standard" ? 0 : 2;
619
620
  const intl = reactIntl.useIntl();
620
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
621
+ const intlConfig = cssUtils.useImperativeIntl(intl);
621
622
  const counterText = `${currentOptions.length} ${intlConfig.formatMessage({
622
623
  id: "c4r.form.selected"
623
624
  })}`;
624
625
  const renderValue = React.useMemo(() => {
625
626
  if (areAllSelected) {
626
627
  return /* @__PURE__ */ jsxRuntime.jsx(
627
- TablePaginationActions.Typography,
628
+ cssUtils.Typography,
628
629
  {
629
630
  component: "span",
630
631
  variant: isSmall ? "body2" : "body1",
@@ -636,7 +637,7 @@ function _MultipleSelectField({
636
637
  }
637
638
  if (areAnySelected) {
638
639
  return /* @__PURE__ */ jsxRuntime.jsx(
639
- TablePaginationActions.Typography,
640
+ cssUtils.Typography,
640
641
  {
641
642
  component: "span",
642
643
  variant: isSmall ? "body2" : "body1",
@@ -647,7 +648,7 @@ function _MultipleSelectField({
647
648
  );
648
649
  }
649
650
  return /* @__PURE__ */ jsxRuntime.jsx(
650
- TablePaginationActions.Typography,
651
+ cssUtils.Typography,
651
652
  {
652
653
  component: "span",
653
654
  variant: isSmall ? "body2" : "body1",
@@ -816,24 +817,36 @@ const StyledToggleButtonGroup = material.styled(material.ToggleButtonGroup, {
816
817
  backgroundColor: "transparent"
817
818
  }
818
819
  }));
819
- function ToggleButtonGroup({
820
+ function _ToggleButtonGroup({
820
821
  children,
821
822
  variant = "floating",
822
823
  backgroundColor,
824
+ orientation,
825
+ size,
823
826
  ...rest
824
- }) {
827
+ }, ref) {
825
828
  const isUnbounded = variant === "unbounded";
826
829
  const defaultColor = isUnbounded ? "transparent" : "primary";
830
+ const resolvedBackgroundColor = backgroundColor ?? defaultColor;
827
831
  return /* @__PURE__ */ jsxRuntime.jsx(
828
832
  StyledToggleButtonGroup,
829
833
  {
830
834
  ...rest,
831
835
  variant,
832
- backgroundColor: backgroundColor ?? defaultColor,
836
+ backgroundColor: resolvedBackgroundColor,
837
+ orientation,
838
+ size,
839
+ "data-orientation": orientation,
840
+ "data-variant": variant,
841
+ "data-size": size,
842
+ "data-background-color": resolvedBackgroundColor,
843
+ "data-name": "toggle-button-group",
844
+ ref,
833
845
  children
834
846
  }
835
847
  );
836
848
  }
849
+ const ToggleButtonGroup = React.forwardRef(_ToggleButtonGroup);
837
850
  async function copyString(value) {
838
851
  return await navigator.clipboard.writeText(value);
839
852
  }
@@ -866,7 +879,7 @@ const _CopiableComponent = ({
866
879
  }, ref) => {
867
880
  const [open, setOpen] = React.useState(false);
868
881
  const intl = reactIntl.useIntl();
869
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
882
+ const intlConfig = cssUtils.useImperativeIntl(intl);
870
883
  const copyTooltipText = copyText === null ? null : copyText || intlConfig.formatMessage({ id: "c4r.button.copy" });
871
884
  const copySuccessMessage = copiedText || intlConfig.formatMessage({
872
885
  id: "c4r.notifications.copiedToClipboard"
@@ -897,7 +910,7 @@ const _CopiableComponent = ({
897
910
  children: [
898
911
  children,
899
912
  button && /* @__PURE__ */ jsxRuntime.jsx(
900
- Alert$1.IconButton,
913
+ cssUtils.IconButton,
901
914
  {
902
915
  ...buttonProps,
903
916
  disabled,
@@ -967,7 +980,7 @@ function _CopiableInputText({
967
980
  ...rest
968
981
  }, ref) {
969
982
  const intl = reactIntl.useIntl();
970
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
983
+ const intlConfig = cssUtils.useImperativeIntl(intl);
971
984
  const [showText, setShowText] = React.useState(false);
972
985
  const [isInputFocused, setIsInputFocused] = React.useState(false);
973
986
  const inputType = !password ? "text" : showText ? "text" : "password";
@@ -983,7 +996,7 @@ function _CopiableInputText({
983
996
  onBlur == null ? void 0 : onBlur(event);
984
997
  };
985
998
  const passwordAdornment = /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: /* @__PURE__ */ jsxRuntime.jsx(
986
- Alert$1.IconButton,
999
+ cssUtils.IconButton,
987
1000
  {
988
1001
  edge: variant !== "standard" ? "end" : void 0,
989
1002
  onClick: () => setShowText(!showText),
@@ -1068,7 +1081,7 @@ function createCounterRenderTags({
1068
1081
  getOptionLabel
1069
1082
  });
1070
1083
  return /* @__PURE__ */ jsxRuntime.jsx(
1071
- TablePaginationActions.Typography,
1084
+ cssUtils.Typography,
1072
1085
  {
1073
1086
  variant: size === "small" ? "body2" : "body1",
1074
1087
  component: "span",
@@ -1237,7 +1250,7 @@ function useAutocompleteRenderOption() {
1237
1250
  title
1238
1251
  ),
1239
1252
  secondaryText && /* @__PURE__ */ jsxRuntime.jsx(
1240
- TablePaginationActions.Typography,
1253
+ cssUtils.Typography,
1241
1254
  {
1242
1255
  component: "p",
1243
1256
  variant: "caption",
@@ -1261,7 +1274,7 @@ function useCreatableAutocomplete({
1261
1274
  multiple
1262
1275
  }) {
1263
1276
  const intl = reactIntl.useIntl();
1264
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
1277
+ const intlConfig = cssUtils.useImperativeIntl(intl);
1265
1278
  const filter = material.createFilterOptions();
1266
1279
  const { renderOption: autocompleteRenderOption } = useAutocompleteRenderOption();
1267
1280
  const creatableFilterOptions = (options, params) => {
@@ -1326,7 +1339,7 @@ function useMultipleAutocomplete({
1326
1339
  allSelectedText
1327
1340
  }) {
1328
1341
  const intl = reactIntl.useIntl();
1329
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
1342
+ const intlConfig = cssUtils.useImperativeIntl(intl);
1330
1343
  const defaultCounterText = counterText || intlConfig.formatMessage({ id: "c4r.form.selected" });
1331
1344
  const defaultAllSelectedText = allSelectedText || intlConfig.formatMessage({ id: "c4r.form.allSelected" });
1332
1345
  const [multipleValue, setMultipleValue] = React.useState(
@@ -1404,8 +1417,8 @@ const List = material.styled("ul")(
1404
1417
  const ItemWrapper = material.styled("div")(({ style, theme, isSubtitle, isExtended, isMultiple }) => {
1405
1418
  const getSubtitleStyles = () => {
1406
1419
  const baseStyles = {
1407
- height: TablePaginationActions.MENU_ITEM_SIZE_DENSE,
1408
- minHeight: TablePaginationActions.MENU_ITEM_SIZE_DENSE,
1420
+ height: cssUtils.MENU_ITEM_SIZE_DENSE,
1421
+ minHeight: cssUtils.MENU_ITEM_SIZE_DENSE,
1409
1422
  marginTop: `${theme.spacing(1)} !important`,
1410
1423
  alignItems: "flex-end",
1411
1424
  ...theme.typography.caption,
@@ -1462,7 +1475,7 @@ function _AutocompleteList({
1462
1475
  multiple,
1463
1476
  extended,
1464
1477
  itemHeight,
1465
- maxListHeight = TablePaginationActions.MENU_LIST_MAX_SIZE,
1478
+ maxListHeight = cssUtils.MENU_LIST_MAX_SIZE,
1466
1479
  ...otherProps
1467
1480
  }, ref) {
1468
1481
  const childrenArray = React.useMemo(() => {
@@ -1484,9 +1497,9 @@ function _AutocompleteList({
1484
1497
  };
1485
1498
  });
1486
1499
  }, [children, multiple]);
1487
- const defaultItemHeight = itemHeight ?? (extended ? TablePaginationActions.MENU_ITEM_SIZE_EXTENDED : TablePaginationActions.MENU_ITEM_SIZE_DEFAULT);
1500
+ const defaultItemHeight = itemHeight ?? (extended ? cssUtils.MENU_ITEM_SIZE_EXTENDED : cssUtils.MENU_ITEM_SIZE_DEFAULT);
1488
1501
  const listboxHeight = React.useMemo(() => {
1489
- const filterHeight = showFilters && multiple ? TablePaginationActions.MENU_ITEM_SIZE_EXTENDED : 0;
1502
+ const filterHeight = showFilters && multiple ? cssUtils.MENU_ITEM_SIZE_EXTENDED : 0;
1490
1503
  const availableHeight = maxListHeight - filterHeight;
1491
1504
  const calculatedHeight = Math.min(
1492
1505
  childrenArray.length * defaultItemHeight,
@@ -1752,7 +1765,7 @@ function useAutocomplete({
1752
1765
  const Menu$1 = material.styled("div")(({ theme }) => ({
1753
1766
  display: "flex",
1754
1767
  alignItems: "center",
1755
- height: TablePaginationActions.APPBAR_SIZE,
1768
+ height: cssUtils.APPBAR_SIZE,
1756
1769
  marginRight: theme.spacing(1.5)
1757
1770
  }));
1758
1771
  const MenuButton = material.styled(material.IconButton)(({ theme }) => ({
@@ -1798,7 +1811,7 @@ const Logo = material.styled("div")(({ theme }) => ({
1798
1811
  function BrandLogo({ logo }) {
1799
1812
  return /* @__PURE__ */ jsxRuntime.jsx(Logo, { children: logo });
1800
1813
  }
1801
- const Text$1 = material.styled(TablePaginationActions.Typography)({
1814
+ const Text$1 = material.styled(cssUtils.Typography)({
1802
1815
  display: "flex",
1803
1816
  alignItems: "center",
1804
1817
  whiteSpace: "nowrap"
@@ -1815,7 +1828,7 @@ function BrandText({ text }) {
1815
1828
  }
1816
1829
  );
1817
1830
  }
1818
- const Text = material.styled(TablePaginationActions.Typography)(({ theme }) => ({
1831
+ const Text = material.styled(cssUtils.Typography)(({ theme }) => ({
1819
1832
  display: "flex",
1820
1833
  alignItems: "center",
1821
1834
  "&::before": {
@@ -1856,14 +1869,14 @@ const BrandElements = material.styled("div")(({ theme }) => ({
1856
1869
  minWidth: "192px"
1857
1870
  }
1858
1871
  }));
1859
- const Content$4 = material.styled("div")(({ theme }) => ({
1872
+ const Content$5 = material.styled("div")(({ theme }) => ({
1860
1873
  display: "flex",
1861
1874
  alignItems: "center",
1862
1875
  justifyContent: "space-between",
1863
1876
  flex: 1,
1864
1877
  marginLeft: theme.spacing(1)
1865
1878
  }));
1866
- function AppBar({
1879
+ function _AppBar({
1867
1880
  children,
1868
1881
  brandLogo,
1869
1882
  brandText,
@@ -1871,17 +1884,18 @@ function AppBar({
1871
1884
  showBurgerMenu = false,
1872
1885
  onClickMenu,
1873
1886
  ...otherProps
1874
- }) {
1875
- return /* @__PURE__ */ jsxRuntime.jsx(Root$4, { ...otherProps, children: /* @__PURE__ */ jsxRuntime.jsxs(material.Toolbar, { children: [
1887
+ }, ref) {
1888
+ return /* @__PURE__ */ jsxRuntime.jsx(Root$4, { ...otherProps, ref, "data-name": "app-bar", children: /* @__PURE__ */ jsxRuntime.jsxs(material.Toolbar, { children: [
1876
1889
  /* @__PURE__ */ jsxRuntime.jsxs(BrandElements, { children: [
1877
1890
  showBurgerMenu && /* @__PURE__ */ jsxRuntime.jsx(BurgerMenu, { onClickMenu }),
1878
1891
  brandLogo && /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo: brandLogo }),
1879
1892
  brandText && /* @__PURE__ */ jsxRuntime.jsx(BrandText, { text: brandText }),
1880
1893
  secondaryText && /* @__PURE__ */ jsxRuntime.jsx(SecondaryText, { text: secondaryText })
1881
1894
  ] }),
1882
- /* @__PURE__ */ jsxRuntime.jsx(Content$4, { children })
1895
+ /* @__PURE__ */ jsxRuntime.jsx(Content$5, { children })
1883
1896
  ] }) });
1884
1897
  }
1898
+ const AppBar = React.forwardRef(_AppBar);
1885
1899
  const Footer = material.styled(material.Box, {
1886
1900
  shouldForwardProp: (prop) => !["withGutter", "disabled"].includes(prop)
1887
1901
  })(
@@ -1913,7 +1927,7 @@ function CodeAreaFooter({
1913
1927
  ...props
1914
1928
  }) {
1915
1929
  const intl = reactIntl.useIntl();
1916
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
1930
+ const intlConfig = cssUtils.useImperativeIntl(intl);
1917
1931
  if (!onClickFooter) return null;
1918
1932
  return /* @__PURE__ */ jsxRuntime.jsxs(
1919
1933
  Footer,
@@ -1971,7 +1985,7 @@ function CodeAreaHeader({
1971
1985
  size
1972
1986
  }) {
1973
1987
  const intl = reactIntl.useIntl();
1974
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
1988
+ const intlConfig = cssUtils.useImperativeIntl(intl);
1975
1989
  const showExpandButton = !!onClickExpand;
1976
1990
  const showCopyButton = copyValue !== void 0;
1977
1991
  const showMenu = showExpandButton && showCopyButton;
@@ -2000,7 +2014,7 @@ function CodeAreaHeader({
2000
2014
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2001
2015
  /* @__PURE__ */ jsxRuntime.jsxs(Header, { size, "data-size": size, "data-name": "code-area-header", children: [
2002
2016
  /* @__PURE__ */ jsxRuntime.jsx(
2003
- Alert$1.IconButton,
2017
+ cssUtils.IconButton,
2004
2018
  {
2005
2019
  color: "default",
2006
2020
  size,
@@ -2064,7 +2078,7 @@ function CodeAreaHeader({
2064
2078
  }
2065
2079
  ),
2066
2080
  showExpandButton && /* @__PURE__ */ jsxRuntime.jsx(
2067
- Alert$1.IconButton,
2081
+ cssUtils.IconButton,
2068
2082
  {
2069
2083
  color: "default",
2070
2084
  size,
@@ -2686,8 +2700,8 @@ const InputWrapper = material.styled(material.Box, {
2686
2700
  }
2687
2701
  }));
2688
2702
  const HelpIcon = material.styled(iconsMaterial.HelpOutline)(({ theme }) => ({
2689
- width: TablePaginationActions.ICON_SIZE_SMALL,
2690
- height: TablePaginationActions.ICON_SIZE_SMALL,
2703
+ width: cssUtils.ICON_SIZE_SMALL,
2704
+ height: cssUtils.ICON_SIZE_SMALL,
2691
2705
  fill: theme.palette.text.secondary
2692
2706
  }));
2693
2707
  function CodeAreaField({
@@ -3123,13 +3137,13 @@ function DialogHeader({
3123
3137
  ...otherProps
3124
3138
  }) {
3125
3139
  const intl = reactIntl.useIntl();
3126
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
3140
+ const intlConfig = cssUtils.useImperativeIntl(intl);
3127
3141
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3128
3142
  /* @__PURE__ */ jsxRuntime.jsxs(DialogTitle, { component: "div", "data-name": "dialog-header", ...otherProps, children: [
3129
3143
  /* @__PURE__ */ jsxRuntime.jsxs(Main$1, { children: [
3130
3144
  /* @__PURE__ */ jsxRuntime.jsxs(ItemsWrapper$1, { flex: 1, maxWidth: 0.8, children: [
3131
3145
  /* @__PURE__ */ jsxRuntime.jsx(
3132
- TablePaginationActions.Typography,
3146
+ cssUtils.Typography,
3133
3147
  {
3134
3148
  component: "h2",
3135
3149
  variant: "inherit",
@@ -3158,7 +3172,7 @@ function DialogHeader({
3158
3172
  children && /* @__PURE__ */ jsxRuntime.jsx(DividerBottom, {})
3159
3173
  ] });
3160
3174
  }
3161
- const Content$3 = material.styled(material.DialogContent, {
3175
+ const Content$4 = material.styled(material.DialogContent, {
3162
3176
  shouldForwardProp: (prop) => !["scrollableContent", "withGutter", "withBottomGutter"].includes(prop)
3163
3177
  })(({ theme, scrollableContent, withGutter, withBottomGutter }) => ({
3164
3178
  display: "flex",
@@ -3235,7 +3249,7 @@ function _DialogContent({
3235
3249
  return () => resizeObserver.disconnect();
3236
3250
  }, [contentRef, updateBorders]);
3237
3251
  return /* @__PURE__ */ jsxRuntime.jsx(
3238
- Content$3,
3252
+ Content$4,
3239
3253
  {
3240
3254
  ref: setContentRef,
3241
3255
  onScroll: handleScroll,
@@ -3527,14 +3541,14 @@ function DialogStepper({
3527
3541
  "data-state": isCompleted ? "completed" : isCurrent ? "current" : "uncompleted",
3528
3542
  children: [
3529
3543
  /* @__PURE__ */ jsxRuntime.jsx(StepNumber, { completed: isCompleted, current: isCurrent, children: isCompleted ? /* @__PURE__ */ jsxRuntime.jsx(iconsMaterial.Check, { fontSize: "small", "aria-label": "Completed step" }) : step }),
3530
- /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { variant: "caption", component: "div", color: labelColor, children: stepLabel })
3544
+ /* @__PURE__ */ jsxRuntime.jsx(cssUtils.Typography, { variant: "caption", component: "div", color: labelColor, children: stepLabel })
3531
3545
  ]
3532
3546
  },
3533
3547
  idx
3534
3548
  );
3535
3549
  }) }) });
3536
3550
  }
3537
- const Content$2 = material.styled(DialogContent, {
3551
+ const Content$3 = material.styled(DialogContent, {
3538
3552
  shouldForwardProp: (prop) => !["error", "withBorder"].includes(prop)
3539
3553
  })(
3540
3554
  ({ error, withBorder, theme }) => ({
@@ -3563,7 +3577,7 @@ function CodeAreaDialogContent({
3563
3577
  withGutter = false
3564
3578
  }) {
3565
3579
  if (!children) return null;
3566
- return /* @__PURE__ */ jsxRuntime.jsx(Content$2, { withGutter, error, withBorder, children });
3580
+ return /* @__PURE__ */ jsxRuntime.jsx(Content$3, { withGutter, error, withBorder, children });
3567
3581
  }
3568
3582
  function CodeAreaDialogConfirmation({
3569
3583
  onClose,
@@ -3577,7 +3591,7 @@ function CodeAreaDialogConfirmation({
3577
3591
  content
3578
3592
  }) {
3579
3593
  const intl = reactIntl.useIntl();
3580
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
3594
+ const intlConfig = cssUtils.useImperativeIntl(intl);
3581
3595
  if (!onClose || !onCancel) {
3582
3596
  return null;
3583
3597
  }
@@ -3778,7 +3792,7 @@ function ClearButton({
3778
3792
  ...props
3779
3793
  }) {
3780
3794
  const intl = reactIntl.useIntl();
3781
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
3795
+ const intlConfig = cssUtils.useImperativeIntl(intl);
3782
3796
  return /* @__PURE__ */ jsxRuntime.jsx(Container, { size, variant, children: /* @__PURE__ */ jsxRuntime.jsx(
3783
3797
  material.IconButton,
3784
3798
  {
@@ -3851,7 +3865,7 @@ function DatePicker({
3851
3865
  ...props
3852
3866
  }) {
3853
3867
  const intl = reactIntl.useIntl();
3854
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
3868
+ const intlConfig = cssUtils.useImperativeIntl(intl);
3855
3869
  return (
3856
3870
  // Don't remove className, it's used for styling
3857
3871
  /* @__PURE__ */ jsxRuntime.jsx(material.Box, { className: "CartoDatePicker-root", "data-testid": "date-picker", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -4139,7 +4153,7 @@ function DateRangePicker({
4139
4153
  ...props
4140
4154
  }) {
4141
4155
  const intl = reactIntl.useIntl();
4142
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
4156
+ const intlConfig = cssUtils.useImperativeIntl(intl);
4143
4157
  const [isEndDateOpen, setIsEndDateOpen] = React.useState(false);
4144
4158
  const [isStartDateOpen, setIsStartDateOpen] = React.useState(false);
4145
4159
  const [startDate, setStartDate] = React.useState(
@@ -4327,7 +4341,7 @@ function TimePicker({
4327
4341
  ...props
4328
4342
  }) {
4329
4343
  const intl = reactIntl.useIntl();
4330
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
4344
+ const intlConfig = cssUtils.useImperativeIntl(intl);
4331
4345
  const inputRef = React.useRef(null);
4332
4346
  const [inputWidth, setInputWidth] = React.useState(0);
4333
4347
  React.useEffect(() => {
@@ -4438,7 +4452,7 @@ function DateTimePicker({
4438
4452
  ...props
4439
4453
  }) {
4440
4454
  const intl = reactIntl.useIntl();
4441
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
4455
+ const intlConfig = cssUtils.useImperativeIntl(intl);
4442
4456
  return /* @__PURE__ */ jsxRuntime.jsx(
4443
4457
  DateFieldContainer,
4444
4458
  {
@@ -4503,7 +4517,7 @@ function DateTimePicker({
4503
4517
  );
4504
4518
  }
4505
4519
  const DEFAULT_ITEMS = [{ outlinedBullet: false, value: "" }];
4506
- const Content$1 = material.styled("ul")(({ theme }) => ({
4520
+ const Content$2 = material.styled("ul")(({ theme }) => ({
4507
4521
  listStyle: "none",
4508
4522
  paddingLeft: 0,
4509
4523
  margin: theme.spacing(0.5, 0, 0, 0)
@@ -4524,7 +4538,7 @@ const Bullet = material.styled("span")(({ theme }) => ({
4524
4538
  borderRadius: "50%",
4525
4539
  backgroundColor: theme.palette.qualitative.bold[1]
4526
4540
  }));
4527
- const Category = material.styled(TablePaginationActions.Typography)(({ theme }) => ({
4541
+ const Category = material.styled(cssUtils.Typography)(({ theme }) => ({
4528
4542
  minWidth: theme.spacing(10),
4529
4543
  marginRight: theme.spacing(1.5)
4530
4544
  }));
@@ -4533,19 +4547,21 @@ function TooltipData({
4533
4547
  title
4534
4548
  }) {
4535
4549
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4536
- title && /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { color: "inherit", variant: "caption", weight: "medium", children: title }),
4537
- /* @__PURE__ */ jsxRuntime.jsx(Content$1, { children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(Entry, { children: [
4550
+ title && /* @__PURE__ */ jsxRuntime.jsx(cssUtils.Typography, { color: "inherit", variant: "caption", weight: "medium", children: title }),
4551
+ /* @__PURE__ */ jsxRuntime.jsx(Content$2, { children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(Entry, { children: [
4538
4552
  /* @__PURE__ */ jsxRuntime.jsx(
4539
4553
  Bullet,
4540
4554
  {
4541
4555
  style: {
4542
4556
  backgroundColor: `${item.outlinedBullet ? "transparent" : item.color}`,
4543
4557
  borderColor: item.color
4544
- }
4558
+ },
4559
+ role: "presentation",
4560
+ "data-bullet": item.outlinedBullet ? "outlined" : "filled"
4545
4561
  }
4546
4562
  ),
4547
4563
  item.category && /* @__PURE__ */ jsxRuntime.jsx(Category, { color: "inherit", variant: "caption", children: item.category }),
4548
- /* @__PURE__ */ jsxRuntime.jsx(TablePaginationActions.Typography, { color: "inherit", variant: "caption", weight: "medium", children: item.value })
4564
+ /* @__PURE__ */ jsxRuntime.jsx(cssUtils.Typography, { color: "inherit", variant: "caption", weight: "medium", children: item.value })
4549
4565
  ] }, index)) })
4550
4566
  ] });
4551
4567
  }
@@ -4559,32 +4575,47 @@ const AccordionContainer = material.styled("div", {
4559
4575
  boxShadow: `inset 0 0 0 1px ${theme.palette.divider}`
4560
4576
  }
4561
4577
  }));
4562
- function AccordionGroup({
4578
+ function _AccordionGroup({
4563
4579
  variant = "standard",
4564
4580
  items,
4581
+ "aria-label": ariaLabel,
4582
+ "data-testid": dataTestId,
4565
4583
  ...otherProps
4566
- }) {
4567
- return /* @__PURE__ */ jsxRuntime.jsx(AccordionContainer, { ...otherProps, variant, children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
4568
- material.Accordion,
4584
+ }, ref) {
4585
+ return /* @__PURE__ */ jsxRuntime.jsx(
4586
+ AccordionContainer,
4569
4587
  {
4570
- disabled: item.disabled,
4571
- defaultExpanded: item.defaultExpanded,
4572
- onChange: item.onChange,
4573
- children: [
4574
- /* @__PURE__ */ jsxRuntime.jsx(
4575
- material.AccordionSummary,
4576
- {
4577
- "aria-controls": `${index}-content`,
4578
- id: `${index}-header`,
4579
- children: item.summary
4580
- }
4581
- ),
4582
- /* @__PURE__ */ jsxRuntime.jsx(material.AccordionDetails, { children: item.content })
4583
- ]
4584
- },
4585
- index
4586
- )) });
4588
+ ...otherProps,
4589
+ variant,
4590
+ "aria-label": ariaLabel,
4591
+ "data-testid": dataTestId,
4592
+ "data-variant": variant,
4593
+ "data-name": "accordion-group",
4594
+ ref,
4595
+ children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
4596
+ material.Accordion,
4597
+ {
4598
+ disabled: item.disabled,
4599
+ defaultExpanded: item.defaultExpanded,
4600
+ onChange: item.onChange,
4601
+ children: [
4602
+ /* @__PURE__ */ jsxRuntime.jsx(
4603
+ material.AccordionSummary,
4604
+ {
4605
+ "aria-controls": `${index}-content`,
4606
+ id: `${index}-header`,
4607
+ children: item.summary
4608
+ }
4609
+ ),
4610
+ /* @__PURE__ */ jsxRuntime.jsx(material.AccordionDetails, { children: item.content })
4611
+ ]
4612
+ },
4613
+ index
4614
+ ))
4615
+ }
4616
+ );
4587
4617
  }
4618
+ const AccordionGroup = React.forwardRef(_AccordionGroup);
4588
4619
  const sizes = {
4589
4620
  large: 5,
4590
4621
  medium: 4,
@@ -4608,23 +4639,43 @@ const StyledAvatar = material.styled(material.Avatar, {
4608
4639
  ...theme.typography.caption,
4609
4640
  fontWeight: 500,
4610
4641
  svg: {
4611
- width: TablePaginationActions.ICON_SIZE_SMALL,
4612
- height: TablePaginationActions.ICON_SIZE_SMALL
4642
+ width: cssUtils.ICON_SIZE_SMALL,
4643
+ height: cssUtils.ICON_SIZE_SMALL
4613
4644
  }
4614
4645
  },
4615
4646
  ...disabled && {
4616
4647
  opacity: 0.6
4617
4648
  }
4618
4649
  }));
4619
- function Avatar(props) {
4620
- return /* @__PURE__ */ jsxRuntime.jsx(StyledAvatar, { ...props });
4650
+ function _Avatar({
4651
+ size,
4652
+ disabled,
4653
+ "aria-label": ariaLabel,
4654
+ "data-testid": dataTestId,
4655
+ ...otherProps
4656
+ }, ref) {
4657
+ return /* @__PURE__ */ jsxRuntime.jsx(
4658
+ StyledAvatar,
4659
+ {
4660
+ ...otherProps,
4661
+ ref,
4662
+ size,
4663
+ "aria-disabled": disabled,
4664
+ disabled,
4665
+ "aria-label": ariaLabel,
4666
+ "data-testid": dataTestId,
4667
+ "data-size": size,
4668
+ "data-name": "avatar"
4669
+ }
4670
+ );
4621
4671
  }
4672
+ const Avatar = React.forwardRef(_Avatar);
4622
4673
  const StyledMenu = material.styled(material.Menu, {
4623
4674
  shouldForwardProp: (prop) => !["extended", "width", "height"].includes(prop)
4624
4675
  })(({ extended, width, height }) => ({
4625
4676
  ...extended && {
4626
4677
  ".MuiMenuItem-root": {
4627
- minHeight: TablePaginationActions.MENU_ITEM_SIZE_EXTENDED
4678
+ minHeight: cssUtils.MENU_ITEM_SIZE_EXTENDED
4628
4679
  }
4629
4680
  },
4630
4681
  ...width && {
@@ -4667,7 +4718,7 @@ const StyledMenuList = material.styled(material.MenuList, {
4667
4718
  })(({ extended, width, height }) => ({
4668
4719
  ...extended && {
4669
4720
  ".MuiMenuItem-root": {
4670
- minHeight: TablePaginationActions.MENU_ITEM_SIZE_EXTENDED
4721
+ minHeight: cssUtils.MENU_ITEM_SIZE_EXTENDED
4671
4722
  }
4672
4723
  },
4673
4724
  "&.MuiList-root": {
@@ -4838,7 +4889,7 @@ function _FilterDropdown({
4838
4889
  "data-color": buttonColor
4839
4890
  };
4840
4891
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
4841
- /* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { title: tooltipLabel, placement: tooltipPlacement, children: /* @__PURE__ */ jsxRuntime.jsx(ButtonWrapper, { isOpen, buttonColor, ref, children: isIcon ? /* @__PURE__ */ jsxRuntime.jsx(Alert$1.IconButton, { ...commonButtonProps, icon }) : /* @__PURE__ */ jsxRuntime.jsx(
4892
+ /* @__PURE__ */ jsxRuntime.jsx(material.Tooltip, { title: tooltipLabel, placement: tooltipPlacement, children: /* @__PURE__ */ jsxRuntime.jsx(ButtonWrapper, { isOpen, buttonColor, ref, children: isIcon ? /* @__PURE__ */ jsxRuntime.jsx(cssUtils.IconButton, { ...commonButtonProps, icon }) : /* @__PURE__ */ jsxRuntime.jsx(
4842
4893
  Button,
4843
4894
  {
4844
4895
  ...commonButtonProps,
@@ -4908,7 +4959,7 @@ const SnackbarRoot = material.styled(material.Snackbar)(({ theme }) => ({
4908
4959
  maxWidth: `${MAX_WIDTH}px`
4909
4960
  }
4910
4961
  }));
4911
- const Content = material.styled(material.Box, {
4962
+ const Content$1 = material.styled(material.Box, {
4912
4963
  shouldForwardProp: (prop) => prop !== "autoWidth"
4913
4964
  })(({ autoWidth, theme }) => ({
4914
4965
  minWidth: "100%",
@@ -4990,7 +5041,7 @@ const CloseButtonWrapper = material.styled(material.Box)(({ theme }) => ({
4990
5041
  }));
4991
5042
  function Snackbar({
4992
5043
  severity = "neutral",
4993
- autoHideDuration = TablePaginationActions.NOTIFICATION_DURATION_IN_MS,
5044
+ autoHideDuration = cssUtils.NOTIFICATION_DURATION_IN_MS,
4994
5045
  closeable = true,
4995
5046
  children,
4996
5047
  title,
@@ -5002,11 +5053,11 @@ function Snackbar({
5002
5053
  ...rest
5003
5054
  }) {
5004
5055
  const intl = reactIntl.useIntl();
5005
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
5056
+ const intlConfig = cssUtils.useImperativeIntl(intl);
5006
5057
  const isNeutral = severity === "neutral";
5007
5058
  const disabledIcon = icon === false || isNeutral && !icon;
5008
5059
  const disabledAutoHide = autoHideDuration === null;
5009
- const duration = disabledAutoHide ? null : autoHideDuration || TablePaginationActions.NOTIFICATION_DURATION_IN_MS;
5060
+ const duration = disabledAutoHide ? null : autoHideDuration || cssUtils.NOTIFICATION_DURATION_IN_MS;
5010
5061
  return /* @__PURE__ */ jsxRuntime.jsx(material.Portal, { children: /* @__PURE__ */ jsxRuntime.jsx(
5011
5062
  SnackbarRoot,
5012
5063
  {
@@ -5017,7 +5068,7 @@ function Snackbar({
5017
5068
  TransitionComponent: autoWidth ? material.Fade : material.Slide,
5018
5069
  "data-auto-width": autoWidth,
5019
5070
  children: /* @__PURE__ */ jsxRuntime.jsxs(
5020
- Content,
5071
+ Content$1,
5021
5072
  {
5022
5073
  sx: {
5023
5074
  position: "relative"
@@ -5038,7 +5089,7 @@ function Snackbar({
5038
5089
  }
5039
5090
  ),
5040
5091
  closeable && /* @__PURE__ */ jsxRuntime.jsx(CloseButtonWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
5041
- Alert$1.IconButton,
5092
+ cssUtils.IconButton,
5042
5093
  {
5043
5094
  color: "default",
5044
5095
  onClick: (e) => onClose(e, "timeout"),
@@ -5166,6 +5217,7 @@ const TagRoot = material.styled("div", {
5166
5217
  padding: theme.spacing(0, 0.5),
5167
5218
  borderRadius: theme.spacing(0.25),
5168
5219
  gap: theme.spacing(0.5),
5220
+ maxWidth: "100%",
5169
5221
  height: theme.spacing(2),
5170
5222
  borderWidth: "1px",
5171
5223
  borderStyle: "solid",
@@ -5184,8 +5236,8 @@ const TagIcon = material.styled("div")(({ theme }) => ({
5184
5236
  justifyContent: "center",
5185
5237
  alignItems: "center",
5186
5238
  "& svg": {
5187
- width: theme.spacing(TablePaginationActions.ICON_SIZE_SMALL),
5188
- height: theme.spacing(TablePaginationActions.ICON_SIZE_SMALL),
5239
+ width: theme.spacing(cssUtils.ICON_SIZE_SMALL),
5240
+ height: theme.spacing(cssUtils.ICON_SIZE_SMALL),
5189
5241
  "& g": {
5190
5242
  fill: "currentColor"
5191
5243
  }
@@ -5196,6 +5248,7 @@ const TagLabel = material.styled("div", {
5196
5248
  })(({ type, theme }) => ({
5197
5249
  display: "flex",
5198
5250
  alignItems: "center",
5251
+ ...cssUtils.ellipsisStyles,
5199
5252
  paddingTop: type === "code" ? theme.spacing(0.25) : void 0
5200
5253
  }));
5201
5254
  function _Tag({
@@ -5227,7 +5280,7 @@ function _Tag({
5227
5280
  children: [
5228
5281
  icon && /* @__PURE__ */ jsxRuntime.jsx(TagIcon, { children: icon }),
5229
5282
  /* @__PURE__ */ jsxRuntime.jsx(TagLabel, { type, children: /* @__PURE__ */ jsxRuntime.jsx(
5230
- TablePaginationActions.Typography,
5283
+ cssUtils.Typography,
5231
5284
  {
5232
5285
  component: "span",
5233
5286
  color: "inherit",
@@ -5369,7 +5422,7 @@ function useFileUpload({
5369
5422
  uploadInputRef
5370
5423
  }) {
5371
5424
  const intl = reactIntl.useIntl();
5372
- const intlConfig = TablePaginationActions.useImperativeIntl(intl);
5425
+ const intlConfig = cssUtils.useImperativeIntl(intl);
5373
5426
  const [filesText, setFilesText] = React.useState("");
5374
5427
  const [dragOver, setDragOver] = React.useState(false);
5375
5428
  React.useEffect(() => {
@@ -5524,12 +5577,155 @@ function _UploadField({
5524
5577
  ] });
5525
5578
  }
5526
5579
  const UploadField = React.forwardRef(_UploadField);
5527
- exports.TablePaginationActions = TablePaginationActions.TablePaginationActions;
5528
- exports.Typography = TablePaginationActions.Typography;
5580
+ const TooltipRoot = material.styled(material.Tooltip)(() => ({
5581
+ whiteSpace: "nowrap",
5582
+ maxWidth: 999,
5583
+ pointerEvents: "auto"
5584
+ }));
5585
+ const Content = material.styled("span", {
5586
+ shouldForwardProp: (prop) => !["ellipsisTarget", "lines", "content"].includes(prop)
5587
+ })(({ ellipsisTarget = "all", lines = 1, content = "block" }) => {
5588
+ if (lines > 1) {
5589
+ return {
5590
+ display: "-webkit-box",
5591
+ ...cssUtils.ellipsisStyles,
5592
+ whiteSpace: "initial !important",
5593
+ WebkitLineClamp: lines,
5594
+ WebkitBoxOrient: "vertical",
5595
+ "& > *": { display: "block" }
5596
+ };
5597
+ }
5598
+ if (ellipsisTarget === "first-child") {
5599
+ return {
5600
+ display: "flex",
5601
+ flex: "1",
5602
+ overflow: "hidden",
5603
+ "& > *:nth-of-type(1)": {
5604
+ display: "block",
5605
+ ...cssUtils.ellipsisStyles,
5606
+ marginRight: "-0.15em"
5607
+ // Prevent ellipsis separation
5608
+ }
5609
+ };
5610
+ }
5611
+ if (content === "flex") {
5612
+ return {
5613
+ display: "flex",
5614
+ flex: "1",
5615
+ "& > *": {
5616
+ display: "block",
5617
+ ...cssUtils.ellipsisStyles
5618
+ }
5619
+ };
5620
+ }
5621
+ return {
5622
+ display: "block",
5623
+ ...cssUtils.ellipsisStyles,
5624
+ fontWeight: "inherit",
5625
+ "& > *": { display: "inline" }
5626
+ };
5627
+ });
5628
+ function _EllipsisWithTooltip({
5629
+ children,
5630
+ tooltipText,
5631
+ alwaysShowTooltip,
5632
+ content = "block",
5633
+ textRef: inputTextRef,
5634
+ ellipsisTarget = "all",
5635
+ lines = 1,
5636
+ "aria-label": ariaLabel,
5637
+ contentProps,
5638
+ ...otherProps
5639
+ }, ref) {
5640
+ var _a;
5641
+ const textElementRef = React.useRef(null);
5642
+ const [overflowing, setOverflowing] = React.useState(false);
5643
+ const textRef = React.useMemo(
5644
+ () => inputTextRef || textElementRef,
5645
+ [inputTextRef, textElementRef]
5646
+ );
5647
+ const getTextContent = (node) => {
5648
+ if (typeof node === "string") return node;
5649
+ if (typeof node === "number") return String(node);
5650
+ if (React.isValidElement(node)) {
5651
+ const props = node.props;
5652
+ if (props.children) {
5653
+ return getTextContent(props.children);
5654
+ }
5655
+ }
5656
+ return "";
5657
+ };
5658
+ const elementTitle = tooltipText || ((_a = textElementRef.current) == null ? void 0 : _a.innerText) || (alwaysShowTooltip || overflowing ? getTextContent(children) : "");
5659
+ React.useEffect(() => {
5660
+ const container = textRef.current;
5661
+ if (!container || !children) return;
5662
+ if (alwaysShowTooltip) {
5663
+ setOverflowing(true);
5664
+ return;
5665
+ }
5666
+ let isOverflowing = false;
5667
+ if (lines > 1) {
5668
+ isOverflowing = container.scrollHeight > container.clientHeight;
5669
+ } else if (ellipsisTarget === "first-child") {
5670
+ const children2 = Array.from(container.children);
5671
+ const totalWidth = children2.reduce(
5672
+ (sum, child) => sum + ((child == null ? void 0 : child.scrollWidth) || 0),
5673
+ 0
5674
+ );
5675
+ isOverflowing = totalWidth > container.clientWidth;
5676
+ } else {
5677
+ const hasContainerOverflow = container.scrollWidth > container.clientWidth;
5678
+ const children2 = Array.from(container.children);
5679
+ const hasChildOverflow = children2.some(
5680
+ (child) => child.scrollWidth > child.clientWidth
5681
+ );
5682
+ isOverflowing = hasContainerOverflow || hasChildOverflow;
5683
+ }
5684
+ setOverflowing(isOverflowing);
5685
+ }, [textRef, alwaysShowTooltip, children, ellipsisTarget, lines, content]);
5686
+ React.useEffect(() => {
5687
+ if (typeof ref === "function") {
5688
+ ref(textElementRef.current);
5689
+ } else if (ref) {
5690
+ ref.current = textElementRef.current;
5691
+ }
5692
+ }, [ref]);
5693
+ return /* @__PURE__ */ jsxRuntime.jsx(
5694
+ TooltipRoot,
5695
+ {
5696
+ disableFocusListener: !overflowing && !alwaysShowTooltip,
5697
+ disableHoverListener: !overflowing && !alwaysShowTooltip,
5698
+ disableTouchListener: !overflowing && !alwaysShowTooltip,
5699
+ title: elementTitle,
5700
+ describeChild: true,
5701
+ ...otherProps,
5702
+ children: /* @__PURE__ */ jsxRuntime.jsx(
5703
+ Content,
5704
+ {
5705
+ "aria-label": ariaLabel ?? elementTitle,
5706
+ ref: textElementRef,
5707
+ ellipsisTarget,
5708
+ lines,
5709
+ content,
5710
+ "data-name": "ellipsis-with-tooltip",
5711
+ "data-overflowing": overflowing,
5712
+ "data-lines": lines,
5713
+ "data-content": content,
5714
+ "data-ellipsis-target": ellipsisTarget,
5715
+ ...contentProps,
5716
+ children
5717
+ }
5718
+ )
5719
+ }
5720
+ );
5721
+ }
5722
+ const EllipsisWithTooltip = React.forwardRef(_EllipsisWithTooltip);
5529
5723
  exports.Alert = Alert$1.Alert;
5530
- exports.IconButton = Alert$1.IconButton;
5531
5724
  exports.Link = Alert$1.Link;
5532
5725
  exports.ScreenReaderOnly = Alert$1.ScreenReaderOnly;
5726
+ exports.IconButton = cssUtils.IconButton;
5727
+ exports.TablePaginationActions = cssUtils.TablePaginationActions;
5728
+ exports.Typography = cssUtils.Typography;
5533
5729
  exports.MenuItem = MenuItem.MenuItem;
5534
5730
  exports.AUTOCOMPLETE_GROUP_HEADER_PROPERTY = AUTOCOMPLETE_GROUP_HEADER_PROPERTY;
5535
5731
  exports.AccordionGroup = AccordionGroup;
@@ -5563,6 +5759,7 @@ exports.DialogFooter = DialogFooter;
5563
5759
  exports.DialogHeader = DialogHeader;
5564
5760
  exports.DialogPaper = DialogPaper;
5565
5761
  exports.DialogStepper = DialogStepper;
5762
+ exports.EllipsisWithTooltip = EllipsisWithTooltip;
5566
5763
  exports.FilterDropdown = FilterDropdown;
5567
5764
  exports.FilterDropdownMenuItem = FilterDropdownMenuItem;
5568
5765
  exports.LabelWithIndicator = LabelWithIndicator;