@telicent-oss/ds 4.4.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ds.js CHANGED
@@ -1,10 +1,10 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { SvgIcon as SvgIcon$1, useTheme as useTheme$1, CircularProgress, Dialog as Dialog$1, Button as Button$1, ButtonBase, DialogContent, DialogActions, TextField as TextField$1, Typography as Typography$1, Box as Box$1, InputLabel, Select as Select$2, MenuItem as MenuItem$1, Divider as Divider$1, FormHelperText as FormHelperText$1, FormControl as FormControl$1, Autocomplete as Autocomplete$1, Switch as Switch$1, FormControlLabel as FormControlLabel$1, Checkbox as Checkbox$1, tooltipClasses, Tooltip as Tooltip$1, Radio as Radio$1, Toolbar as Toolbar$1, alpha as alpha$1, toggleButtonGroupClasses, ThemeProvider, Avatar, IconButton as IconButton$1, Paper as Paper$1 } from "@mui/material";
4
+ import { SvgIcon as SvgIcon$1, useTheme as useTheme$1, Button as Button$1, ButtonBase, InputLabel, Select as Select$2, MenuItem as MenuItem$1, Divider as Divider$1, Box as Box$1, FormHelperText as FormHelperText$1, FormControl as FormControl$1, CircularProgress, Dialog as Dialog$1, DialogContent, DialogActions, TextField as TextField$1, Typography as Typography$1, Autocomplete as Autocomplete$1, Switch as Switch$1, FormControlLabel as FormControlLabel$1, Checkbox as Checkbox$1, tooltipClasses, Tooltip as Tooltip$1, Radio as Radio$1, Toolbar as Toolbar$1, alpha as alpha$1, toggleButtonGroupClasses, ThemeProvider, Avatar, IconButton as IconButton$1, Paper as Paper$1 } from "@mui/material";
5
5
  import { DialogActions as DialogActions2, DialogContent as DialogContent2, DialogTitle } from "@mui/material";
6
6
  import * as React$1 from "react";
7
- import React__default, { useState, useEffect, forwardRef, useCallback, useId as useId$1, createContext, useContext, memo, useMemo, PureComponent, createElement as createElement$1, useRef, useImperativeHandle } from "react";
7
+ import React__default, { useState, useEffect, forwardRef, useId as useId$1, useMemo, useCallback, createContext, useContext, memo, PureComponent, createElement as createElement$1, useRef, useImperativeHandle } from "react";
8
8
  import { useTheme, useThemeProps, styled, alpha, createTheme as createTheme$1 } from "@mui/material/styles";
9
9
  import { alpha as alpha2 } from "@mui/material/styles";
10
10
  import { j as jsx, a as jsxs, F as Fragment, b as jsxRuntimeExports } from "./emotion-react-jsx-runtime.browser.esm-CBxARxuG.js";
@@ -24,6 +24,7 @@ import MUIListItemText from "@mui/material/ListItemText";
24
24
  import MUIMenu from "@mui/material/Menu";
25
25
  import MUIMenuItem from "@mui/material/MenuItem";
26
26
  import MUIIconButton from "@mui/material/IconButton";
27
+ import MuiBadge from "@mui/material/Badge";
27
28
  import MUIChip from "@mui/material/Chip";
28
29
  import MUIDivider from "@mui/material/Divider";
29
30
  import { dividerClasses } from "@mui/material/Divider";
@@ -34,12 +35,12 @@ import TableBodyRaw from "@mui/material/TableBody";
34
35
  import TableCellRaw from "@mui/material/TableCell";
35
36
  import TableHeadRaw from "@mui/material/TableHead";
36
37
  import TableRowRaw from "@mui/material/TableRow";
37
- import LinearProgressRaw from "@mui/material/LinearProgress";
38
38
  import MUIButton from "@mui/material/Button";
39
+ import SkeletonRaw from "@mui/material/Skeleton";
40
+ import LinearProgressRaw from "@mui/material/LinearProgress";
39
41
  import Alert from "@mui/material/Alert";
40
42
  import { default as default2 } from "@mui/material/Alert";
41
43
  import { default as default3 } from "@mui/material/AlertTitle";
42
- import SkeletonRaw from "@mui/material/Skeleton";
43
44
  import { useSnackbar as useSnackbar$1, enqueueSnackbar, SnackbarProvider as SnackbarProvider$1 } from "notistack";
44
45
  import { closeSnackbar } from "notistack";
45
46
  import MUITooltip from "@mui/material/Tooltip";
@@ -67,10 +68,10 @@ import MUICardHeader from "@mui/material/CardHeader";
67
68
  import MUICardContent from "@mui/material/CardContent";
68
69
  import MUICardAction from "@mui/material/CardActions";
69
70
  import ReactDOM, { flushSync } from "react-dom";
71
+ import MuiDrawer from "@mui/material/Drawer";
70
72
  import { common, grey } from "@mui/material/colors";
71
73
  import MUICssBaseline from "@mui/material/CssBaseline";
72
74
  import MUIModal from "@mui/material/Modal";
73
- import MuiDrawer from "@mui/material/Drawer";
74
75
  import Collapse from "@mui/material/Collapse";
