@bygd/nc-report-ui 0.1.33 → 0.1.35

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.
@@ -7,12 +7,13 @@ import { Chart as Chart$1 } from 'react-google-charts';
7
7
  import numeral from 'numeral';
8
8
  import axios from 'axios';
9
9
  import Typography from '@material-ui/core/Typography';
10
+ import Link from '@material-ui/core/Link';
10
11
  import nunjucks from 'nunjucks';
11
12
  import FormControl$2 from '@material-ui/core/FormControl';
12
13
  import Select$1 from '@material-ui/core/Select';
13
14
  import MenuItem$1 from '@material-ui/core/MenuItem';
14
15
  import { useInView } from 'react-intersection-observer';
15
- import { FormControl, Autocomplete, TextField, CircularProgress as CircularProgress$1, Chip, Checkbox, FormHelperText, Snackbar, Alert, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Box as Box$1, Typography as Typography$1, Tooltip, IconButton, Paper as Paper$1, Tabs, Tab, Badge } from '@mui/material';
16
+ import { FormControl, Autocomplete, TextField, CircularProgress as CircularProgress$1, Chip, Checkbox, FormHelperText, Snackbar, Alert, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Box as Box$2, Typography as Typography$1, Tooltip as Tooltip$1, IconButton as IconButton$1, Paper as Paper$1, Tabs, Tab, Badge } from '@mui/material';
16
17
  import CheckBoxOutlineBlankIcon from '@mui/icons-material/CheckBoxOutlineBlank';
17
18
  import CheckBoxIcon from '@mui/icons-material/CheckBox';
18
19
  import Box from '@mui/material/Box';
@@ -21,7 +22,21 @@ import FormControl$1 from '@mui/material/FormControl';
21
22
  import Select from '@mui/material/Select';
22
23
  import EventEmitter from 'eventemitter3';
23
24
  import Grid from '@material-ui/core/Grid';
25
+ import Box$1 from '@material-ui/core/Box';
26
+ import IconButton from '@material-ui/core/IconButton';
27
+ import Tooltip from '@material-ui/core/Tooltip';
24
28
  import Container from '@material-ui/core/Container';
29
+ import InsertChartOutlinedIcon from '@mui/icons-material/InsertChartOutlined';
30
+ import FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted';
31
+ import TableChartOutlinedIcon from '@mui/icons-material/TableChartOutlined';
32
+ import BarChartIcon from '@mui/icons-material/BarChart';
33
+ import PieChartOutlineIcon from '@mui/icons-material/PieChartOutline';
34
+ import DonutLargeIcon from '@mui/icons-material/DonutLarge';
35
+ import ShowChartIcon from '@mui/icons-material/ShowChart';
36
+ import StackedLineChartIcon from '@mui/icons-material/StackedLineChart';
37
+ import MapOutlinedIcon from '@mui/icons-material/MapOutlined';
38
+ import PinOutlinedIcon from '@mui/icons-material/PinOutlined';
39
+ import QueryStatsIcon from '@mui/icons-material/QueryStats';
25
40
  import { DataGrid, GridAddIcon, GridDeleteIcon } from '@mui/x-data-grid';
26
41
  import AddIcon from '@mui/icons-material/Add';
27
42
  import EditIcon from '@mui/icons-material/Edit';