75
76
  const useDebounce = (value, delay = 300) => {
76
77
  const [debouncedValue, setDebouncedValue] = useState(value);
@@ -17510,7 +17511,7 @@ const H6 = ({
17510
17511
  }) => /* @__PURE__ */ jsx(Typography, { component: "h6", variant, ...headingProps });
17511
17512
  const List = (listProps) => /* @__PURE__ */ jsx(MUIList, { ...listProps });
17512
17513
  const ListItem = (listItemProps) => /* @__PURE__ */ jsx(MUIListItem, { ...listItemProps });
17513
- const ListItemButton = (listItemButtonProps) => /* @__PURE__ */ jsx(MUIListItemButton, { ...listItemButtonProps });
17514
+ const ListItemButton = MUIListItemButton;
17514
17515
  const ListItemIcon = (listItemIconProps) => /* @__PURE__ */ jsx(MUIListItemIcon, { ...listItemIconProps });
17515
17516
  const ListItemText = (props) => /* @__PURE__ */ jsx(MUIListItemText, { ...props });
17516
17517
  var util;
@@ -21671,8 +21672,6 @@ const AppSwitchLibrarySchema = z.object({
21671
21672
  id: z.string(),
21672
21673
  name: z.string(),
21673
21674
  url: z.string(),
21674
- /** @deprecated Use `iconDark` and `iconLight` for theme-aware icons. */
21675
- icon: z.string().optional(),
21676
21675
  iconDark: z.string().optional(),
21677
21676
  iconLight: z.string().optional()
21678
21677
  });
@@ -21681,7 +21680,7 @@ var _ref = process.env.NODE_ENV === "production" ? {
21681
21680
  styles: "width:25px;height:25px"
21682
21681
  } : {
21683
21682
  name: "9qz4wy-AppSwitch",
21684
- styles: "width:25px;height:25px;label:AppSwitch;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0RzhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB6b2QgZnJvbSBcInpvZFwiO1xuaW1wb3J0IE1VSU1lbnUgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudVwiO1xuaW1wb3J0IE1VSU1lbnVJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVJdGVtXCI7XG5cbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVGV4dC9UZXh0XCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiLi4vLi4vYnV0dG9ucy9CdXR0b24vSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEdyaWRJY29uIGZyb20gXCIuLi9JY29ucy9HcmlkSWNvblwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcIi4uLy4uL2xheW91dC9GbGV4Qm94XCI7XG5pbXBvcnQgTVVJVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG5pbXBvcnQgTVVJTGlzdEl0ZW1JY29uIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtSWNvblwiO1xuaW1wb3J0IE1VSUxpc3RJdGVtVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVRleHRcIjtcbmltcG9ydCB7IHVzZUV4dGVuZGVkVGhlbWUgfSBmcm9tIFwiLi4vLi4vLi4vZXhwb3J0XCI7XG5cbmV4cG9ydCBjb25zdCBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hID0gem9kLm9iamVjdCh7XG4gIGlkOiB6b2Quc3RyaW5nKCksXG4gIG5hbWU6IHpvZC5zdHJpbmcoKSxcbiAgdXJsOiB6b2Quc3RyaW5nKCksXG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGljb25EYXJrYCBhbmQgYGljb25MaWdodGAgZm9yIHRoZW1lLWF3YXJlIGljb25zLiAqL1xuICBpY29uOiB6b2Quc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWNvbkRhcms6IHpvZC5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICBpY29uTGlnaHQ6IHpvZC5zdHJpbmcoKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCB0eXBlIEFwcFN3aXRjaExpYnJhcnlUeXBlID0gem9kLmluZmVyPHR5cGVvZiBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hPltdO1xuXG5jb25zdCBBcHBTd2l0Y2g6IFJlYWN0LkZDPHsgYXBwczogQXBwU3dpdGNoTGlicmFyeVR5cGUgfT4gPSAoeyBhcHBzIH0pID0+IHtcbiAgY29uc3QgW2FuY2hvckVsLCBzZXRBbmNob3JFbF0gPSBSZWFjdC51c2VTdGF0ZTxudWxsIHwgSFRNTEVsZW1lbnQ+KG51bGwpO1xuICBjb25zdCB0aGVtZSA9IHVzZUV4dGVuZGVkVGhlbWUoKTtcbiAgY29uc3Qgb3BlbiA9IEJvb2xlYW4oYW5jaG9yRWwpO1xuXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgIHNldEFuY2hvckVsKGV2ZW50LmN1cnJlbnRUYXJnZXQpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNsb3NlID0gKCkgPT4ge1xuICAgIHNldEFuY2hvckVsKG51bGwpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdj5cbiAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgIGFyaWEtbGFiZWw9XCJhcHAtc3dpdGNoXCJcbiAgICAgICAgYXJpYS1jb250cm9scz17b3BlbiA/IFwiYXBwLXN3aXRjaC1tZW51XCIgOiB1bmRlZmluZWR9XG4gICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgYXJpYS1leHBhbmRlZD17b3BlbiA/IFwidHJ1ZVwiIDogdW5kZWZpbmVkfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAgPEdyaWRJY29uIHN4PXt7IGhlaWdodDogMjQsIHdpZHRoOiAyNCB9fSAvPlxuICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgPE1VSU1lbnVcbiAgICAgICAgaWQ9XCJhcHAtc3dpdGNoLW1lbnVcIlxuICAgICAgICBhbmNob3JFbD17YW5jaG9yRWx9XG4gICAgICAgIG9wZW49e29wZW59XG4gICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlfVxuICAgICAgICBNZW51TGlzdFByb3BzPXt7XG4gICAgICAgICAgXCJhcmlhLWxhYmVsbGVkYnlcIjogXCJhcHAtc3dpdGNoLWJ1dHRvblwiLFxuICAgICAgICB9fVxuICAgICAgICBzeD17e1xuICAgICAgICAgIFwiJiAuTXVpUGFwZXItcm9vdFwiOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJkYXJrXCIgPyBcIiMyQTJBMkFcIiA6IFwiI2ZmZmZmZlwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH19XG4gICAgICA+XG4gICAgICAgIHthcHBzLm1hcCgoYXBwLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHZhbGlkYXRlQXBwc1NjaGVtYSA9IEFwcFN3aXRjaExpYnJhcnlTY2hlbWEuc2FmZVBhcnNlKGFwcCk7XG5cbiAgICAgICAgICBpZiAoIXZhbGlkYXRlQXBwc1NjaGVtYS5zdWNjZXNzKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRFcnJvcnMgPSB2YWxpZGF0ZUFwcHNTY2hlbWEuZXJyb3IuaXNzdWVzLm1hcCgoaXNzdWUpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGAke2lzc3VlLnBhdGgudG9TdHJpbmcoKS5yZXBsYWNlKFwiLFwiLCBcIiA+IFwiKX06ICR7aXNzdWUubWVzc2FnZX1gO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1zZyA9IGZvcm1hdHRlZEVycm9ycy5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPEZsZXhCb3gga2V5PXtlcnJvck1zZ30gcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgICBNaXNjb25maWd1cmF0aW9uIGVycm9yOiBBcHAgU3dpdGNoIGxpYnJhcnkge2FwcD8uaWQgPyBgZm9yIGlkICR7YXBwLmlkfWAgOiBgYXQgaW5kZXggJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgIDwvVGV4dD5cbiAgICAgICAgICAgICAgICA8VGV4dD57ZXJyb3JNc2d9PC9UZXh0PlxuICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHRoZW1lZEljb24gPSB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwiZGFya1wiID8gYXBwLmljb25EYXJrIDogYXBwLmljb25MaWdodDtcbiAgICAgICAgICBjb25zdCBpY29uU3JjID0gdGhlbWVkSWNvbiA/PyBhcHAuaWNvbjtcblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8TVVJTWVudUl0ZW1cbiAgICAgICAgICAgICAga2V5PXthcHAuaWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihhcHAudXJsLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVDbG9zZSgpO1xuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG4gICAgICAgICAgICAgICAgbWFyZ2luWDogMSxcbiAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiNHB4XCIsXG4gICAgICAgICAgICAgICAgYm9yZGVyOiBcIjFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDApXCIsXG4gICAgICAgICAgICAgICAgXCImOmhvdmVyXCI6IHtcbiAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjpcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiA/IHRoZW1lLnBhbGV0dGUuYmFja2dyb3VuZC5kZWZhdWx0IDogXCJyZ2JhKDAsIDAsIDAsIDAuMDQpXCIsXG4gICAgICAgICAgICAgICAgICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS5wYWxldHRlLnByaW1hcnkubWFpbn1gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtpY29uU3JjICYmIChcbiAgICAgICAgICAgICAgICA8TVVJTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgPGltZyBzcmM9e2ljb25TcmN9IGFsdD17YCR7YXBwLm5hbWV9IGljb25gfSBjc3M9e3sgd2lkdGg6IDI1LCBoZWlnaHQ6IDI1IH19IC8+XG4gICAgICAgICAgICAgICAgPC9NVUlMaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDxNVUlMaXN0SXRlbVRleHQ+XG4gICAgICAgICAgICAgICAgPE1VSVR5cG9ncmFwaHlcbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJoMVwiXG4gICAgICAgICAgICAgICAgICBzeD17e1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IDAuNSxcbiAgICAgICAgICAgICAgICAgICAgZm9udEZhbWlseTogXCJGaWd0cmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRTaXplOiAxNixcbiAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogNDAwLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogXCJwcmltYXJ5XCIsXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7YXBwLm5hbWUudG9VcHBlckNhc2UoKX1cbiAgICAgICAgICAgICAgICA8L01VSVR5cG9ncmFwaHk+XG4gICAgICAgICAgICAgIDwvTVVJTGlzdEl0ZW1UZXh0PlxuICAgICAgICAgICAgPC9NVUlNZW51SXRlbT5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgIDwvTVVJTWVudT5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFwcFN3aXRjaDtcbiJdfQ== */",
21683
+ styles: "width:25px;height:25px;label:AppSwitch;/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5RzhEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3RlbGljZW50LWRzL3RlbGljZW50LWRzL3NyYy9jb21wb25lbnRzL2RhdGEtZGlzcGxheS9BcHBTd2l0Y2gvQXBwU3dpdGNoLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB6b2QgZnJvbSBcInpvZFwiO1xuaW1wb3J0IE1VSU1lbnUgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvTWVudVwiO1xuaW1wb3J0IE1VSU1lbnVJdGVtIGZyb20gXCJAbXVpL21hdGVyaWFsL01lbnVJdGVtXCI7XG5cbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVGV4dC9UZXh0XCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tIFwiLi4vLi4vYnV0dG9ucy9CdXR0b24vSWNvbkJ1dHRvblwiO1xuaW1wb3J0IEdyaWRJY29uIGZyb20gXCIuLi9JY29ucy9HcmlkSWNvblwiO1xuaW1wb3J0IEZsZXhCb3ggZnJvbSBcIi4uLy4uL2xheW91dC9GbGV4Qm94XCI7XG5pbXBvcnQgTVVJVHlwb2dyYXBoeSBmcm9tIFwiQG11aS9tYXRlcmlhbC9UeXBvZ3JhcGh5XCI7XG5pbXBvcnQgTVVJTGlzdEl0ZW1JY29uIGZyb20gXCJAbXVpL21hdGVyaWFsL0xpc3RJdGVtSWNvblwiO1xuaW1wb3J0IE1VSUxpc3RJdGVtVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9MaXN0SXRlbVRleHRcIjtcbmltcG9ydCB7IHVzZUV4dGVuZGVkVGhlbWUgfSBmcm9tIFwiLi4vLi4vLi4vZXhwb3J0XCI7XG5cbmV4cG9ydCBjb25zdCBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hID0gem9kLm9iamVjdCh7XG4gIGlkOiB6b2Quc3RyaW5nKCksXG4gIG5hbWU6IHpvZC5zdHJpbmcoKSxcbiAgdXJsOiB6b2Quc3RyaW5nKCksXG4gIGljb25EYXJrOiB6b2Quc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgaWNvbkxpZ2h0OiB6b2Quc3RyaW5nKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgdHlwZSBBcHBTd2l0Y2hMaWJyYXJ5VHlwZSA9IHpvZC5pbmZlcjx0eXBlb2YgQXBwU3dpdGNoTGlicmFyeVNjaGVtYT5bXTtcblxuY29uc3QgQXBwU3dpdGNoOiBSZWFjdC5GQzx7IGFwcHM6IEFwcFN3aXRjaExpYnJhcnlUeXBlIH0+ID0gKHsgYXBwcyB9KSA9PiB7XG4gIGNvbnN0IFthbmNob3JFbCwgc2V0QW5jaG9yRWxdID0gUmVhY3QudXNlU3RhdGU8bnVsbCB8IEhUTUxFbGVtZW50PihudWxsKTtcbiAgY29uc3QgdGhlbWUgPSB1c2VFeHRlbmRlZFRoZW1lKCk7XG4gIGNvbnN0IG9wZW4gPSBCb29sZWFuKGFuY2hvckVsKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogUmVhY3QuTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBzZXRBbmNob3JFbChldmVudC5jdXJyZW50VGFyZ2V0KTtcbiAgfTtcblxuICBjb25zdCBoYW5kbGVDbG9zZSA9ICgpID0+IHtcbiAgICBzZXRBbmNob3JFbChudWxsKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxkaXY+XG4gICAgICA8SWNvbkJ1dHRvblxuICAgICAgICBhcmlhLWxhYmVsPVwiYXBwLXN3aXRjaFwiXG4gICAgICAgIGFyaWEtY29udHJvbHM9e29wZW4gPyBcImFwcC1zd2l0Y2gtbWVudVwiIDogdW5kZWZpbmVkfVxuICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgIGFyaWEtZXhwYW5kZWQ9e29wZW4gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIDxHcmlkSWNvbiBzeD17eyBoZWlnaHQ6IDI0LCB3aWR0aDogMjQgfX0gLz5cbiAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgIDxNVUlNZW51XG4gICAgICAgIGlkPVwiYXBwLXN3aXRjaC1tZW51XCJcbiAgICAgICAgYW5jaG9yRWw9e2FuY2hvckVsfVxuICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZX1cbiAgICAgICAgTWVudUxpc3RQcm9wcz17e1xuICAgICAgICAgIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IFwiYXBwLXN3aXRjaC1idXR0b25cIixcbiAgICAgICAgfX1cbiAgICAgICAgc3g9e3tcbiAgICAgICAgICBcIiYgLk11aVBhcGVyLXJvb3RcIjoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGVtZS5wYWxldHRlLm1vZGUgPT09IFwiZGFya1wiID8gXCIjMkEyQTJBXCIgOiBcIiNmZmZmZmZcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9fVxuICAgICAgPlxuICAgICAgICB7YXBwcy5tYXAoKGFwcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICBjb25zdCB2YWxpZGF0ZUFwcHNTY2hlbWEgPSBBcHBTd2l0Y2hMaWJyYXJ5U2NoZW1hLnNhZmVQYXJzZShhcHApO1xuXG4gICAgICAgICAgaWYgKCF2YWxpZGF0ZUFwcHNTY2hlbWEuc3VjY2Vzcykge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkRXJyb3JzID0gdmFsaWRhdGVBcHBzU2NoZW1hLmVycm9yLmlzc3Vlcy5tYXAoKGlzc3VlKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBgJHtpc3N1ZS5wYXRoLnRvU3RyaW5nKCkucmVwbGFjZShcIixcIiwgXCIgPiBcIil9OiAke2lzc3VlLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNc2cgPSBmb3JtYXR0ZWRFcnJvcnMuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxGbGV4Qm94IGtleT17ZXJyb3JNc2d9IHJvbGU9XCJtZW51aXRlbVwiPlxuICAgICAgICAgICAgICAgIDxUZXh0PlxuICAgICAgICAgICAgICAgICAgTWlzY29uZmlndXJhdGlvbiBlcnJvcjogQXBwIFN3aXRjaCBsaWJyYXJ5IHthcHA/LmlkID8gYGZvciBpZCAke2FwcC5pZH1gIDogYGF0IGluZGV4ICR7aW5kZXh9YH1cbiAgICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICAgICAgPFRleHQ+e2Vycm9yTXNnfTwvVGV4dD5cbiAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBpY29uU3JjID0gdGhlbWUucGFsZXR0ZS5tb2RlID09PSBcImRhcmtcIiA/IGFwcC5pY29uRGFyayA6IGFwcC5pY29uTGlnaHQ7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPE1VSU1lbnVJdGVtXG4gICAgICAgICAgICAgIGtleT17YXBwLmlkfVxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oYXBwLnVybCwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICAgICAgaGFuZGxlQ2xvc2UoKTtcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICAgICAgICAgIG1hcmdpblg6IDEsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiBcIjRweFwiLFxuICAgICAgICAgICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwKVwiLFxuICAgICAgICAgICAgICAgIFwiJjpob3ZlclwiOiB7XG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLnBhbGV0dGUubW9kZSA9PT0gXCJkYXJrXCIgPyB0aGVtZS5wYWxldHRlLmJhY2tncm91bmQuZGVmYXVsdCA6IFwicmdiYSgwLCAwLCAwLCAwLjA0KVwiLFxuICAgICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUucGFsZXR0ZS5wcmltYXJ5Lm1haW59YCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aWNvblNyYyAmJiAoXG4gICAgICAgICAgICAgICAgPE1VSUxpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtpY29uU3JjfSBhbHQ9e2Ake2FwcC5uYW1lfSBpY29uYH0gY3NzPXt7IHdpZHRoOiAyNSwgaGVpZ2h0OiAyNSB9fSAvPlxuICAgICAgICAgICAgICAgIDwvTVVJTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8TVVJTGlzdEl0ZW1UZXh0PlxuICAgICAgICAgICAgICAgIDxNVUlUeXBvZ3JhcGh5XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwiaDFcIlxuICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAwLjUsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk6IFwiRmlndHJlZVwiLFxuICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogMTYsXG4gICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6IDQwMCxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IFwicHJpbWFyeVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2FwcC5uYW1lLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgPC9NVUlUeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICA8L01VSUxpc3RJdGVtVGV4dD5cbiAgICAgICAgICAgIDwvTVVJTWVudUl0ZW0+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L01VSU1lbnU+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBBcHBTd2l0Y2g7XG4iXX0= */",
21685
21684
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21686
21685
  };
21687
21686
  const AppSwitch = ({
@@ -21722,8 +21721,7 @@ const AppSwitch = ({
21722
21721
  /* @__PURE__ */ jsx(Text$1, { children: errorMsg })
21723
21722
  ] }, errorMsg);
21724
21723
  }
21725
- const themedIcon = theme.palette.mode === "dark" ? app.iconDark : app.iconLight;
21726
- const iconSrc = themedIcon ?? app.icon;
21724
+ const iconSrc = theme.palette.mode === "dark" ? app.iconDark : app.iconLight;
21727
21725
  return /* @__PURE__ */ jsxs(MUIMenuItem, { onClick: () => {
21728
21726
  window.open(app.url, "_blank");
21729
21727
  handleClose();
@@ -21752,6 +21750,20 @@ const AppSwitch = ({
21752
21750
  }) })
21753
21751
  ] });
21754
21752
  };
21753
+ const hideFromAssistiveTech = (badge) => typeof badge === "function" ? (ownerState) => ({
21754
+ "aria-hidden": true,
21755
+ ...badge(ownerState)
21756
+ }) : {
21757
+ "aria-hidden": true,
21758
+ ...badge
21759
+ };
21760
+ const Badge = ({
21761
+ slotProps,
21762
+ ...props
21763
+ }) => /* @__PURE__ */ jsx(MuiBadge, { color: "primary", ...props, slotProps: {
21764
+ ...slotProps,
21765
+ badge: hideFromAssistiveTech(slotProps == null ? void 0 : slotProps.badge)
21766
+ } });
21755
21767
  const Chip = ({
21756
21768
  variant = "filled",
21757
21769
  color = "primary",
@@ -24608,28 +24620,16 @@ const TableBody = (props) => /* @__PURE__ */ jsx(TableBodyRaw, { ...props });
24608
24620
  const TableCell = (props) => /* @__PURE__ */ jsx(TableCellRaw, { ...props });
24609
24621
  const TableHead = (props) => /* @__PURE__ */ jsx(TableHeadRaw, { ...props });
24610
24622
  const TableRow = (props) => /* @__PURE__ */ jsx(TableRowRaw, { ...props });
24611
- const LinearProgress = ({
24612
- // isActive,
24613
- // transition = 500,
24614
- ...linearProgressProps
24615
- }) => {
24616
- return /* @__PURE__ */ jsx(
24617
- LinearProgressRaw,
24618
- {
24619
- ...linearProgressProps
24620
- }
24621
- );
24622
- };
24623
- const Spinner = (props) => {
24624
- return /* @__PURE__ */ jsx(CircularProgress, { "aria-label": "Loading", ...props });
24625
- };
24626
- const Dialog = ({
24627
- open,
24628
- onClose,
24629
- children,
24630
- ...otherProps
24631
- }) => {
24632
- return /* @__PURE__ */ jsx(Dialog$1, { open, onClose, ...otherProps, children });
24623
+ const visuallyHidden = {
24624
+ border: 0,
24625
+ clip: "rect(0 0 0 0)",
24626
+ height: "1px",
24627
+ margin: "-1px",
24628
+ overflow: "hidden",
24629
+ padding: 0,
24630
+ position: "absolute",
24631
+ whiteSpace: "nowrap",
24632
+ width: "1px"
24633
24633
  };
24634
24634
  const PrimaryButton = forwardRef((buttonProps, ref) => /* @__PURE__ */ jsx(Button$1, { variant: "contained", ref, color: "primary", ...buttonProps, children: buttonProps.children }));
24635
24635
  const SecondaryButton = forwardRef((buttonProps, ref) => {
@@ -24687,6 +24687,365 @@ const Button = forwardRef((props, ref) => {
24687
24687
  return /* @__PURE__ */ jsx(PrimaryButton, { ...buttonProps, ref });
24688
24688
  });
24689
24689
  Button.displayName = "Button";
24690
+ const Select$1 = React__default.forwardRef(({
24691
+ label,
24692
+ value,
24693
+ id,
24694
+ options,
24695
+ width,
24696
+ onChange: onChange2,
24697
+ disabled: disabled2 = false,
24698
+ sx,
24699
+ helperText,
24700
+ error: error2 = false,
24701
+ required = false,
24702
+ fullWidth = false,
24703
+ footer,
24704
+ renderOption,
24705
+ ...rest
24706
+ }, ref) => {
24707
+ const reactId = useId$1();
24708
+ const selectedId = id ?? `select-${reactId}`;
24709
+ const labelId = label ? `${selectedId}-label` : void 0;
24710
+ const helperTextId = helperText ? `${selectedId}-helper-text` : void 0;
24711
+ const [openInternal, setOpenInternal] = React__default.useState(false);
24712
+ const isOpenControlled = "open" in rest;
24713
+ const openProp = isOpenControlled ? rest.open : openInternal;
24714
+ const handleOpen = (event) => {
24715
+ var _a;
24716
+ setOpenInternal(true);
24717
+ (_a = rest.onOpen) == null ? void 0 : _a.call(rest, event);
24718
+ };
24719
+ const handleClose = (event) => {
24720
+ var _a;
24721
+ setOpenInternal(false);
24722
+ (_a = rest.onClose) == null ? void 0 : _a.call(rest, event);
24723
+ };
24724
+ const closeMenu = React__default.useCallback(() => setOpenInternal(false), []);
24725
+ const consumerSx = Array.isArray(sx) ? sx : sx ? [sx] : [];
24726
+ const composedSx = [{
24727
+ minWidth: 88,
24728
+ ...width && {
24729
+ width
24730
+ },
24731
+ ...fullWidth && {
24732
+ width: "100%"
24733
+ }
24734
+ }, ...consumerSx];
24735
+ return /* @__PURE__ */ jsxs(FormControl$1, { sx: composedSx, size: "small", error: error2, required, fullWidth, disabled: disabled2, children: [
24736
+ label && /* @__PURE__ */ jsx(InputLabel, { id: labelId, required, htmlFor: selectedId, children: label }),
24737
+ /* @__PURE__ */ jsxs(Select$2, { ...rest, open: openProp, onOpen: handleOpen, onClose: handleClose, color: "primary", variant: "outlined", labelId, label, id: selectedId, value, onChange: onChange2, inputRef: ref, "aria-describedby": helperText ? helperTextId : void 0, children: [
24738
+ options.map((option) => /* @__PURE__ */ jsx(MenuItem$1, { value: option.value, "aria-label": renderOption ? option.label : void 0, disableRipple: true, disabled: option.disabled, children: renderOption ? renderOption(option) : option.label }, option.value)),
24739
+ footer && options.length > 0 && /* @__PURE__ */ jsx(Divider$1, { component: "li", role: "separator", sx: {
24740
+ my: 0.5
24741
+ } }, "__ds-select-footer-divider"),
24742
+ footer && /* @__PURE__ */ jsx(
24743
+ Box$1,
24744
+ {
24745
+ component: "li",
24746
+ role: "presentation",
24747
+ sx: {
24748
+ px: 1.5,
24749
+ py: 0.5,
24750
+ listStyle: "none"
24751
+ },
24752
+ onClick: (e) => e.stopPropagation(),
24753
+ onKeyDown: (e) => {
24754
+ if (e.key === "Enter" || e.key === " ") {
24755
+ e.stopPropagation();
24756
+ }
24757
+ },
24758
+ children: typeof footer === "function" ? footer({
24759
+ closeMenu
24760
+ }) : footer
24761
+ },
24762
+ "__ds-select-footer"
24763
+ )
24764
+ ] }),
24765
+ helperText && /* @__PURE__ */ jsx(FormHelperText$1, { error: error2, id: helperTextId, children: helperText })
24766
+ ] });
24767
+ });
24768
+ const Skeleton = SkeletonRaw;
24769
+ const DEFAULT_PAGE_SIZE = 10;
24770
+ const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100];
24771
+ const compareValues = (a, b) => {
24772
+ if (a == null && b == null) return 0;
24773
+ if (a == null) return 1;
24774
+ if (b == null) return -1;
24775
+ if (a instanceof Date && b instanceof Date) return a.getTime() - b.getTime();
24776
+ if (typeof a === "number" && typeof b === "number") return a - b;
24777
+ return String(a).localeCompare(String(b));
24778
+ };
24779
+ const nextDirection = (current) => current === "asc" ? "desc" : "asc";
24780
+ const EntityList = ({
24781
+ items,
24782
+ columns,
24783
+ getItemKey,
24784
+ getItemHref,
24785
+ getItemLabel,
24786
+ onItemClick,
24787
+ ariaLabelledBy,
24788
+ ariaLabel,
24789
+ initialSort,
24790
+ isLoading,
24791
+ defaultPageSize = DEFAULT_PAGE_SIZE,
24792
+ pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
24793
+ renderEmpty
24794
+ }) => {
24795
+ const pageSizeSelectId = useId$1();
24796
+ const pageSizeLabelId = useId$1();
24797
+ const {
24798
+ palette
24799
+ } = useTheme();
24800
+ const borderColor = palette.divider;
24801
+ const [sort, setSort] = useState(initialSort ?? null);
24802
+ const [page, setPage] = useState(0);
24803
+ const [currentPageSize, setCurrentPageSize] = useState(defaultPageSize);
24804
+ const sortedItems = useMemo(() => {
24805
+ if (!sort) return items;
24806
+ const column = columns.find((c) => c.key === sort.key);
24807
+ if (!(column == null ? void 0 : column.getSortValue)) return items;
24808
+ const getSortValue = column.getSortValue;
24809
+ const copy = [...items];
24810
+ copy.sort((a, b) => {
24811
+ const result = compareValues(getSortValue(a), getSortValue(b));
24812
+ return sort.direction === "asc" ? result : -result;
24813
+ });
24814
+ return copy;
24815
+ }, [items, sort, columns]);
24816
+ const pageCount = Math.max(1, Math.ceil(sortedItems.length / currentPageSize));
24817
+ const safePage = Math.min(page, pageCount - 1);
24818
+ const pageStart = safePage * currentPageSize;
24819
+ const pageItems = sortedItems.slice(pageStart, pageStart + currentPageSize);
24820
+ const handleSort = (key) => {
24821
+ setSort((current) => {
24822
+ if ((current == null ? void 0 : current.key) === key) {
24823
+ return {
24824
+ key,
24825
+ direction: nextDirection(current.direction)
24826
+ };
24827
+ }
24828
+ return {
24829
+ key,
24830
+ direction: "asc"
24831
+ };
24832
+ });
24833
+ setPage(0);
24834
+ };
24835
+ const columnFlexBasis = (column) => {
24836
+ if (column.width != null) {
24837
+ return typeof column.width === "number" ? `${column.width}px` : column.width;
24838
+ }
24839
+ return "0";
24840
+ };
24841
+ const columnFlexGrow = (column) => {
24842
+ if (column.width != null) return 0;
24843
+ return column.flex ?? 1;
24844
+ };
24845
+ const sectionProps = ariaLabelledBy ? {
24846
+ "aria-labelledby": ariaLabelledBy
24847
+ } : {
24848
+ "aria-label": ariaLabel
24849
+ };
24850
+ const showEmpty = !isLoading && sortedItems.length === 0;
24851
+ const pageSizeOptionsForSelect = useMemo(() => pageSizeOptions.map((n) => ({
24852
+ value: n,
24853
+ label: String(n)
24854
+ })), [pageSizeOptions]);
24855
+ return /* @__PURE__ */ jsxs(MUIBox, { component: "section", ...sectionProps, sx: {
24856
+ width: "100%"
24857
+ }, children: [
24858
+ /* @__PURE__ */ jsx(FlexBox, { direction: "row", role: "presentation", sx: {
24859
+ px: 2,
24860
+ py: 1,
24861
+ borderBottom: `1px solid ${borderColor}`,
24862
+ gap: 2
24863
+ }, children: columns.map((column) => {
24864
+ const active = (sort == null ? void 0 : sort.key) === column.key;
24865
+ const direction = active ? sort.direction : "asc";
24866
+ const sortable = column.getSortValue != null;
24867
+ const alignStyle = column.align === "right" ? {
24868
+ justifyContent: "flex-end",
24869
+ textAlign: "right"
24870
+ } : void 0;
24871
+ const sharedStyle = {
24872
+ flexGrow: columnFlexGrow(column),
24873
+ flexShrink: 1,
24874
+ flexBasis: columnFlexBasis(column),
24875
+ minWidth: 0,
24876
+ fontWeight: 600,
24877
+ ...alignStyle
24878
+ };
24879
+ if (!sortable) {
24880
+ return /* @__PURE__ */ jsx(MUIBox, { sx: sharedStyle, children: column.header }, column.key);
24881
+ }
24882
+ return /* @__PURE__ */ jsxs(Button, { variant: "base", disableRipple: true, onClick: () => handleSort(column.key), sx: {
24883
+ ...sharedStyle,
24884
+ justifyContent: column.align === "right" ? "flex-end" : "flex-start",
24885
+ gap: 0.5,
24886
+ padding: 0,
24887
+ color: "inherit",
24888
+ font: "inherit",
24889
+ // ButtonBase sets outline: 0 and relies on the theme to style
24890
+ // keyboard focus. Draw a primary-coloured ring on focus-visible
24891
+ // so Tab-through stays legible.
24892
+ "&:focus-visible": {
24893
+ outline: `2px solid ${palette.primary.main}`,
24894
+ outlineOffset: "2px"
24895
+ },
24896
+ // Hover-reveal matches MUI DataGrid: inactive header shows a
24897
+ // faint asc indicator on hover to telegraph what the click
24898
+ // will do. Default opacity lives in CSS (not inline style)
24899
+ // so the hover rule can actually win on specificity.
24900
+ "& .entity-list-sort-hint": {
24901
+ opacity: 0,
24902
+ transition: "opacity 120ms ease"
24903
+ },
24904
+ "&:hover .entity-list-sort-hint": {
24905
+ opacity: 0.5
24906
+ }
24907
+ }, children: [
24908
+ /* @__PURE__ */ jsx("span", { children: column.header }),
24909
+ active && // Visually-hidden text puts the sort direction into the
24910
+ // button's accessible name, so screen readers announce
24911
+ // "Name, sorted ascending, button". ARIA 1.2 limits
24912
+ // aria-sort to columnheader/rowheader roles, and EntityList
24913
+ // is a list — not a grid — so we convey the state through
24914
+ // the name instead.
24915
+ /* @__PURE__ */ jsxs(MUIBox, { component: "span", sx: visuallyHidden, children: [
24916
+ ", sorted ",
24917
+ direction === "asc" ? "ascending" : "descending"
24918
+ ] }),
24919
+ active ? direction === "asc" ? /* @__PURE__ */ jsx(ExpandLessIcon, { "aria-hidden": "true", sx: {
24920
+ fontSize: "1em",
24921
+ color: palette.primary.main
24922
+ } }) : /* @__PURE__ */ jsx(ExpandMoreIcon, { "aria-hidden": "true", sx: {
24923
+ fontSize: "1em",
24924
+ color: palette.primary.main
24925
+ } }) : /* @__PURE__ */ jsx(ExpandLessIcon, { className: "entity-list-sort-hint", "aria-hidden": "true", sx: {
24926
+ fontSize: "1em"
24927
+ } })
24928
+ ] }, column.key);
24929
+ }) }),
24930
+ isLoading && /* @__PURE__ */ jsxs(Fragment, { children: [
24931
+ /* @__PURE__ */ jsx(MUIBox, { role: "status", "aria-live": "polite", sx: visuallyHidden, children: "Loading" }),
24932
+ /* @__PURE__ */ jsx(List, { disablePadding: true, "aria-hidden": "true", children: Array.from({
24933
+ length: currentPageSize
24934
+ }).map((_, i) => /* @__PURE__ */ jsx(ListItem, { disablePadding: true, children: /* @__PURE__ */ jsxs(MUIBox, { sx: {
24935
+ display: "flex",
24936
+ alignItems: "center",
24937
+ gap: 2,
24938
+ px: 2,
24939
+ py: 1.5,
24940
+ borderBottom: `1px solid ${borderColor}`,
24941
+ width: "100%"
24942
+ }, children: [
24943
+ columns.map((column) => /* @__PURE__ */ jsx(MUIBox, { sx: {
24944
+ flexGrow: columnFlexGrow(column),
24945
+ flexShrink: 1,
24946
+ flexBasis: columnFlexBasis(column),
24947
+ minWidth: 0
24948
+ }, children: /* @__PURE__ */ jsx(Skeleton, { variant: "text" }) }, column.key)),
24949
+ getItemHref && /* @__PURE__ */ jsx(Skeleton, { variant: "text", sx: {
24950
+ width: 16
24951
+ } })
24952
+ ] }) }, i)) })
24953
+ ] }),
24954
+ showEmpty && /* @__PURE__ */ jsx(MUIBox, { sx: {
24955
+ px: 2,
24956
+ py: 4
24957
+ }, children: renderEmpty ? renderEmpty() : /* @__PURE__ */ jsx(Text$1, { children: "No items" }) }),
24958
+ !isLoading && !showEmpty && /* @__PURE__ */ jsx(List, { disablePadding: true, children: pageItems.map((item) => {
24959
+ const href = getItemHref == null ? void 0 : getItemHref(item);
24960
+ const label = getItemLabel == null ? void 0 : getItemLabel(item);
24961
+ const interactive = typeof href === "string";
24962
+ const rowContentStyle = {
24963
+ display: "flex",
24964
+ alignItems: "center",
24965
+ gap: 2,
24966
+ px: 2,
24967
+ py: 1.5,
24968
+ borderBottom: `1px solid ${borderColor}`
24969
+ };
24970
+ const cells = columns.map((column) => /* @__PURE__ */ jsx(MUIBox, { sx: {
24971
+ flexGrow: columnFlexGrow(column),
24972
+ flexShrink: 1,
24973
+ flexBasis: columnFlexBasis(column),
24974
+ minWidth: 0,
24975
+ overflow: "hidden",
24976
+ textOverflow: "ellipsis",
24977
+ whiteSpace: "nowrap",
24978
+ textAlign: column.align === "right" ? "right" : "left"
24979
+ }, children: column.render(item) }, column.key));
24980
+ return /* @__PURE__ */ jsx(ListItem, { disablePadding: true, children: interactive ? /* @__PURE__ */ jsxs(ListItemButton, { component: "a", href, "aria-label": label, onClick: (e) => {
24981
+ if (!onItemClick) return;
24982
+ if (e.metaKey || e.ctrlKey || e.shiftKey || e.altKey) return;
24983
+ if (e.button !== 0) return;
24984
+ e.preventDefault();
24985
+ onItemClick(item, href);
24986
+ }, disableRipple: true, sx: {
24987
+ ...rowContentStyle,
24988
+ color: "inherit",
24989
+ textDecoration: "none"
24990
+ }, children: [
24991
+ cells,
24992
+ /* @__PURE__ */ jsx(ChevronRightIcon, { "aria-hidden": "true", sx: {
24993
+ fontSize: "1em"
24994
+ } })
24995
+ ] }) : /* @__PURE__ */ jsx(MUIBox, { sx: {
24996
+ ...rowContentStyle,
24997
+ width: "100%"
24998
+ }, children: cells }) }, getItemKey(item));
24999
+ }) }),
25000
+ !isLoading && !showEmpty && /* @__PURE__ */ jsxs(FlexBox, { direction: "row", alignItems: "center", justifyContent: "flex-end", gap: 2, sx: {
25001
+ px: 2,
25002
+ py: 1
25003
+ }, children: [
25004
+ /* @__PURE__ */ jsx(MUIBox, { component: "label", htmlFor: pageSizeSelectId, id: pageSizeLabelId, children: /* @__PURE__ */ jsx(Text$1, { component: "span", children: "Rows per page:" }) }),
25005
+ /* @__PURE__ */ jsx(
25006
+ Select$1,
25007
+ {
25008
+ id: pageSizeSelectId,
25009
+ value: currentPageSize,
25010
+ options: pageSizeOptionsForSelect,
25011
+ SelectDisplayProps: {
25012
+ "aria-labelledby": pageSizeLabelId
25013
+ },
25014
+ onChange: (e) => {
25015
+ setCurrentPageSize(Number(e.target.value));
25016
+ setPage(0);
25017
+ }
25018
+ }
25019
+ ),
25020
+ /* @__PURE__ */ jsx(Text$1, { children: sortedItems.length === 0 ? "0 of 0" : `${pageStart + 1}–${Math.min(pageStart + currentPageSize, sortedItems.length)} of ${sortedItems.length}` }),
25021
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => setPage((p5) => Math.max(0, p5 - 1)), disabled: safePage === 0, "aria-label": "Previous page", size: "small", children: /* @__PURE__ */ jsx(ChevronLeftIcon, {}) }),
25022
+ /* @__PURE__ */ jsx(IconButton, { onClick: () => setPage((p5) => Math.min(pageCount - 1, p5 + 1)), disabled: safePage >= pageCount - 1, "aria-label": "Next page", size: "small", children: /* @__PURE__ */ jsx(ChevronRightIcon, {}) })
25023
+ ] })
25024
+ ] });
25025
+ };
25026
+ const LinearProgress = ({
25027
+ // isActive,
25028
+ // transition = 500,
25029
+ ...linearProgressProps
25030
+ }) => {
25031
+ return /* @__PURE__ */ jsx(
25032
+ LinearProgressRaw,
25033
+ {
25034
+ ...linearProgressProps
25035
+ }
25036
+ );
25037
+ };
25038
+ const Spinner = (props) => {
25039
+ return /* @__PURE__ */ jsx(CircularProgress, { "aria-label": "Loading", ...props });
25040
+ };
25041
+ const Dialog = ({
25042
+ open,
25043
+ onClose,
25044
+ children,
25045
+ ...otherProps
25046
+ }) => {
25047
+ return /* @__PURE__ */ jsx(Dialog$1, { open, onClose, ...otherProps, children });
25048
+ };
24690
25049
  const noop$1 = () => {
24691
25050
  };
24692
25051
  const defaultIconFor = (variant) => {
@@ -24798,7 +25157,6 @@ const ConfirmDialog = ({
24798
25157
  ] })
24799
25158
  ] });