@@ -100,7 +115,7 @@ function ValuePicker(view, schema, outputFormat = 'array') {
100
115
  const value = row[item.name];
101
116
  const ref = mapped[item.name];
102
117
  let formatted = value;
103
- if (ref.type === 'timestamp') formatted = new Date(value);else if (!ref.format) formatted = value;else if (ref.format && ref.prefix) formatted = {
118
+ if (!ref) formatted = value;else if (ref.type === 'timestamp') formatted = new Date(value);else if (!ref.format) formatted = value;else if (ref.format && ref.prefix) formatted = {
104
119
  v: +value,
105
120
  f: ref.prefix + " " + numeral(value).format(ref.format)
106
121
  };else if (ref.format) formatted = {
@@ -457,23 +472,51 @@ const Api = {
457
472
  const useStyles = makeStyles(theme => ({
458
473
  headerRow: {
459
474
  fontFamily: theme.typography.fontFamily,
460
- fontSize: theme.typography.fontSize
475
+ fontSize: 13
476
+ },
477
+ headerCell: {
478
+ backgroundColor: "#ffffff !important",
479
+ padding: "12px 16px !important",
480
+ borderBottom: "1px solid #e5e7eb !important",
481
+ borderRight: "none !important",
482
+ fontWeight: "600 !important",
483
+ color: "#6b7280 !important",
484
+ textAlign: "left !important",
485
+ whiteSpace: "nowrap"
461
486
  },
462
487
  tableRow: {
463
488
  fontFamily: theme.typography.fontFamily,
464
- fontSize: theme.typography.fontSize
489
+ fontSize: 14,
490
+ backgroundColor: "#ffffff",
491
+ "& a": {
492
+ color: "#468682",
493
+ textDecoration: "underline"
494
+ },
495
+ "& a:hover": {
496
+ color: "#305f5c"
497
+ }
465
498
  },
466
499
  oddTableRow: {
467
500
  fontFamily: theme.typography.fontFamily,
468
- fontSize: theme.typography.fontSize
501
+ fontSize: 14,
502
+ backgroundColor: "#ffffff",
503
+ "& a": {
504
+ color: "#468682",
505
+ textDecoration: "underline"
506
+ },
507
+ "& a:hover": {
508
+ color: "#305f5c"
509
+ }
469
510
  },
470
- headerCell: {
471
- backgroundColor: "white",
472
- padding: "4px !important"
511
+ hoverTableRow: {
512
+ backgroundColor: "#f9fafb !important"
513
+ },
514
+ tableCell: {
515
+ padding: "12px 16px !important",
516
+ borderBottom: "1px solid #f1f2f4 !important",
517
+ borderRight: "none !important",
518
+ color: "#1f2937"
473
519
  }
474
- // tableCell:{
475
- // // padding:"4px !important"
476
- // },
477
520
  }));
478
521
  const dateRangeFormats = {
479
522
  none: "YYYY-MM-dd",
@@ -489,7 +532,8 @@ function GoogleChart({
489
532
  report,
490
533
  schema,
491
534
  dashboard,
492
- query
535
+ query,
536
+ params
493
537
  }) {
494
538
  const [data, setData] = React__default.useState([]);
495
539
  const classes = useStyles();
@@ -514,7 +558,8 @@ function GoogleChart({
514
558
  if (chart?.doc.chart?.type === "Table") {
515
559
  return {
516
560
  ...chart?.doc.chart?.options,
517
- cssClassNames: classes
561
+ cssClassNames: classes,
562
+ allowHtml: true
518
563
  };
519
564
  } else if (chart?.doc.chart?.type === "AreaChart") {
520
565
  const hAxisFromChart = chart?.doc.chart?.options?.hAxis || {};
@@ -550,16 +595,82 @@ function GoogleChart({
550
595
  });
551
596
  source?.length ? setData(result) : setData();
552
597
  }, [chart, source, view, report, schema]);
598
+ const hidden = (view?.columns || []).filter(c => c.hidden).map(c => c.name);
599
+ const visibleIndexes = (view?.columns || []).map((col, i) => hidden.includes(col.name) ? -1 : i).filter(i => i !== -1);
600
+ const getRaw = cell => cell && typeof cell === "object" && "v" in cell ? cell.v : cell;
601
+ const getDisplay = cell => cell && typeof cell === "object" && "f" in cell ? cell.f : cell;
602
+ const escapeHtml = s => String(s ?? "").replace(/[&<>"']/g, c => ({
603
+ "&": "&amp;",
604
+ "<": "&lt;",
605
+ ">": "&gt;",
606
+ '"': "&quot;",
607
+ "'": "&#39;"
608
+ })[c]);
609
+ const paramAliases = {
610
+ client_id: params?.client
611
+ };
612
+ const renderLink = (template, fullRow) => template.replace(/\{\{([\w.]+)\}\}/g, (_, key) => {
613
+ if (key.startsWith("params.")) {
614
+ const k = key.slice("params.".length);
615
+ return encodeURIComponent(params?.[k] ?? "");
616
+ }
617
+ const idx = (view?.columns || []).findIndex(c => c.name === key);
618
+ if (idx >= 0) return encodeURIComponent(getRaw(fullRow[idx]) ?? "");
619
+ if (key in paramAliases) return encodeURIComponent(paramAliases[key] ?? "");
620
+ if (params && key in params) return encodeURIComponent(params[key] ?? "");
621
+ return "";
622
+ });
623
+ const displayData = data?.length ? data.map((row, rowIdx) => {
624
+ if (rowIdx === 0) return visibleIndexes.map(i => row[i]);
625
+ return visibleIndexes.map(i => {
626
+ const col = view.columns[i];
627
+ const cell = row[i];
628
+ if (!col?.link) return cell;
629
+ const url = renderLink(col.link, row);
630
+ const display = escapeHtml(getDisplay(cell));
631
+ return {
632
+ v: getRaw(cell),
633
+ f: `<a href="${url}" target="blank">${display}</a>`
634
+ };
635
+ });
636
+ }) : data;
637
+ const maxHeight = chart?.doc?.chart?.options?.maxHeight;
638
+ const containerStyle = maxHeight ? {
639
+ maxHeight,
640
+ overflow: "auto"
641
+ } : {};
553
642
  return data ? /*#__PURE__*/React__default.createElement("div", {
554
- style: {}
643
+ style: containerStyle
555
644
  }, /*#__PURE__*/React__default.createElement(Chart$1, _extends({
556
645
  width: chart?.doc.size?.width || "100%"
557
646
  //height={dashboard ? (chart?.doc.size?.height || '300px') : '100%'}
558
647
  ,
559
648
  chartType: chart?.doc.chart?.type,
560
- data: data,
649
+ data: displayData,
561
650
  options: getOptions(data)
562
- }, chart?.doc.chart?.props))) : /*#__PURE__*/React__default.createElement("div", null);
651
+ }, chart?.doc.chart?.props, {
652
+ chartEvents: [{
653
+ eventName: "select",
654
+ callback: ({
655
+ chartWrapper
656
+ }) => {
657
+ const selection = chartWrapper.getChart().getSelection();
658
+ if (!selection.length) return;
659
+ const {
660
+ row
661
+ } = selection[0];
662
+ const values = data[row + 1];
663
+ const rowObject = (view?.columns || []).reduce((acc, col, i) => {
664
+ const v = values[i];
665
+ acc[col.name] = v && typeof v === "object" && "v" in v ? v.v : v;
666
+ return acc;
667
+ }, {});
668
+
669
+ //const url = https://dev.netcapital.pro/client/financing-order/applications/bdc1a65c-808a-425a-97d9-587b5f6bc003?clientId=7774bcad-05dc-48cf-a52b-9a8a56168818
670
+ console.log("clicked row:", row, rowObject);
671
+ }
672
+ }]
673
+ }))) : /*#__PURE__*/React__default.createElement("div", null);
563
674
  }
564
675
 
565
676
  function LabelChart({
@@ -567,7 +678,8 @@ function LabelChart({
567
678
  source,
568
679
  view,
569
680
  report,
570
- schema
681
+ schema,
682
+ onNavigate
571
683
  }) {
572
684
  const [data, setData] = React__default.useState([]);
573
685
  const [value, setValue] = React__default.useState();
@@ -592,18 +704,34 @@ function LabelChart({
592
704
  setSubText(subTextRendered);
593
705
  }
594
706
  }, [chart, source, view, report, schema]);
707
+ const nextView = chart?.doc?.chart?.options?.nextView;
708
+ const canNavigate = typeof nextView === "number" && typeof onNavigate === "function";
595
709
  return /*#__PURE__*/React__default.createElement("div", {
596
710
  style: {
597
711
  display: "flex",
598
712
  justifyContent: "center",
599
713
  alignContent: "center",
600
- //alignItems: "center",
714
+ //alignItems: "center",
601
715
  height: "100%",
602
716
  flexDirection: "column"
603
717
  }
718
+ }, /*#__PURE__*/React__default.createElement("div", {
719
+ style: {
720
+ display: "flex",
721
+ alignItems: "center",
722
+ gap: 8
723
+ }
604
724
  }, /*#__PURE__*/React__default.createElement(Typography, {
605
725
  variant: "h6"
606
- }, value?.f || value), /*#__PURE__*/React__default.createElement(Typography, {
726
+ }, value?.f || value), canNavigate && /*#__PURE__*/React__default.createElement(Link, {
727
+ component: "button",
728
+ variant: "h6",
729
+ onClick: () => onNavigate(nextView),
730
+ style: {
731
+ lineHeight: 1,
732
+ fontSize: "2rem"
733
+ }
734
+ }, "\xBB")), /*#__PURE__*/React__default.createElement(Typography, {
607
735
  variant: "caption"
608
736
  }, subText));
609
737
  }
@@ -1081,6 +1209,11 @@ var Chart = ({
1081
1209
  value: props?.filter
1082
1210
  });
1083
1211
  const [currentQuery, setCurrentQuery] = React__default.useState({});
1212
+ useEffect(() => {
1213
+ console.log('CHART', {
1214
+ id
1215
+ });
1216
+ }, [id]);
1084
1217
 
1085
1218
  // sample label
1086
1219
  // if(id!=='financing_applications') return null;
@@ -1160,7 +1293,9 @@ var Chart = ({
1160
1293
  report: report,
1161
1294
  schema: schema,
1162
1295
  dashboard: dashboard,
1163
- query: currentQuery
1296
+ query: currentQuery,
1297
+ params: props.params,
1298
+ onNavigate: props.onNavigate
1164
1299
  }));
1165
1300
  };
1166
1301
  const onViewChanged = React__default.useCallback(event => {
@@ -1288,19 +1423,24 @@ var Chart = ({
1288
1423
  gap: "12px",
1289
1424
  height: "100%"
1290
1425
  }
1291
- }, chart && /*#__PURE__*/React__default.createElement("div", {
1426
+ }, (chart || props?.headerActions) && /*#__PURE__*/React__default.createElement("div", {
1292
1427
  style: {
1293
1428
  display: "flex",
1294
1429
  alignItems: "center",
1295
1430
  lineHeight: 0
1296
1431
  }
1297
- }, /*#__PURE__*/React__default.createElement(Typography, {
1432
+ }, chart && /*#__PURE__*/React__default.createElement(Typography, {
1298
1433
  variant: "subtitle2",
1299
1434
  style: {
1300
1435
  fontWeight: 600,
1301
1436
  color: "#252525"
1302
1437
  }
1303
- }, props?.title || chart.doc.name, " ")), loading ? /*#__PURE__*/React__default.createElement(LinearIndeterminate, {
1438
+ }, props?.title || chart.doc.name, " "), props?.headerActions && /*#__PURE__*/React__default.createElement("div", {
1439
+ style: {
1440
+ marginLeft: "auto",
1441
+ lineHeight: "normal"
1442
+ }
1443
+ }, props.headerActions)), loading ? /*#__PURE__*/React__default.createElement(LinearIndeterminate, {
1304
1444
  style: {
1305
1445
  display: "flex",
1306
1446
  justifyContent: "center",
@@ -1428,6 +1568,87 @@ const useReportingContextOptional = () => {
1428
1568
  return useContext(ReportingContext);
1429
1569
  };
1430
1570
 
1571
+ const VIEW_ICONS = {
1572
+ count: PinOutlinedIcon,
1573
+ list: FormatListBulletedIcon,
1574
+ table: TableChartOutlinedIcon,
1575
+ bar: BarChartIcon,
1576
+ pie: PieChartOutlineIcon,
1577
+ donut: DonutLargeIcon,
1578
+ line: ShowChartIcon,
1579
+ area: StackedLineChartIcon,
1580
+ map: MapOutlinedIcon,
1581
+ stats: QueryStatsIcon
1582
+ };
1583
+ const resolveViewIcon = icon => VIEW_ICONS[icon] || InsertChartOutlinedIcon;
1584
+ function ColumnItem({
1585
+ column,
1586
+ md,
1587
+ api,
1588
+ cache,
1589
+ dashboard,
1590
+ schema,
1591
+ params
1592
+ }) {
1593
+ const views = Array.isArray(column.views) ? column.views : null;
1594
+ const [activeIndex, setActiveIndex] = React__default.useState(0);
1595
+ if (views && views.length > 0) {
1596
+ const safeIndex = Math.min(activeIndex, views.length - 1);
1597
+ const active = views[safeIndex];
1598
+ const toolbar = /*#__PURE__*/React__default.createElement(Box$1, {
1599
+ display: "flex"
1600
+ }, views.map((v, i) => {
1601
+ const Icon = resolveViewIcon(v.icon);
1602
+ const selected = i === safeIndex;
1603
+ return /*#__PURE__*/React__default.createElement(Tooltip, {
1604
+ key: v.id || i,
1605
+ title: v.name || v.id || ""
1606
+ }, /*#__PURE__*/React__default.createElement(IconButton, {
1607
+ size: "small",
1608
+ onClick: () => setActiveIndex(i),
1609
+ "aria-label": v.name || v.id,
1610
+ "aria-pressed": selected,
1611
+ style: {
1612
+ color: selected ? "#468682" : "#9ca3af"
1613
+ }
1614
+ }, /*#__PURE__*/React__default.createElement(Icon, {
1615
+ fontSize: "small"
1616
+ })));
1617
+ }));
1618
+ return /*#__PURE__*/React__default.createElement(Grid, {
1619
+ item: true,
1620
+ xs: 12,
1621
+ md: md
1622
+ }, /*#__PURE__*/React__default.createElement(Chart, {
1623
+ api: api,
1624
+ cache: cache,
1625
+ id: active.id,
1626
+ dashboard: dashboard,
1627
+ schema: schema,
1628
+ title: column.name || active.title,
1629
+ filter: active.filter,
1630
+ params: params,
1631
+ headerActions: toolbar,
1632
+ onNavigate: i => {
1633
+ if (typeof i === "number" && i >= 0 && i < views.length) setActiveIndex(i);
1634
+ }
1635
+ }));
1636
+ }
1637
+ return /*#__PURE__*/React__default.createElement(Grid, {
1638
+ item: true,
1639
+ xs: 12,
1640
+ md: md
1641
+ }, /*#__PURE__*/React__default.createElement(Chart, {
1642
+ api: api,
1643
+ cache: cache,
1644
+ id: column.id,
1645
+ dashboard: dashboard,
1646
+ schema: schema,
1647
+ title: column.title,
1648
+ filter: column.filter,
1649
+ params: params
1650
+ }));
1651
+ }
1431
1652
  function Dashboard({
1432
1653
  id,
1433
1654
  api,
@@ -1476,18 +1697,21 @@ function Dashboard({
1476
1697
  const create_rows_and_columns = async entity => {
1477
1698
  const srcRows = entity?.doc?.rows || [];
1478
1699
  const targetRows = [];
1700
+ const resolveFilter = entity => {
1701
+ if (entity?.override?.filter?.length) {
1702
+ const filter = {};
1703
+ entity.override.filter.forEach(item => {
1704
+ if (item.hasOwnProperty("value")) filter[item.field] = [item.value];
1705
+ // else filter[item.field] = [sourceDataRow[item.field]];
1706
+ });
1707
+ entity.filter = filter;
1708
+ }
1709
+ };
1479
1710
  for (let i = 0; i < srcRows.length; i++) {
1480
1711
  const row = srcRows[i];
1481
1712
  row.columns?.forEach(column => {
1482
- // filter
1483
- if (column.override?.filter?.length) {
1484
- const filter = {};
1485
- column.override.filter.forEach(item => {
1486
- if (item.hasOwnProperty("value")) filter[item.field] = [item.value];
1487
- // else filter[item.field] = [sourceDataRow[item.field]];
1488
- });
1489
- column.filter = filter;
1490
- }
1713
+ resolveFilter(column);
1714
+ column.views?.forEach(resolveFilter);
1491
1715
  });
1492
1716
  targetRows.push(row);
1493
1717
  }
@@ -1551,37 +1775,27 @@ function Dashboard({
1551
1775
  }, /*#__PURE__*/React__default.createElement(Grid, {
1552
1776
  container: true,
1553
1777
  spacing: 3
1554
- }, row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(Grid, {
1778
+ }, row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(ColumnItem, {
1555
1779
  key: i,
1556
- item: true,
1557
- xs: 12,
1558
- md: md
1559
- }, /*#__PURE__*/React__default.createElement(Chart, {
1780
+ column: column,
1781
+ md: md,
1560
1782
  api: finalApi,
1561
1783
  cache: cache.current,
1562
- id: column.id,
1563
1784
  dashboard: dashboard,
1564
1785
  schema: schema,
1565
- title: column.title,
1566
- filter: column.filter,
1567
1786
  params: finalParams
1568
- }))))) :
1787
+ })))) :
1569
1788
  // All other rows behave normally
1570
- row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(Grid, {
1789
+ row.columns.map((column, i) => /*#__PURE__*/React__default.createElement(ColumnItem, {
1571
1790
  key: i,
1572
- item: true,
1573
- xs: 12,
1574
- md: md
1575
- }, /*#__PURE__*/React__default.createElement(Chart, {
1791
+ column: column,
1792
+ md: md,
1576
1793
  api: finalApi,
1577
1794
  cache: cache.current,
1578
- id: column.id,
1579
1795
  dashboard: dashboard,
1580
1796
  schema: schema,
1581
- title: column.title,
1582
- filter: column.filter,
1583
1797
  params: finalParams
1584
- }))));
1798
+ })));
1585
1799
  })))