24800
25159
  };
24801
- const Skeleton = SkeletonRaw;
24802
25160
  const snackbar = ({
24803
25161
  type,
24804
25162
  message,
@@ -25042,84 +25400,6 @@ const TextField = React__default.forwardRef(({
25042
25400
  }, ref) => {
25043
25401
  return /* @__PURE__ */ jsx(TextField$1, { ...rest, inputRef: ref, error: Boolean(error2 ?? errorText), helperText: error2 ? errorText ?? helperText : helperText });
25044
25402
  });
25045
- const Select$1 = React__default.forwardRef(({
25046
- label,
25047
- value,
25048
- id,
25049
- options,
25050
- width,
25051
- onChange: onChange2,
25052
- disabled: disabled2 = false,
25053
- sx,
25054
- helperText,
25055
- error: error2 = false,
25056
- required = false,
25057
- fullWidth = false,
25058
- footer,
25059
- renderOption,
25060
- ...rest
25061
- }, ref) => {
25062
- const reactId = useId$1();
25063
- const selectedId = id ?? `select-${reactId}`;
25064
- const labelId = label ? `${selectedId}-label` : void 0;
25065
- const helperTextId = helperText ? `${selectedId}-helper-text` : void 0;
25066
- const [openInternal, setOpenInternal] = React__default.useState(false);
25067
- const isOpenControlled = "open" in rest;
25068
- const openProp = isOpenControlled ? rest.open : openInternal;
25069
- const handleOpen = (event) => {
25070
- var _a;
25071
- setOpenInternal(true);
25072
- (_a = rest.onOpen) == null ? void 0 : _a.call(rest, event);
25073
- };
25074
- const handleClose = (event) => {
25075
- var _a;
25076
- setOpenInternal(false);
25077
- (_a = rest.onClose) == null ? void 0 : _a.call(rest, event);
25078
- };
25079
- const closeMenu = React__default.useCallback(() => setOpenInternal(false), []);
25080
- const consumerSx = Array.isArray(sx) ? sx : sx ? [sx] : [];
25081
- const composedSx = [{
25082
- minWidth: 88,
25083
- ...width && {
25084
- width
25085
- },
25086
- ...fullWidth && {
25087
- width: "100%"
25088
- }
25089
- }, ...consumerSx];
25090
- return /* @__PURE__ */ jsxs(FormControl$1, { sx: composedSx, size: "small", error: error2, required, fullWidth, disabled: disabled2, children: [
25091
- label && /* @__PURE__ */ jsx(InputLabel, { id: labelId, required, htmlFor: selectedId, children: label }),
25092
- /* @__PURE__ */ jsxs(Select$2, { ...rest, open: openProp, onOpen: handleOpen, onClose: handleClose, color: "primary", variant: "outlined", labelId, label, id: selectedId, value, onChange: onChange2, inputRef: ref, "aria-describedby": helperText ? helperTextId : void 0, children: [
25093
- options.map((option) => /* @__PURE__ */ jsx(MenuItem$1, { value: option.value, "aria-label": renderOption ? option.label : void 0, disableRipple: true, disabled: option.disabled, children: renderOption ? renderOption(option) : option.label }, option.value)),
25094
- footer && options.length > 0 && /* @__PURE__ */ jsx(Divider$1, { component: "li", role: "separator", sx: {
25095
- my: 0.5
25096
- } }, "__ds-select-footer-divider"),
25097
- footer && /* @__PURE__ */ jsx(
25098
- Box$1,
25099
- {
25100
- component: "li",
25101
- role: "presentation",
25102
- sx: {
25103
- px: 1.5,
25104
- py: 0.5,
25105
- listStyle: "none"
25106
- },
25107
- onClick: (e) => e.stopPropagation(),
25108
- onKeyDown: (e) => {
25109
- if (e.key === "Enter" || e.key === " ") {
25110
- e.stopPropagation();
25111
- }
25112
- },
25113
- children: typeof footer === "function" ? footer({
25114
- closeMenu
25115
- }) : footer
25116
- },
25117
- "__ds-select-footer"
25118
- )
25119
- ] }),
25120
- helperText && /* @__PURE__ */ jsx(FormHelperText$1, { error: error2, id: helperTextId, children: helperText })
25121
- ] });
25122
- });
25123
25403
  const SingleAutocomplete = forwardRef(({
25124
25404
  label,
25125
25405
  value,
@@ -28511,6 +28791,20 @@ const Panel = ({
28511
28791
  }, children: !(context == null ? void 0 : context.get(targetId, "minimised")) && children })
28512
28792
  ] });
28513
28793
  };
28794
+ const Drawer = ({
28795
+ width,
28796
+ PaperProps,
28797
+ ...props
28798
+ }) => {
28799
+ const paperSx = PaperProps == null ? void 0 : PaperProps.sx;
28800
+ const consumerSx = Array.isArray(paperSx) ? paperSx : paperSx ? [paperSx] : [];
28801
+ return /* @__PURE__ */ jsx(MuiDrawer, { PaperProps: width === void 0 ? PaperProps : {
28802
+ ...PaperProps,
28803
+ sx: [{
28804
+ width
28805
+ }, ...consumerSx]
28806
+ }, ...props });
28807
+ };
28514
28808
  const Popper = (props) => /* @__PURE__ */ jsx(MUIPopper, { ...props });
28515
28809
  const Toolbar = ({
28516
28810
  children,
@@ -28530,17 +28824,6 @@ const Toolbar = ({
28530
28824
  const Paper = forwardRef(function Paper2(props, ref) {
28531
28825
  return /* @__PURE__ */ jsx(MUIPaper, { ref, ...props });
28532
28826
  });
28533
- const main$4 = "#2F44CA";
28534
- const DataNavy = {
28535
- light: {
28536
- primary: {
28537
- main: main$4,
28538
- dark: alpha(main$4, 0.7),
28539
- light: alpha(main$4, 0.5),
28540
- contrastText: "#FFFFFF"
28541
- }
28542
- }
28543
- };
28544
28827
  const main$3 = "#F56AAA";
28545
28828
  const mainLight$1 = "#B70071";
28546
28829
  const DocumentPink = {
@@ -28675,9 +28958,8 @@ const Blank = {
28675
28958
  }
28676
28959
  }
28677
28960
  };
28678
- const UIThemeSchema = z.enum(["DataNavy", "DocumentPink", "GraphOrange", "AdminBlue", "GeoGreen", "Blank"]);
28961
+ const UIThemeSchema = z.enum(["DocumentPink", "GraphOrange", "AdminBlue", "GeoGreen", "Blank"]);
28679
28962
  const THEME_COLORS = {
28680
- DataNavy,
28681
28963
  DocumentPink,
28682
28964
  GraphOrange,
28683
28965
  AdminBlue,
@@ -28719,6 +29001,27 @@ const generateAccordionOverrides = (_uiTheme) => ({
28719
29001
  }
28720
29002
  }
28721
29003
  });
29004
+ const generateBadgeOverrides = (_uiTheme) => ({
29005
+ MuiBadge: {
29006
+ styleOverrides: {
29007
+ badge: ({
29008
+ theme
29009
+ }) => ({
29010
+ // Clicks go to what the badge sits on.
29011
+ pointerEvents: "none",
29012
+ "&.MuiBadge-standard": {
29013
+ minWidth: 20,
29014
+ height: 20,
29015
+ padding: "0 5px",
29016
+ borderRadius: 999,
29017
+ fontSize: 11,
29018
+ fontWeight: 700,
29019
+ border: `2px solid ${theme.palette.background.default}`
29020
+ }
29021
+ })
29022
+ }
29023
+ }
29024
+ });
28722
29025
  const generateButtonOverrides = (_uiTheme) => ({
28723
29026
  MuiButton: {
28724
29027
  styleOverrides: {
@@ -28802,6 +29105,17 @@ const generateCardOverrides = (_uiTheme) => ({
28802
29105
  }
28803
29106
  }
28804
29107
  });
29108
+ const generateDrawerOverrides = (_uiTheme) => ({
29109
+ MuiDrawer: {
29110
+ styleOverrides: {
29111
+ paper: ({
29112
+ ownerState
29113
+ }) => ownerState.variant === "temporary" ? {
29114
+ maxWidth: "100vw"
29115
+ } : {}
29116
+ }
29117
+ }
29118
+ });
28805
29119
  const generateTabsOverrides = (_uiTheme) => ({
28806
29120
  MuiTabs: {
28807
29121
  styleOverrides: {
@@ -28980,8 +29294,10 @@ const FONT_FACES_CSS = `
28980
29294
  const generateComponentOverrides = (uiTheme) => ({
28981
29295
  ...AVATAR_OVERRIDES,
28982
29296
  ...generateAccordionOverrides(),
29297
+ ...generateBadgeOverrides(),
28983
29298
  ...generateButtonOverrides(),
28984
29299
  ...generateCardOverrides(),
29300
+ ...generateDrawerOverrides(),
28985
29301
  ...generateTabsOverrides(),
28986
29302
  ...generateToggleButtonOverrides(),
28987
29303
  MuiPaper: {
@@ -30350,7 +30666,7 @@ function useDrawer(args) {
30350
30666
  }
30351
30667
  };
30352
30668
  }
30353
- const Drawer = forwardRef(({
30669
+ const InsetDrawer = forwardRef(({
30354
30670
  initialOpen = true,
30355
30671
  onVisibilityChange,
30356
30672
  children,
@@ -30365,7 +30681,7 @@ const Drawer = forwardRef(({
30365
30681
  });
30366
30682
  return /* @__PURE__ */ jsx(DrawerPresentational, { ...drawerProps, ...rest, children });
30367
30683
  });
30368
- Drawer.displayName = "Drawer";
30684
+ InsetDrawer.displayName = "InsetDrawer";
30369
30685
  const ControlArea$1 = ({
30370
30686
  position,
30371
30687
  children,
@@ -80229,39 +80545,6 @@ const polygonToOLFeature = (polygon) => {
80229
80545
  if (id) feature.setId(id);
80230
80546
  return feature;
80231
80547
  };
80232
- const mapLegacyConfigToLayers = (legacy) => {
80233
- const layers = [];
80234
- if (legacy.vectorStyles) {
80235
- layers.push({
80236
- id: legacy.vectorStyles.label,
80237
- kind: "base-vector-tiles",
80238
- provider: "custom",
80239
- url: legacy.vectorStyles.uri,
80240
- styleUrl: legacy.vectorStyles.uri,
80241
- visible: false,
80242
- previewImage: legacy.vectorStyles.image,
80243
- label: legacy.vectorStyles.label
80244
- });
80245
- }
80246
- if (legacy.tileSets && Array.isArray(legacy.tileSets)) {
80247
- legacy.tileSets.forEach((tileset) => {
80248
- layers.push({
80249
- id: tileset.label,
80250
- kind: "base-raster",
80251
- url: tileset.uri,
80252
- attribution: tileset.attribution,
80253
- visible: false,
80254
- previewImage: tileset.image,
80255
- label: tileset.label
80256
- });
80257
- });
80258
- }
80259
- return layers.map((layer2, idx) => ({
80260
- ...layer2,
80261
- visible: idx === 0
80262
- // set the first layer to be visible
80263
- }));
80264
- };
80265
80548
  const extractMarkerIcons = (markers) => {
80266
80549
  var _a;
80267
80550
  const icons2 = /* @__PURE__ */ new Set();
@@ -80284,7 +80567,7 @@ const BasicMapV2 = React__default.forwardRef((props, ref) => {
80284
80567
  const mapInstance = useRef(null);
80285
80568
  const showLayerSelector = ((_a = props.controls) == null ? void 0 : _a.showLayerSelector) ?? true;
80286
80569
  const effectiveLayers = useMemo(() => {
80287
- const baseLayers = Array.isArray(props.layers) && props.layers.length > 0 ? props.layers : props.mapStyleOptions && Object.keys(props.mapStyleOptions).length > 0 ? mapLegacyConfigToLayers(props.mapStyleOptions) : [];
80570
+ const baseLayers = Array.isArray(props.layers) ? props.layers : [];
80288
80571
  const overlayVectorLayers = [
80289
80572
  // Marker layer
80290
80573
  {
@@ -85674,6 +85957,7 @@ export {
85674
85957
  AuthProvider,
85675
85958
  AuthRedirectUri,
85676
85959
  Autocomplete,
85960
+ Badge,
85677
85961
  BasicMapV2,
85678
85962
  BinIcon,
85679
85963
  Box,
@@ -85687,6 +85971,7 @@ export {
85687
85971
  CardContent,
85688
85972
  CardHeader,
85689
85973
  Checkbox,
85974
+ ChevronLeftIcon,
85690
85975
  ChevronRightIcon,
85691
85976
  Chip,
85692
85977
  ClockIcon,
@@ -85709,6 +85994,7 @@ export {
85709
85994
  DropdownButton,
85710
85995
  ENCODE_SEARCH_PARAMS_MODES_Schema,
85711
85996
  EditableTextField,
85997
+ EntityList,
85712
85998
  ErrorFallback,
85713
85999
  ErrorFallbackText,
85714
86000
  ErrorFallbackWrapper,
@@ -85736,6 +86022,7 @@ export {
85736
86022
  IESType,
85737
86023
  IconButton,
85738
86024
  InfoIcon,
86025
+ InsetDrawer,
85739
86026
  InsetInMap,
85740
86027
  LabeledSwitch,
85741
86028
  LayerSelectorV2,