1586
1800
  );
1587
1801
  }
@@ -1849,45 +2063,45 @@ const ReportDefinitionsList = ({
1849
2063
  disableColumnMenu: true,
1850
2064
  renderCell: params => {
1851
2065
  const isUserOverride = params.row.source === "user-override";
1852
- return /*#__PURE__*/React__default.createElement(Box$1, {
2066
+ return /*#__PURE__*/React__default.createElement(Box$2, {
1853
2067
  sx: {
1854
2068
  display: "flex",
1855
2069
  gap: 1
1856
2070
  }
1857
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
2071
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
1858
2072
  title: "Run"
1859
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2073
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
1860
2074
  size: "small",
1861
2075
  color: "success",
1862
2076
  onClick: e => handleRun(params.row.id, e)
1863
2077
  }, /*#__PURE__*/React__default.createElement(PlayArrowIcon, {
1864
2078
  fontSize: "small"
1865
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
2079
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
1866
2080
  title: "Edit"
1867
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2081
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
1868
2082
  size: "small",
1869
2083
  color: "primary",
1870
2084
  onClick: e => handleEdit(params.row.id, e)
1871
2085
  }, /*#__PURE__*/React__default.createElement(EditIcon, {
1872
2086
  fontSize: "small"
1873
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
2087
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
1874
2088
  title: "Clone"
1875
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2089
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
1876
2090
  size: "small",
1877
2091
  onClick: e => handleClone(params.row.id, e)
1878
2092
  }, /*#__PURE__*/React__default.createElement(ContentCopyIcon, {
1879
2093
  fontSize: "small"
1880
- }))), isUserOverride ? /*#__PURE__*/React__default.createElement(Tooltip, {
2094
+ }))), isUserOverride ? /*#__PURE__*/React__default.createElement(Tooltip$1, {
1881
2095
  title: "Revert to the system report"
1882
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2096
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
1883
2097
  size: "small",
1884
2098
  color: "warning",
1885
2099
  onClick: e => handleDelete(params.row.id, e)
1886
2100
  }, /*#__PURE__*/React__default.createElement(RestoreIcon, {
1887
2101
  fontSize: "small"
1888
- }))) : /*#__PURE__*/React__default.createElement(Tooltip, {
2102
+ }))) : /*#__PURE__*/React__default.createElement(Tooltip$1, {
1889
2103
  title: "Delete"
1890
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2104
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
1891
2105
  size: "small",
1892
2106
  color: "error",
1893
2107
  onClick: e => handleDelete(params.row.id, e)
@@ -1906,7 +2120,7 @@ const ReportDefinitionsList = ({
1906
2120
  onSelectReport(params.row.id);
1907
2121
  };
1908
2122
  if (loading) {
1909
- return /*#__PURE__*/React__default.createElement(Box$1, {
2123
+ return /*#__PURE__*/React__default.createElement(Box$2, {
1910
2124
  display: "flex",
1911
2125
  justifyContent: "center",
1912
2126
  alignItems: "center",
@@ -1914,7 +2128,7 @@ const ReportDefinitionsList = ({
1914
2128
  }, /*#__PURE__*/React__default.createElement(CircularProgress$1, null));
1915
2129
  }
1916
2130
  if (error) {
1917
- return /*#__PURE__*/React__default.createElement(Box$1, {
2131
+ return /*#__PURE__*/React__default.createElement(Box$2, {
1918
2132
  display: "flex",
1919
2133
  flexDirection: "column",
1920
2134
  justifyContent: "center",
@@ -1929,14 +2143,14 @@ const ReportDefinitionsList = ({
1929
2143
  onClick: loadReportDefinitions
1930
2144
  }, "Retry"));
1931
2145
  }
1932
- return /*#__PURE__*/React__default.createElement(Box$1, {
2146
+ return /*#__PURE__*/React__default.createElement(Box$2, {
1933
2147
  sx: {
1934
2148
  p: 3,
1935
2149
  display: "flex",
1936
2150
  flexDirection: "column",
1937
2151
  fontFamily: "system-ui"
1938
2152
  }
1939
- }, /*#__PURE__*/React__default.createElement(Box$1, {
2153
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
1940
2154
  sx: {
1941
2155
  display: "flex",
1942
2156
  justifyContent: "flex-end",
@@ -1956,7 +2170,7 @@ const ReportDefinitionsList = ({
1956
2170
  },
1957
2171
  startIcon: /*#__PURE__*/React__default.createElement(AddIcon, null),
1958
2172
  onClick: onAddNew
1959
- }, "Add New Report")), /*#__PURE__*/React__default.createElement(Box$1, {
2173
+ }, "Add New Report")), /*#__PURE__*/React__default.createElement(Box$2, {
1960
2174
  sx: {
1961
2175
  flex: 1,
1962
2176
  width: "100%",
@@ -2105,7 +2319,7 @@ const ProviderSelection = ({
2105
2319
  disabled: disabled,
2106
2320
  disabledReason: disabledReason
2107
2321
  };
2108
- });
2322
+ }).sort((a, b) => a.value.localeCompare(b.value));
2109
2323
  };
2110
2324
 
2111
2325
  // Handle selection at a specific level
@@ -2198,11 +2412,11 @@ const ProviderSelection = ({
2198
2412
  }
2199
2413
  return dropdowns;
2200
2414
  };
2201
- return /*#__PURE__*/React__default.createElement(Box$1, null, selectionChain.length > 0 && /*#__PURE__*/React__default.createElement(Box$1, {
2415
+ return /*#__PURE__*/React__default.createElement(Box$2, null, selectionChain.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
2202
2416
  sx: {
2203
2417
  marginBottom: 2
2204
2418
  }
2205
- }, /*#__PURE__*/React__default.createElement(Box$1, {
2419
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
2206
2420
  sx: {
2207
2421
  display: "flex",
2208
2422
  alignItems: "center",
@@ -2385,7 +2599,7 @@ const SortableChip$1 = ({
2385
2599
  return /*#__PURE__*/React__default.createElement("div", _extends({
2386
2600
  ref: setNodeRef,
2387
2601
  style: style
2388
- }, attributes), /*#__PURE__*/React__default.createElement(Box$1, {
2602
+ }, attributes), /*#__PURE__*/React__default.createElement(Box$2, {
2389
2603
  ref: containerRef,
2390
2604
  sx: {
2391
2605
  display: "flex",
@@ -2402,7 +2616,7 @@ const SortableChip$1 = ({
2402
2616
  opacity: 1 // show icons on hover
2403
2617
  }
2404
2618
  }
2405
- }, /*#__PURE__*/React__default.createElement(Box$1, _extends({}, listeners, {
2619
+ }, /*#__PURE__*/React__default.createElement(Box$2, _extends({}, listeners, {
2406
2620
  sx: {
2407
2621
  display: "flex",
2408
2622
  alignItems: "center",
@@ -2416,11 +2630,11 @@ const SortableChip$1 = ({
2416
2630
  cursor: "grab",
2417
2631
  color: "rgba(110, 110, 110, 0.62)"
2418
2632
  }
2419
- })), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$1, {
2633
+ })), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$2, {
2420
2634
  sx: {
2421
2635
  minWidth: 0
2422
2636
  }
2423
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
2637
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
2424
2638
  title: fullLabel || displayLabel,
2425
2639
  arrow: true,
2426
2640
  placement: "top"
@@ -2435,7 +2649,7 @@ const SortableChip$1 = ({
2435
2649
  overflow: "hidden",
2436
2650
  textOverflow: "ellipsis"
2437
2651
  }
2438
- }, displayLabel))), /*#__PURE__*/React__default.createElement(Box$1, {
2652
+ }, displayLabel))), /*#__PURE__*/React__default.createElement(Box$2, {
2439
2653
  className: "hover-icons",
2440
2654
  sx: {
2441
2655
  display: "flex",
@@ -2443,30 +2657,30 @@ const SortableChip$1 = ({
2443
2657
  opacity: 0,
2444
2658
  transition: "opacity 0.2s"
2445
2659
  }
2446
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
2660
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
2447
2661
  title: "Edit title",
2448
2662
  arrow: true,
2449
2663
  placement: "top"
2450
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2664
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2451
2665
  size: "small",
2452
2666
  onClick: handleEditClick,
2453
2667
  "aria-label": "edit title"
2454
2668
  }, /*#__PURE__*/React__default.createElement(EditIcon, {
2455
2669
  fontSize: "small"
2456
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
2670
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
2457
2671
  title: sortOrder === null ? "No sort" : sortOrder === "asc" ? "Ascending" : "Descending",
2458
2672
  arrow: true,
2459
2673
  placement: "top"
2460
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2674
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2461
2675
  size: "small",
2462
2676
  onClick: handleSortToggle,
2463
2677
  "aria-label": "toggle sort order",
2464
2678
  color: sortOrder ? "primary" : "default"
2465
- }, getSortIcon())), /*#__PURE__*/React__default.createElement(Tooltip, {
2679
+ }, getSortIcon())), /*#__PURE__*/React__default.createElement(Tooltip$1, {
2466
2680
  title: "Delete",
2467
2681
  arrow: true,
2468
2682
  placement: "top"
2469
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2683
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2470
2684
  size: "small",
2471
2685
  onClick: onDelete,
2472
2686
  "aria-label": "delete",
@@ -2475,11 +2689,11 @@ const SortableChip$1 = ({
2475
2689
  }
2476
2690
  }, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
2477
2691
  fontSize: "small"
2478
- })))), /*#__PURE__*/React__default.createElement(Box$1, {
2692
+ })))), /*#__PURE__*/React__default.createElement(Box$2, {
2479
2693
  sx: {
2480
2694
  flex: 1
2481
2695
  }
2482
- }), /*#__PURE__*/React__default.createElement(Box$1, {
2696
+ }), /*#__PURE__*/React__default.createElement(Box$2, {
2483
2697
  className: "hover-icons",
2484
2698
  sx: {
2485
2699
  display: "flex",
@@ -2487,14 +2701,14 @@ const SortableChip$1 = ({
2487
2701
  opacity: 0,
2488
2702
  transition: "opacity 0.2s"
2489
2703
  }
2490
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2704
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2491
2705
  size: "small",
2492
2706
  onClick: onMoveUp,
2493
2707
  disabled: isFirst,
2494
2708
  "aria-label": "move up"
2495
2709
  }, /*#__PURE__*/React__default.createElement(ArrowUpwardIcon, {
2496
2710
  fontSize: "small"
2497
- })), /*#__PURE__*/React__default.createElement(IconButton, {
2711
+ })), /*#__PURE__*/React__default.createElement(IconButton$1, {
2498
2712
  size: "small",
2499
2713
  onClick: onMoveDown,
2500
2714
  disabled: isLast,
@@ -2511,46 +2725,46 @@ const SortableChip$1 = ({
2511
2725
  minWidth: '200px',
2512
2726
  maxWidth: '400px'
2513
2727
  }
2514
- }), /*#__PURE__*/React__default.createElement(Box$1, {
2728
+ }), /*#__PURE__*/React__default.createElement(Box$2, {
2515
2729
  className: "hover-icons",
2516
2730
  sx: {
2517
2731
  display: "flex",
2518
2732
  gap: 0.5,
2519
2733
  opacity: 1
2520
2734
  }
2521
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
2735
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
2522
2736
  title: "Save",
2523
2737
  arrow: true,
2524
2738
  placement: "top"
2525
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2739
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2526
2740
  size: "small",
2527
2741
  onClick: handleSave,
2528
2742
  color: "primary",
2529
2743
  "aria-label": "save title"
2530
2744
  }, /*#__PURE__*/React__default.createElement(CheckIcon, {
2531
2745
  fontSize: "small"
2532
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
2746
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
2533
2747
  title: "Cancel",
2534
2748
  arrow: true,
2535
2749
  placement: "top"
2536
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2750
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2537
2751
  size: "small",
2538
2752
  onClick: handleCancel,
2539
2753
  "aria-label": "cancel edit"
2540
2754
  }, /*#__PURE__*/React__default.createElement(CloseIcon, {
2541
2755
  fontSize: "small"
2542
- }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
2756
+ }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
2543
2757
  title: "Reset to default",
2544
2758
  arrow: true,
2545
2759
  placement: "top"
2546
- }, /*#__PURE__*/React__default.createElement(IconButton, {
2760
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
2547
2761
  size: "small",
2548
2762
  onClick: handleReset,
2549
2763
  color: "warning",
2550
2764
  "aria-label": "reset title"
2551
2765
  }, /*#__PURE__*/React__default.createElement(RestartAltIcon, {
2552
2766
  fontSize: "small"
2553
- })))), /*#__PURE__*/React__default.createElement(Box$1, {
2767
+ })))), /*#__PURE__*/React__default.createElement(Box$2, {
2554
2768
  sx: {
2555
2769
  flex: 1
2556
2770
  }
@@ -2677,7 +2891,7 @@ const Dimensions = ({
2677
2891
  });
2678
2892
  });
2679
2893
  });
2680
- return items;
2894
+ return items.sort((a, b) => a.value.localeCompare(b.value));
2681
2895
  };
2682
2896
  const handleAddClick = () => {
2683
2897
  setIsAdding(true);
@@ -2805,7 +3019,7 @@ const Dimensions = ({
2805
3019
  }
2806
3020
  return pathParts.join(" → ");
2807
3021
  };
2808
- return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$1, {
3022
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
2809
3023
  sx: {
2810
3024
  display: "flex",
2811
3025
  justifyContent: "flex-start",
@@ -2847,7 +3061,7 @@ const Dimensions = ({
2847
3061
  mb: 1.5,
2848
3062
  color: "rgb(37, 37, 37)"
2849
3063
  }
2850
- }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$1, {
3064
+ }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
2851
3065
  sx: {
2852
3066
  mb: 3
2853
3067
  }
@@ -2865,7 +3079,7 @@ const Dimensions = ({
2865
3079
  mb: 1.5,
2866
3080
  color: "rgb(37, 37, 37)"
2867
3081
  }
2868
- }, "Select Dimension"), /*#__PURE__*/React__default.createElement(Box$1, {
3082
+ }, "Select Dimension"), /*#__PURE__*/React__default.createElement(Box$2, {
2869
3083
  sx: {
2870
3084
  display: "flex",
2871
3085
  alignItems: "center",
@@ -2881,11 +3095,11 @@ const Dimensions = ({
2881
3095
  width: "400px",
2882
3096
  fontFamily: "system-ui"
2883
3097
  }
2884
- }), /*#__PURE__*/React__default.createElement(Tooltip, {
3098
+ }), /*#__PURE__*/React__default.createElement(Tooltip$1, {
2885
3099
  title: "Add all available dimensions",
2886
3100
  arrow: true,
2887
3101
  placement: "top"
2888
- }, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton, {
3102
+ }, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton$1, {
2889
3103
  onClick: handleAddAll,
2890
3104
  disabled: getDimensionItems().filter(item => !item.disabled).length === 0,
2891
3105
  "aria-label": "add all dimensions",
@@ -2901,7 +3115,7 @@ const Dimensions = ({
2901
3115
  opacity: 0.5
2902
3116
  }
2903
3117
  }
2904
- }, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$1, {
3118
+ }, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$2, {
2905
3119
  sx: {
2906
3120
  display: "flex",
2907
3121
  justifyContent: "flex-end",
@@ -2944,7 +3158,7 @@ const Dimensions = ({
2944
3158
  boxShadow: "none"
2945
3159
  }
2946
3160
  }
2947
- }, "Save Dimension"))), savedDimensions.length > 0 && /*#__PURE__*/React__default.createElement(Box$1, {
3161
+ }, "Save Dimension"))), savedDimensions.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
2948
3162
  sx: {
2949
3163
  marginTop: 0
2950
3164
  }
@@ -2969,7 +3183,7 @@ const Dimensions = ({
2969
3183
  }, /*#__PURE__*/React__default.createElement(SortableContext, {
2970
3184
  items: savedDimensions.map((_, index) => index),
2971
3185
  strategy: verticalListSortingStrategy
2972
- }, /*#__PURE__*/React__default.createElement(Box$1, {
3186
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
2973
3187
  sx: {
2974
3188
  display: "flex",
2975
3189
  flexDirection: "column",
@@ -3002,7 +3216,7 @@ const MetricSourceIcon = ({
3002
3216
  fontSize: '15px'
3003
3217
  };
3004
3218
  if (source === 'kpi') {
3005
- return /*#__PURE__*/React__default.createElement(Tooltip, {
3219
+ return /*#__PURE__*/React__default.createElement(Tooltip$1, {
3006
3220
  title: "KPI Metric",
3007
3221
  arrow: true,
3008
3222
  placement: "top"
@@ -3014,7 +3228,7 @@ const MetricSourceIcon = ({
3014
3228
  }));
3015
3229
  }
3016
3230
  if (source === 'dynamic') {
3017
- return /*#__PURE__*/React__default.createElement(Tooltip, {
3231
+ return /*#__PURE__*/React__default.createElement(Tooltip$1, {
3018
3232
  title: "Dynamic Metric",
3019
3233
  arrow: true,
3020
3234
  placement: "top"
@@ -3026,7 +3240,7 @@ const MetricSourceIcon = ({
3026
3240
  }));
3027
3241
  }
3028
3242
  if (source === 'provider') {
3029
- return /*#__PURE__*/React__default.createElement(Tooltip, {
3243
+ return /*#__PURE__*/React__default.createElement(Tooltip$1, {
3030
3244
  title: "Provider Metric",
3031
3245
  arrow: true,
3032
3246
  placement: "top"
@@ -3137,7 +3351,7 @@ const SortableChip = ({
3137
3351
  return /*#__PURE__*/React__default.createElement("div", _extends({
3138
3352
  ref: setNodeRef,
3139
3353
  style: style
3140
- }, attributes), /*#__PURE__*/React__default.createElement(Box$1, {
3354
+ }, attributes), /*#__PURE__*/React__default.createElement(Box$2, {
3141
3355
  ref: containerRef,
3142
3356
  sx: {
3143
3357
  display: "flex",
@@ -3154,7 +3368,7 @@ const SortableChip = ({
3154
3368
  opacity: 1 // show icons on hover
3155
3369
  }
3156
3370
  }
3157
- }, /*#__PURE__*/React__default.createElement(Box$1, _extends({}, listeners, {
3371
+ }, /*#__PURE__*/React__default.createElement(Box$2, _extends({}, listeners, {
3158
3372
  sx: {
3159
3373
  display: "flex",
3160
3374
  alignItems: "center",
@@ -3168,7 +3382,7 @@ const SortableChip = ({
3168
3382
  cursor: "grab",
3169
3383
  color: "rgba(110, 110, 110, 0.62)"
3170
3384
  }
3171
- })), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, source && /*#__PURE__*/React__default.createElement(Box$1, {
3385
+ })), !isEditing ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, source && /*#__PURE__*/React__default.createElement(Box$2, {
3172
3386
  sx: {
3173
3387
  display: 'flex',
3174
3388
  alignItems: 'center',
@@ -3176,11 +3390,11 @@ const SortableChip = ({
3176
3390
  }
3177
3391
  }, /*#__PURE__*/React__default.createElement(MetricSourceIcon, {
3178
3392
  source: source
3179
- })), /*#__PURE__*/React__default.createElement(Box$1, {
3393
+ })), /*#__PURE__*/React__default.createElement(Box$2, {
3180
3394
  sx: {
3181
3395
  minWidth: 0
3182
3396
  }
3183
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
3397
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
3184
3398
  title: fullLabel || displayLabel,
3185
3399
  arrow: true,
3186
3400
  placement: "top"
@@ -3195,7 +3409,7 @@ const SortableChip = ({
3195
3409
  overflow: "hidden",
3196
3410
  textOverflow: "ellipsis"
3197
3411
  }
3198
- }, displayLabel))), /*#__PURE__*/React__default.createElement(Box$1, {
3412
+ }, displayLabel))), /*#__PURE__*/React__default.createElement(Box$2, {
3199
3413
  className: "hover-icons",
3200
3414
  sx: {
3201
3415
  display: "flex",
@@ -3203,21 +3417,21 @@ const SortableChip = ({
3203
3417
  opacity: 0,
3204
3418
  transition: "opacity 0.2s"
3205
3419
  }
3206
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
3420
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
3207
3421
  title: "Edit title",
3208
3422
  arrow: true,
3209
3423
  placement: "top"
3210
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3424
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3211
3425
  size: "small",
3212
3426
  onClick: handleEditClick,
3213
3427
  "aria-label": "edit title"
3214
3428
  }, /*#__PURE__*/React__default.createElement(EditIcon, {
3215
3429
  fontSize: "small"
3216
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
3430
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
3217
3431
  title: "Delete",
3218
3432
  arrow: true,
3219
3433
  placement: "top"
3220
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3434
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3221
3435
  size: "small",
3222
3436
  onClick: onDelete,
3223
3437
  "aria-label": "delete",
@@ -3226,11 +3440,11 @@ const SortableChip = ({
3226
3440
  }
3227
3441
  }, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
3228
3442
  fontSize: "small"
3229
- })))), /*#__PURE__*/React__default.createElement(Box$1, {
3443
+ })))), /*#__PURE__*/React__default.createElement(Box$2, {
3230
3444
  sx: {
3231
3445
  flex: 1
3232
3446
  }
3233
- }), /*#__PURE__*/React__default.createElement(Box$1, {
3447
+ }), /*#__PURE__*/React__default.createElement(Box$2, {
3234
3448
  className: "hover-icons",
3235
3449
  sx: {
3236
3450
  display: "flex",
@@ -3238,14 +3452,14 @@ const SortableChip = ({
3238
3452
  opacity: 0,
3239
3453
  transition: "opacity 0.2s"
3240
3454
  }
3241
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3455
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3242
3456
  size: "small",
3243
3457
  onClick: onMoveUp,
3244
3458
  disabled: isFirst,
3245
3459
  "aria-label": "move up"
3246
3460
  }, /*#__PURE__*/React__default.createElement(ArrowUpwardIcon, {
3247
3461
  fontSize: "small"
3248
- })), /*#__PURE__*/React__default.createElement(IconButton, {
3462
+ })), /*#__PURE__*/React__default.createElement(IconButton$1, {
3249
3463
  size: "small",
3250
3464
  onClick: onMoveDown,
3251
3465
  disabled: isLast,
@@ -3262,46 +3476,46 @@ const SortableChip = ({
3262
3476
  minWidth: '200px',
3263
3477
  maxWidth: '400px'
3264
3478
  }
3265
- }), /*#__PURE__*/React__default.createElement(Box$1, {
3479
+ }), /*#__PURE__*/React__default.createElement(Box$2, {
3266
3480
  className: "hover-icons",
3267
3481
  sx: {
3268
3482
  display: "flex",
3269
3483
  gap: 0.5,
3270
3484
  opacity: 1
3271
3485
  }
3272
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
3486
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
3273
3487
  title: "Save",
3274
3488
  arrow: true,
3275
3489
  placement: "top"
3276
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3490
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3277
3491
  size: "small",
3278
3492
  onClick: handleSave,
3279
3493
  color: "primary",
3280
3494
  "aria-label": "save title"
3281
3495
  }, /*#__PURE__*/React__default.createElement(CheckIcon, {
3282
3496
  fontSize: "small"
3283
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
3497
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
3284
3498
  title: "Cancel",
3285
3499
  arrow: true,
3286
3500
  placement: "top"
3287
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3501
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3288
3502
  size: "small",
3289
3503
  onClick: handleCancel,
3290
3504
  "aria-label": "cancel edit"
3291
3505
  }, /*#__PURE__*/React__default.createElement(CloseIcon, {
3292
3506
  fontSize: "small"
3293
- }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
3507
+ }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
3294
3508
  title: "Reset to default",
3295
3509
  arrow: true,
3296
3510
  placement: "top"
3297
- }, /*#__PURE__*/React__default.createElement(IconButton, {
3511
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
3298
3512
  size: "small",
3299
3513
  onClick: handleReset,
3300
3514
  color: "warning",
3301
3515
  "aria-label": "reset title"
3302
3516
  }, /*#__PURE__*/React__default.createElement(RestartAltIcon, {
3303
3517
  fontSize: "small"
3304
- })))), /*#__PURE__*/React__default.createElement(Box$1, {
3518
+ })))), /*#__PURE__*/React__default.createElement(Box$2, {
3305
3519
  sx: {
3306
3520
  flex: 1
3307
3521
  }
@@ -3414,7 +3628,7 @@ const Metrics = ({
3414
3628
  }) : undefined
3415
3629
  };
3416
3630
  });
3417
- return items;
3631
+ return items.sort((a, b) => a.value.localeCompare(b.value));
3418
3632
  };
3419
3633
  const handleAddClick = () => {
3420
3634
  setIsAdding(true);
@@ -3542,7 +3756,7 @@ const Metrics = ({
3542
3756
  }
3543
3757
  return pathParts.join(' → ');
3544
3758
  };
3545
- return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$1, {
3759
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
3546
3760
  sx: {
3547
3761
  display: "flex",
3548
3762
  justifyContent: "flex-start",
@@ -3584,7 +3798,7 @@ const Metrics = ({
3584
3798
  mb: 1.5,
3585
3799
  color: "rgb(37, 37, 37)"
3586
3800
  }
3587
- }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$1, {
3801
+ }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
3588
3802
  sx: {
3589
3803
  mb: 3
3590
3804
  }
@@ -3602,7 +3816,7 @@ const Metrics = ({
3602
3816
  mb: 1.5,
3603
3817
  color: "rgb(37, 37, 37)"
3604
3818
  }
3605
- }, "Select Metric"), /*#__PURE__*/React__default.createElement(Box$1, {
3819
+ }, "Select Metric"), /*#__PURE__*/React__default.createElement(Box$2, {
3606
3820
  sx: {
3607
3821
  display: 'flex',
3608
3822
  alignItems: 'center',
@@ -3618,11 +3832,11 @@ const Metrics = ({
3618
3832
  width: '400px',
3619
3833
  fontFamily: "system-ui"
3620
3834
  }
3621
- }), /*#__PURE__*/React__default.createElement(Tooltip, {
3835
+ }), /*#__PURE__*/React__default.createElement(Tooltip$1, {
3622
3836
  title: "Add all available metrics",
3623
3837
  arrow: true,
3624
3838
  placement: "top"
3625
- }, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton, {
3839
+ }, /*#__PURE__*/React__default.createElement("span", null, /*#__PURE__*/React__default.createElement(IconButton$1, {
3626
3840
  onClick: handleAddAll,
3627
3841
  disabled: getMetricItems().filter(item => !item.disabled).length === 0,
3628
3842
  "aria-label": "add all metrics",
@@ -3638,7 +3852,7 @@ const Metrics = ({
3638
3852
  opacity: 0.5
3639
3853
  }
3640
3854
  }
3641
- }, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$1, {
3855
+ }, /*#__PURE__*/React__default.createElement(PlaylistAddIcon, null))))), /*#__PURE__*/React__default.createElement(Box$2, {
3642
3856
  sx: {
3643
3857
  display: "flex",
3644
3858
  justifyContent: "flex-end",
@@ -3681,7 +3895,7 @@ const Metrics = ({
3681
3895
  boxShadow: "none"
3682
3896
  }
3683
3897
  }
3684
- }, "Save Metric"))), savedMetrics.length > 0 && /*#__PURE__*/React__default.createElement(Box$1, {
3898
+ }, "Save Metric"))), savedMetrics.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
3685
3899
  sx: {
3686
3900
  marginTop: 0
3687
3901
  }
@@ -3700,7 +3914,7 @@ const Metrics = ({
3700
3914
  }, /*#__PURE__*/React__default.createElement(SortableContext, {
3701
3915
  items: savedMetrics.map((_, index) => index),
3702
3916
  strategy: verticalListSortingStrategy
3703
- }, /*#__PURE__*/React__default.createElement(Box$1, {
3917
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
3704
3918
  sx: {
3705
3919
  display: 'flex',
3706
3920
  flexDirection: 'column',
@@ -3810,7 +4024,7 @@ const Filters = ({
3810
4024
  }
3811
4025
  });
3812
4026
  });
3813
- return items;
4027
+ return items.sort((a, b) => a.value.localeCompare(b.value));
3814
4028
  };
3815
4029
  const handleAddClick = () => {
3816
4030
  setIsAdding(true);
@@ -4321,7 +4535,7 @@ const Filters = ({
4321
4535
 
4322
4536
  // Convert savedFilters object to array for display
4323
4537
  const filterEntries = Object.entries(savedFilters);
4324
- return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$1, {
4538
+ return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement(Box$2, {
4325
4539
  sx: {
4326
4540
  display: "flex",
4327
4541
  justifyContent: "flex-start",
@@ -4384,7 +4598,7 @@ const Filters = ({
4384
4598
  mb: 1.5,
4385
4599
  color: "rgb(37, 37, 37)"
4386
4600
  }
4387
- }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$1, {
4601
+ }, "Select Provider Path"), /*#__PURE__*/React__default.createElement(Box$2, {
4388
4602
  sx: {
4389
4603
  mb: 3
4390
4604
  }
@@ -4402,7 +4616,7 @@ const Filters = ({
4402
4616
  mb: 1.5,
4403
4617
  color: "rgb(37, 37, 37)"
4404
4618
  }
4405
- }, "Select Dimension for Filter"), /*#__PURE__*/React__default.createElement(Box$1, {
4619
+ }, "Select Dimension for Filter"), /*#__PURE__*/React__default.createElement(Box$2, {
4406
4620
  sx: {
4407
4621
  mb: 3
4408
4622
  }
@@ -4429,7 +4643,7 @@ const Filters = ({
4429
4643
  }
4430
4644
  }, isDate ? 'Select Date Range' : 'Select Filter Values'), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
4431
4645
  dateAdapter: AdapterDayjs
4432
- }, /*#__PURE__*/React__default.createElement(Box$1, {
4646
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
4433
4647
  sx: {
4434
4648
  display: 'flex',
4435
4649
  gap: 2,
@@ -4461,7 +4675,7 @@ const Filters = ({
4461
4675
  clearable: true
4462
4676
  }
4463
4677
  }
4464
- }))) : /*#__PURE__*/React__default.createElement(Box$1, {
4678
+ }))) : /*#__PURE__*/React__default.createElement(Box$2, {
4465
4679
  sx: {
4466
4680
  width: '400px'
4467
4681
  }
@@ -4478,7 +4692,7 @@ const Filters = ({
4478
4692
  helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
4479
4693
  debounceMs: 1000
4480
4694
  })));
4481
- })(), /*#__PURE__*/React__default.createElement(Box$1, {
4695
+ })(), /*#__PURE__*/React__default.createElement(Box$2, {
4482
4696
  sx: {
4483
4697
  display: "flex",
4484
4698
  justifyContent: "flex-end",
@@ -4546,7 +4760,7 @@ const Filters = ({
4546
4760
  mb: 1.5,
4547
4761
  color: "rgb(37, 37, 37)"
4548
4762
  }
4549
- }, "Select Dimension from Report"), /*#__PURE__*/React__default.createElement(Box$1, {
4763
+ }, "Select Dimension from Report"), /*#__PURE__*/React__default.createElement(Box$2, {
4550
4764
  sx: {
4551
4765
  mb: 3
4552
4766
  }
@@ -4554,7 +4768,7 @@ const Filters = ({
4554
4768
  items: existingDimensions.map(dim => ({
4555
4769
  key: dim.fullPath,
4556
4770
  value: dimensionTitleOverrides[dim.fullPath] || dim.dimensionTitle
4557
- })),
4771
+ })).sort((a, b) => a.value.localeCompare(b.value)),
4558
4772
  value: selectedExistingDimension,
4559
4773
  label: "Choose Dimension",
4560
4774
  onChange: handleExistingDimensionChange,
@@ -4575,7 +4789,7 @@ const Filters = ({
4575
4789
  }
4576
4790
  }, isDate ? 'Select Date Range' : 'Select Filter Values'), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
4577
4791
  dateAdapter: AdapterDayjs
4578
- }, /*#__PURE__*/React__default.createElement(Box$1, {
4792
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
4579
4793
  sx: {
4580
4794
  display: 'flex',
4581
4795
  gap: 2,
@@ -4607,7 +4821,7 @@ const Filters = ({
4607
4821
  clearable: true
4608
4822
  }
4609
4823
  }
4610
- }))) : /*#__PURE__*/React__default.createElement(Box$1, {
4824
+ }))) : /*#__PURE__*/React__default.createElement(Box$2, {
4611
4825
  sx: {
4612
4826
  width: '400px'
4613
4827
  }
@@ -4624,7 +4838,7 @@ const Filters = ({
4624
4838
  helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
4625
4839
  debounceMs: 1000
4626
4840
  })));
4627
- })(), /*#__PURE__*/React__default.createElement(Box$1, {
4841
+ })(), /*#__PURE__*/React__default.createElement(Box$2, {
4628
4842
  sx: {
4629
4843
  display: "flex",
4630
4844
  justifyContent: "flex-end",
@@ -4673,7 +4887,7 @@ const Filters = ({
4673
4887
  boxShadow: "none"
4674
4888
  }
4675
4889
  }
4676
- }, "Save Filter"))), filterEntries.length > 0 && /*#__PURE__*/React__default.createElement(Box$1, {
4890
+ }, "Save Filter"))), filterEntries.length > 0 && /*#__PURE__*/React__default.createElement(Box$2, {
4677
4891
  sx: {
4678
4892
  marginTop: 0
4679
4893
  }
@@ -4685,7 +4899,7 @@ const Filters = ({
4685
4899
  marginBottom: 1,
4686
4900
  color: "rgb(37, 37, 37)"
4687
4901
  }
4688
- }, "Saved Filters"), /*#__PURE__*/React__default.createElement(Box$1, {
4902
+ }, "Saved Filters"), /*#__PURE__*/React__default.createElement(Box$2, {
4689
4903
  sx: {
4690
4904
  display: 'flex',
4691
4905
  flexDirection: 'column',
@@ -4718,9 +4932,9 @@ const Filters = ({
4718
4932
  // Use filter title override if exists, otherwise use dimension title override, otherwise use default dimension title
4719
4933
  const displayLabel = titleOverrides[fullPath] || dimensionTitleOverrides[fullPath] || filter.dimensionTitle;
4720
4934
  const hasCustomTitle = !!titleOverrides[fullPath];
4721
- return /*#__PURE__*/React__default.createElement(Box$1, {
4935
+ return /*#__PURE__*/React__default.createElement(Box$2, {
4722
4936
  key: fullPath
4723
- }, /*#__PURE__*/React__default.createElement(Box$1, {
4937
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
4724
4938
  sx: {
4725
4939
  display: "flex",
4726
4940
  alignItems: "center",
@@ -4736,7 +4950,7 @@ const Filters = ({
4736
4950
  opacity: 1
4737
4951
  }
4738
4952
  }
4739
- }, !isEditingTitle ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$1, {
4953
+ }, !isEditingTitle ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(Box$2, {
4740
4954
  sx: {
4741
4955
  display: 'flex',
4742
4956
  alignItems: 'center',
@@ -4752,7 +4966,7 @@ const Filters = ({
4752
4966
  color: "#1a1a1a",
4753
4967
  fontSize: "14px"
4754
4968
  }
4755
- }, displayLabel), /*#__PURE__*/React__default.createElement(Box$1, {
4969
+ }, displayLabel), /*#__PURE__*/React__default.createElement(Box$2, {
4756
4970
  className: "hover-icons",
4757
4971
  sx: {
4758
4972
  display: "flex",
@@ -4760,28 +4974,28 @@ const Filters = ({
4760
4974
  opacity: 0,
4761
4975
  transition: "opacity 0.2s"
4762
4976
  }
4763
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
4977
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
4764
4978
  title: "Rename filter",
4765
4979
  arrow: true
4766
- }, /*#__PURE__*/React__default.createElement(IconButton, {
4980
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4767
4981
  size: "small",
4768
4982
  onClick: () => handleStartEditTitle(fullPath, dimensionTitleOverrides[fullPath] || filter.dimensionTitle),
4769
4983
  disabled: isEditing
4770
4984
  }, /*#__PURE__*/React__default.createElement(EditIcon, {
4771
4985
  fontSize: "small"
4772
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
4986
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
4773
4987
  title: "Edit filter values",
4774
4988
  arrow: true
4775
- }, /*#__PURE__*/React__default.createElement(IconButton, {
4989
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4776
4990
  size: "small",
4777
4991
  onClick: () => handleEditFilter(fullPath, filter),
4778
4992
  disabled: isEditing
4779
4993
  }, /*#__PURE__*/React__default.createElement(FilterAltIcon, {
4780
4994
  fontSize: "small"
4781
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
4995
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
4782
4996
  title: "Remove filter",
4783
4997
  arrow: true
4784
- }, /*#__PURE__*/React__default.createElement(IconButton, {
4998
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4785
4999
  size: "small",
4786
5000
  onClick: () => onRemoveFilter(fullPath),
4787
5001
  sx: {
@@ -4789,11 +5003,11 @@ const Filters = ({
4789
5003
  }
4790
5004
  }, /*#__PURE__*/React__default.createElement(GridDeleteIcon, {
4791
5005
  fontSize: "small"
4792
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
5006
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
4793
5007
  title: /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, "Path:"), " ", formatProviderPath(filter), " \u2192 ", dimensionTitleOverrides[fullPath] || filter.dimensionTitle), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, "Full Path:"), " ", fullPath), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("strong", null, isDate ? 'Date Range' : `Values (${valueCount})`, ":"), " ", valuesList)),
4794
5008
  arrow: true,
4795
5009
  placement: "right"
4796
- }, /*#__PURE__*/React__default.createElement(IconButton, {
5010
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4797
5011
  size: "small",
4798
5012
  disabled: isEditing
4799
5013
  }, /*#__PURE__*/React__default.createElement(InfoOutlinedIcon, {
@@ -4811,32 +5025,32 @@ const Filters = ({
4811
5025
  sx: {
4812
5026
  flex: 1
4813
5027
  }
4814
- }), /*#__PURE__*/React__default.createElement(Box$1, {
5028
+ }), /*#__PURE__*/React__default.createElement(Box$2, {
4815
5029
  sx: {
4816
5030
  display: "flex",
4817
5031
  gap: 0.5
4818
5032
  }
4819
- }, /*#__PURE__*/React__default.createElement(Tooltip, {
5033
+ }, /*#__PURE__*/React__default.createElement(Tooltip$1, {
4820
5034
  title: "Save",
4821
5035
  arrow: true
4822
- }, /*#__PURE__*/React__default.createElement(IconButton, {
5036
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4823
5037
  size: "small",
4824
5038
  onClick: () => handleSaveTitle(fullPath),
4825
5039
  color: "primary"
4826
5040
  }, /*#__PURE__*/React__default.createElement(CheckIcon, {
4827
5041
  fontSize: "small"
4828
- }))), /*#__PURE__*/React__default.createElement(Tooltip, {
5042
+ }))), /*#__PURE__*/React__default.createElement(Tooltip$1, {
4829
5043
  title: "Cancel",
4830
5044
  arrow: true
4831
- }, /*#__PURE__*/React__default.createElement(IconButton, {
5045
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4832
5046
  size: "small",
4833
5047
  onClick: handleCancelEditTitle
4834
5048
  }, /*#__PURE__*/React__default.createElement(CloseIcon, {
4835
5049
  fontSize: "small"
4836
- }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip, {
5050
+ }))), hasCustomTitle && /*#__PURE__*/React__default.createElement(Tooltip$1, {
4837
5051
  title: "Reset to default",
4838
5052
  arrow: true
4839
- }, /*#__PURE__*/React__default.createElement(IconButton, {
5053
+ }, /*#__PURE__*/React__default.createElement(IconButton$1, {
4840
5054
  size: "small",
4841
5055
  onClick: () => handleResetTitle(fullPath),
4842
5056
  color: "warning"
@@ -4860,7 +5074,7 @@ const Filters = ({
4860
5074
  }
4861
5075
  }, "Edit ", isDate ? 'Date Range' : 'Values', " for: ", dimensionTitleOverrides[fullPath] || filter.dimensionTitle), isDate ? /*#__PURE__*/React__default.createElement(LocalizationProvider, {
4862
5076
  dateAdapter: AdapterDayjs
4863
- }, /*#__PURE__*/React__default.createElement(Box$1, {
5077
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
4864
5078
  sx: {
4865
5079
  display: 'flex',
4866
5080
  gap: 2,
@@ -4893,7 +5107,7 @@ const Filters = ({
4893
5107
  clearable: true
4894
5108
  }
4895
5109
  }
4896
- }))) : /*#__PURE__*/React__default.createElement(Box$1, {
5110
+ }))) : /*#__PURE__*/React__default.createElement(Box$2, {
4897
5111
  sx: {
4898
5112
  width: '400px',
4899
5113
  marginBottom: 2
@@ -4910,7 +5124,7 @@ const Filters = ({
4910
5124
  loading: loadingFilterValues,
4911
5125
  helperText: selectedFilterValues.length > 0 ? `${selectedFilterValues.length} value(s) selected` : 'Select at least one value',
4912
5126
  debounceMs: 1000
4913
- })), /*#__PURE__*/React__default.createElement(Box$1, {
5127
+ })), /*#__PURE__*/React__default.createElement(Box$2, {
4914
5128
  sx: {
4915
5129
  display: 'flex',
4916
5130
  gap: 1,
@@ -5047,7 +5261,7 @@ const ReportDataGrid = ({
5047
5261
  flex: 1,
5048
5262
  minWidth: 150,
5049
5263
  type: metricDef?.type === 'integer' || metricDef?.type === 'currency' ? 'number' : 'string',
5050
- renderHeader: () => /*#__PURE__*/React__default.createElement(Box$1, {
5264
+ renderHeader: () => /*#__PURE__*/React__default.createElement(Box$2, {
5051
5265
  sx: {
5052
5266
  display: 'flex',
5053
5267
  alignItems: 'center',
@@ -5102,7 +5316,7 @@ const ReportDataGrid = ({
5102
5316
  }
5103
5317
  };
5104
5318
  if (loading) {
5105
- return /*#__PURE__*/React__default.createElement(Box$1, {
5319
+ return /*#__PURE__*/React__default.createElement(Box$2, {
5106
5320
  display: "flex",
5107
5321
  justifyContent: "center",
5108
5322
  alignItems: "center",
@@ -5110,7 +5324,7 @@ const ReportDataGrid = ({
5110
5324
  }, /*#__PURE__*/React__default.createElement(CircularProgress$1, null));
5111
5325
  }
5112
5326
  if (!reportData || reportData.length === 0) {
5113
- return /*#__PURE__*/React__default.createElement(Box$1, {
5327
+ return /*#__PURE__*/React__default.createElement(Box$2, {
5114
5328
  display: "flex",
5115
5329
  justifyContent: "center",
5116
5330
  alignItems: "center",
@@ -5120,7 +5334,7 @@ const ReportDataGrid = ({
5120
5334
  color: "textSecondary"
5121
5335
  }, "No data available. Run a report to see results."));
5122
5336
  }
5123
- return /*#__PURE__*/React__default.createElement(Box$1, {
5337
+ return /*#__PURE__*/React__default.createElement(Box$2, {
5124
5338
  sx: {
5125
5339
  height: 600,
5126
5340
  width: '100%'
@@ -5158,7 +5372,7 @@ function TabPanel({
5158
5372
  hidden: value !== index,
5159
5373
  id: `report-tabpanel-${index}`,
5160
5374
  "aria-labelledby": `report-tab-${index}`
5161
- }, value === index && /*#__PURE__*/React__default.createElement(Box$1, {
5375
+ }, value === index && /*#__PURE__*/React__default.createElement(Box$2, {
5162
5376
  sx: {
5163
5377
  py: 3
5164
5378
  }
@@ -6015,12 +6229,12 @@ const ReportBuilder = ({
6015
6229
  }
6016
6230
  };
6017
6231
  const canSaveReport = selectedProvider && reportTitle.trim() && (report.dimensions.length > 0 || report.metrics.length > 0);
6018
- return /*#__PURE__*/React__default.createElement(Box$1, {
6232
+ return /*#__PURE__*/React__default.createElement(Box$2, {
6019
6233
  sx: {
6020
6234
  p: 3,
6021
6235
  fontFamily: "system-ui"
6022
6236
  }
6023
- }, /*#__PURE__*/React__default.createElement(Box$1, {
6237
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
6024
6238
  sx: {
6025
6239
  display: "flex",
6026
6240
  justifyContent: "space-between",
@@ -6033,7 +6247,7 @@ const ReportBuilder = ({
6033
6247
  variant: "outlined",
6034
6248
  startIcon: /*#__PURE__*/React__default.createElement(ArrowBackIcon, null),
6035
6249
  onClick: onBackToList
6036
- }, "Back to List")), /*#__PURE__*/React__default.createElement(Box$1, {
6250
+ }, "Back to List")), /*#__PURE__*/React__default.createElement(Box$2, {
6037
6251
  sx: {
6038
6252
  mt: 2,
6039
6253
  p: 3,
@@ -6046,7 +6260,7 @@ const ReportBuilder = ({
6046
6260
  gap: 3,
6047
6261
  boxShadow: "0px 2px 4px rgba(0,0,0,0.02)"
6048
6262
  }
6049
- }, /*#__PURE__*/React__default.createElement(Box$1, {
6263
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
6050
6264
  sx: {
6051
6265
  display: "flex",
6052
6266
  gap: 4,
@@ -6089,7 +6303,7 @@ const ReportBuilder = ({
6089
6303
  fontFamily: "system-ui"
6090
6304
  },
6091
6305
  disabled: !!reportDefinitionId
6092
- }))), /*#__PURE__*/React__default.createElement(Box$1, {
6306
+ }))), /*#__PURE__*/React__default.createElement(Box$2, {
6093
6307
  sx: {
6094
6308
  display: "flex",
6095
6309
  gap: 2,
@@ -6157,7 +6371,7 @@ const ReportBuilder = ({
6157
6371
  backgroundColor: "rgba(46, 125, 50, 0.04)"
6158
6372
  }
6159
6373
  }
6160
- }, saving ? "Saving..." : reportDefinitionId ? "Update Report" : "Save Report"))), selectedProvider && /*#__PURE__*/React__default.createElement(Box$1, {
6374
+ }, saving ? "Saving..." : reportDefinitionId ? "Update Report" : "Save Report"))), selectedProvider && /*#__PURE__*/React__default.createElement(Box$2, {
6161
6375
  sx: {
6162
6376
  mt: 2,
6163
6377
  fontFamily: "system-ui",
@@ -6166,7 +6380,7 @@ const ReportBuilder = ({
6166
6380
  py: 2,
6167
6381
  borderRadius: "8px"
6168
6382
  }
6169
- }, /*#__PURE__*/React__default.createElement(Box$1, {
6383
+ }, /*#__PURE__*/React__default.createElement(Box$2, {
6170
6384
  sx: {
6171
6385
  borderBottom: 1,
6172
6386
  borderColor: "rgba(70, 134, 127, 0.27)"