wcz-test 4.6.12 → 4.8.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/index.js CHANGED
@@ -1038,21 +1038,11 @@ var TypographyWithIcon = ({ startIcon, endIcon, children, sx, gutterBottom, ...p
1038
1038
  ] });
1039
1039
  };
1040
1040
 
1041
- // src/components/core/PageHeader.tsx
1042
- import { Box, Stack as Stack2, Typography as Typography2 } from "@mui/material";
1043
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
1044
- var PageHeader = ({ title, action, sx }) => {
1045
- return /* @__PURE__ */ jsxs2(Stack2, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { py: 2, ...sx }, children: [
1046
- /* @__PURE__ */ jsx2(Typography2, { variant: "h4", fontWeight: 600, children: title }),
1047
- action && /* @__PURE__ */ jsx2(Box, { children: action })
1048
- ] });
1049
- };
1050
-
1051
- // src/components/core/TableContainer.tsx
1052
- import { Box as Box2 } from "@mui/material";
1041
+ // src/components/core/Fullscreen.tsx
1042
+ import { Box } from "@mui/material";
1053
1043
  import { useEffect, useRef, useState } from "react";
1054
- import { jsx as jsx3 } from "react/jsx-runtime";
1055
- var TableContainer = ({ children, sx, ...props }) => {
1044
+ import { jsx as jsx2 } from "react/jsx-runtime";
1045
+ var Fullscreen = ({ children, sx, ...props }) => {
1056
1046
  const reference = useRef(null);
1057
1047
  const [height, setHeight] = useState();
1058
1048
  useEffect(() => {
@@ -1075,8 +1065,8 @@ var TableContainer = ({ children, sx, ...props }) => {
1075
1065
  ro.disconnect();
1076
1066
  };
1077
1067
  }, []);
1078
- return /* @__PURE__ */ jsx3(
1079
- Box2,
1068
+ return /* @__PURE__ */ jsx2(
1069
+ Box,
1080
1070
  {
1081
1071
  ref: reference,
1082
1072
  sx: {
@@ -1084,43 +1074,26 @@ var TableContainer = ({ children, sx, ...props }) => {
1084
1074
  flexDirection: "column",
1085
1075
  minHeight: 0,
1086
1076
  width: "100%",
1077
+ overflow: "auto",
1087
1078
  ...sx
1088
1079
  },
1089
1080
  height,
1090
1081
  ...props,
1091
- children: /* @__PURE__ */ jsx3(Box2, { sx: (theme) => ({
1082
+ children: /* @__PURE__ */ jsx2(Box, { sx: {
1092
1083
  flex: 1,
1093
1084
  minHeight: 0,
1094
- height: "100%",
1095
- "& .MuiDataGrid-cell--editing": {
1096
- "& .MuiInputBase-root": {
1097
- height: "100%"
1098
- }
1099
- },
1100
- "& .MuiDataGrid-columnHeaderTitle": {
1101
- fontWeight: 600
1102
- },
1103
- "& .Mui-error": {
1104
- backgroundColor: theme.palette.error.main,
1105
- color: theme.palette.error.contrastText
1106
- },
1107
- "& .MuiDataGrid-booleanCell[data-value='true']": {
1108
- color: `${theme.palette.success.main} !important`
1109
- },
1110
- "& .MuiDataGrid-booleanCell[data-value='false']": {
1111
- color: `${theme.palette.error.main} !important`
1112
- }
1113
- }), children })
1085
+ height: "100%"
1086
+ }, children })
1114
1087
  }
1115
1088
  );
1116
1089
  };
1117
1090
 
1118
1091
  // src/components/file/Dropzone.tsx
1119
1092
  import CloudUpload from "@mui/icons-material/CloudUpload";
1120
- import { Paper, Typography as Typography3, useTheme } from "@mui/material";
1093
+ import { Paper, Typography as Typography2, useTheme } from "@mui/material";
1121
1094
  import { useDropzone } from "react-dropzone";
1122
1095
  import { useTranslation } from "react-i18next";
1123
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1096
+ import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
1124
1097
  var baseStyle = {
1125
1098
  flex: 1,
1126
1099
  display: "flex",
@@ -1144,10 +1117,10 @@ var Dropzone = ({ sx, ...props }) => {
1144
1117
  ...isDragAccept ? { borderColor: theme.palette.success.main } : {},
1145
1118
  ...isDragReject ? { borderColor: theme.palette.error.main } : {}
1146
1119
  };
1147
- return /* @__PURE__ */ jsxs3(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
1148
- /* @__PURE__ */ jsx4("input", { ...getInputProps(), style: { display: "none" } }),
1149
- /* @__PURE__ */ jsx4(CloudUpload, {}),
1150
- /* @__PURE__ */ jsx4(Typography3, { children: t2("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
1120
+ return /* @__PURE__ */ jsxs2(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
1121
+ /* @__PURE__ */ jsx3("input", { ...getInputProps(), style: { display: "none" } }),
1122
+ /* @__PURE__ */ jsx3(CloudUpload, {}),
1123
+ /* @__PURE__ */ jsx3(Typography2, { children: t2("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
1151
1124
  ] });
1152
1125
  };
1153
1126
 
@@ -1156,7 +1129,7 @@ import { useState as useState5 } from "react";
1156
1129
 
1157
1130
  // src/components/file/fileViewer/FileViewerGrid.tsx
1158
1131
  import MoreVert from "@mui/icons-material/MoreVert";
1159
- import { Box as Box3, IconButton, ImageListItem, ImageListItemBar, Stack as Stack4, Tooltip } from "@mui/material";
1132
+ import { Box as Box2, IconButton, ImageListItem, ImageListItemBar, Stack as Stack3, Tooltip } from "@mui/material";
1160
1133
  import { grey } from "@mui/material/colors";
1161
1134
  import { Fragment, useEffect as useEffect2, useState as useState3 } from "react";
1162
1135
 
@@ -1187,23 +1160,23 @@ import { createContext as createContext2 } from "react";
1187
1160
  var DialogsContext = createContext2({});
1188
1161
 
1189
1162
  // src/hooks/DialogsHooks.tsx
1190
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
1163
+ import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
1191
1164
  function AlertDialog({ open, payload, onClose }) {
1192
1165
  const { t: t2 } = useTranslation2();
1193
- return /* @__PURE__ */ jsxs4(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(), disableRestoreFocus: true, children: [
1194
- /* @__PURE__ */ jsx5(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Alert") }),
1195
- /* @__PURE__ */ jsx5(DialogContent, { children: payload.message }),
1196
- /* @__PURE__ */ jsx5(DialogActions, { children: /* @__PURE__ */ jsx5(Button, { onClick: () => onClose(), autoFocus: true, children: t2("Layout.Dialog.Confirm") }) })
1166
+ return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(), disableRestoreFocus: true, children: [
1167
+ /* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Alert") }),
1168
+ /* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
1169
+ /* @__PURE__ */ jsx4(DialogActions, { children: /* @__PURE__ */ jsx4(Button, { onClick: () => onClose(), autoFocus: true, children: t2("Layout.Dialog.Confirm") }) })
1197
1170
  ] });
1198
1171
  }
1199
1172
  function ConfirmDialog({ open, payload, onClose }) {
1200
1173
  const { t: t2 } = useTranslation2();
1201
- return /* @__PURE__ */ jsxs4(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(false), disableRestoreFocus: true, children: [
1202
- /* @__PURE__ */ jsx5(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Confirm") }),
1203
- /* @__PURE__ */ jsx5(DialogContent, { children: payload.message }),
1204
- /* @__PURE__ */ jsxs4(DialogActions, { children: [
1205
- /* @__PURE__ */ jsx5(Button, { onClick: () => onClose(false), children: payload.cancelText ?? t2("Layout.Dialog.Cancel") }),
1206
- /* @__PURE__ */ jsx5(Button, { onClick: () => onClose(true), autoFocus: true, children: t2("Layout.Dialog.Confirm") })
1174
+ return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(false), disableRestoreFocus: true, children: [
1175
+ /* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Confirm") }),
1176
+ /* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
1177
+ /* @__PURE__ */ jsxs3(DialogActions, { children: [
1178
+ /* @__PURE__ */ jsx4(Button, { onClick: () => onClose(false), children: payload.cancelText ?? t2("Layout.Dialog.Cancel") }),
1179
+ /* @__PURE__ */ jsx4(Button, { onClick: () => onClose(true), autoFocus: true, children: t2("Layout.Dialog.Confirm") })
1207
1180
  ] })
1208
1181
  ] });
1209
1182
  }
@@ -1226,15 +1199,15 @@ import { Upload as TusUpload } from "tus-js-client";
1226
1199
  import { uuidv7 } from "uuidv7";
1227
1200
 
1228
1201
  // src/components/core/AppTitle.tsx
1229
- import { Chip, Stack as Stack3, Typography as Typography4 } from "@mui/material";
1202
+ import { Chip, Stack as Stack2, Typography as Typography3 } from "@mui/material";
1230
1203
  import { useRouterState } from "@tanstack/react-router";
1231
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1204
+ import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
1232
1205
  var AppTitle = () => {
1233
1206
  const title = useAppTitle();
1234
- return /* @__PURE__ */ jsxs5(Stack3, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
1235
- /* @__PURE__ */ jsx6("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
1236
- /* @__PURE__ */ jsx6(Typography4, { variant: "h6", children: title }),
1237
- import.meta.env.DEV && /* @__PURE__ */ jsx6(Chip, { size: "small", label: "TEST", color: "info" })
1207
+ return /* @__PURE__ */ jsxs4(Stack2, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
1208
+ /* @__PURE__ */ jsx5("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
1209
+ /* @__PURE__ */ jsx5(Typography3, { variant: "h6", children: title }),
1210
+ import.meta.env.DEV && /* @__PURE__ */ jsx5(Chip, { size: "small", label: "TEST", color: "info" })
1238
1211
  ] });
1239
1212
  };
1240
1213
  var useAppTitle = () => {
@@ -1274,7 +1247,7 @@ var rootRouteHead = ({ title }) => () => ({
1274
1247
  { rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png" },
1275
1248
  { rel: "icon", type: "image/png", sizes: "32x32", href: "/favicon-32x32.png" },
1276
1249
  { rel: "icon", type: "image/png", sizes: "16x16", href: "/favicon-16x16.png" },
1277
- { rel: "manifest", href: "/site.webmanifest" },
1250
+ { rel: "manifest", href: "/manifest" },
1278
1251
  { rel: "icon", href: "/favicon.ico" }
1279
1252
  ]
1280
1253
  });
@@ -1446,7 +1419,7 @@ var useUploadFile = ({ subId, onSuccess, onError }) => {
1446
1419
  };
1447
1420
 
1448
1421
  // src/components/file/fileViewer/common/ActionsMenu.tsx
1449
- import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1422
+ import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
1450
1423
  var ActionsMenu = ({ meta, menu, setMenu }) => {
1451
1424
  const { t: t2 } = useTranslation3();
1452
1425
  const { fileMetas, onDelete, actions } = useFile();
@@ -1470,7 +1443,7 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
1470
1443
  onDelete({ remainingFileMetas, deletedFileMeta: meta });
1471
1444
  }
1472
1445
  };
1473
- return /* @__PURE__ */ jsx7(
1446
+ return /* @__PURE__ */ jsx6(
1474
1447
  Menu,
1475
1448
  {
1476
1449
  open: menu !== null,
@@ -1478,14 +1451,14 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
1478
1451
  anchorReference: "anchorPosition",
1479
1452
  variant: "menu",
1480
1453
  anchorPosition: menu === null ? void 0 : { top: menu.mouseY, left: menu.mouseX },
1481
- children: /* @__PURE__ */ jsxs6(List, { disablePadding: true, children: [
1482
- actions?.download !== false && /* @__PURE__ */ jsxs6(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
1483
- /* @__PURE__ */ jsx7(ListItemIcon, { children: /* @__PURE__ */ jsx7(FileDownload, {}) }),
1484
- /* @__PURE__ */ jsx7(ListItemText, { children: t2("Layout.File.Download") })
1454
+ children: /* @__PURE__ */ jsxs5(List, { disablePadding: true, children: [
1455
+ actions?.download !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
1456
+ /* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(FileDownload, {}) }),
1457
+ /* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Download") })
1485
1458
  ] }),
1486
- actions?.delete !== false && /* @__PURE__ */ jsxs6(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
1487
- /* @__PURE__ */ jsx7(ListItemIcon, { children: /* @__PURE__ */ jsx7(Delete, {}) }),
1488
- /* @__PURE__ */ jsx7(ListItemText, { children: t2("Layout.File.Delete") })
1459
+ actions?.delete !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
1460
+ /* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(Delete, {}) }),
1461
+ /* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Delete") })
1489
1462
  ] })
1490
1463
  ] })
1491
1464
  }
@@ -1493,11 +1466,11 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
1493
1466
  };
1494
1467
 
1495
1468
  // src/components/file/fileViewer/FileViewerGrid.tsx
1496
- import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
1469
+ import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
1497
1470
  var IMAGE_SIZE = 150;
1498
1471
  var FileViewerGrid = ({ sx, size, itemBar }) => {
1499
1472
  const { fileMetas } = useFile();
1500
- return /* @__PURE__ */ jsx8(Stack4, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsx8(
1473
+ return /* @__PURE__ */ jsx7(Stack3, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsx7(
1501
1474
  GridFileViewerItem,
1502
1475
  {
1503
1476
  meta: fileMeta,
@@ -1539,10 +1512,10 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
1539
1512
  }
1540
1513
  }
1541
1514
  };
1542
- return /* @__PURE__ */ jsxs7(Fragment, { children: [
1543
- /* @__PURE__ */ jsxs7(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, children: [
1544
- /* @__PURE__ */ jsx8(
1545
- Box3,
1515
+ return /* @__PURE__ */ jsxs6(Fragment, { children: [
1516
+ /* @__PURE__ */ jsxs6(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, children: [
1517
+ /* @__PURE__ */ jsx7(
1518
+ Box2,
1546
1519
  {
1547
1520
  component: "img",
1548
1521
  src: source,
@@ -1552,15 +1525,15 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
1552
1525
  sx: { cursor: "pointer", objectFit: "contain", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }
1553
1526
  }
1554
1527
  ),
1555
- itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsx8(
1528
+ itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsx7(
1556
1529
  ImageListItemBar,
1557
1530
  {
1558
- title: /* @__PURE__ */ jsx8(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsx8(Box3, { children: meta.fileName }) }),
1559
- actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsx8(MoreVert, {}) })
1531
+ title: /* @__PURE__ */ jsx7(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsx7(Box2, { children: meta.fileName }) }),
1532
+ actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsx7(MoreVert, {}) })
1560
1533
  }
1561
1534
  )
1562
1535
  ] }),
1563
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(ActionsMenu, { meta, menu, setMenu })
1536
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(ActionsMenu, { meta, menu, setMenu })
1564
1537
  ] });
1565
1538
  };
1566
1539
 
@@ -1571,11 +1544,11 @@ import MoreVert2 from "@mui/icons-material/MoreVert";
1571
1544
  import SmartDisplay from "@mui/icons-material/SmartDisplay";
1572
1545
  import { IconButton as IconButton2, List as List2, ListItemButton as ListItemButton2, ListItemIcon as ListItemIcon2, ListItemText as ListItemText2 } from "@mui/material";
1573
1546
  import { Fragment as Fragment2, useState as useState4 } from "react";
1574
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1547
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
1575
1548
  var FileViewerList = ({ sx }) => {
1576
1549
  const { fileMetas } = useFile();
1577
- return /* @__PURE__ */ jsx9(List2, { dense: true, sx, children: fileMetas.map(
1578
- (fileMeta) => /* @__PURE__ */ jsx9(
1550
+ return /* @__PURE__ */ jsx8(List2, { dense: true, sx, children: fileMetas.map(
1551
+ (fileMeta) => /* @__PURE__ */ jsx8(
1579
1552
  ListFileViewerItem,
1580
1553
  {
1581
1554
  meta: fileMeta
@@ -1612,31 +1585,31 @@ var ListFileViewerItem = ({ meta }) => {
1612
1585
  const icon = () => {
1613
1586
  switch (meta.mediaType) {
1614
1587
  case "image": {
1615
- return /* @__PURE__ */ jsx9(Image, {});
1588
+ return /* @__PURE__ */ jsx8(Image, {});
1616
1589
  }
1617
1590
  case "video": {
1618
- return /* @__PURE__ */ jsx9(SmartDisplay, {});
1591
+ return /* @__PURE__ */ jsx8(SmartDisplay, {});
1619
1592
  }
1620
1593
  default: {
1621
- return /* @__PURE__ */ jsx9(AttachFile, {});
1594
+ return /* @__PURE__ */ jsx8(AttachFile, {});
1622
1595
  }
1623
1596
  }
1624
1597
  };
1625
- return /* @__PURE__ */ jsxs8(Fragment2, { children: [
1626
- /* @__PURE__ */ jsxs8(ListItemButton2, { onClick, children: [
1627
- /* @__PURE__ */ jsx9(ListItemIcon2, { children: icon() }),
1628
- /* @__PURE__ */ jsx9(ListItemText2, { primary: `${meta.fileName}.${meta.fileExtension}` }),
1629
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx9(IconButton2, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx9(MoreVert2, {}) })
1598
+ return /* @__PURE__ */ jsxs7(Fragment2, { children: [
1599
+ /* @__PURE__ */ jsxs7(ListItemButton2, { onClick, children: [
1600
+ /* @__PURE__ */ jsx8(ListItemIcon2, { children: icon() }),
1601
+ /* @__PURE__ */ jsx8(ListItemText2, { primary: `${meta.fileName}.${meta.fileExtension}` }),
1602
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(IconButton2, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx8(MoreVert2, {}) })
1630
1603
  ] }, meta.id),
1631
- (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx9(ActionsMenu, { meta, menu, setMenu })
1604
+ (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(ActionsMenu, { meta, menu, setMenu })
1632
1605
  ] });
1633
1606
  };
1634
1607
 
1635
1608
  // src/components/file/fileViewer/ImageViewer.tsx
1636
1609
  import Close from "@mui/icons-material/Close";
1637
- import { Box as Box4, Dialog as Dialog2, Fab } from "@mui/material";
1610
+ import { Box as Box3, Dialog as Dialog2, Fab } from "@mui/material";
1638
1611
  import { useEffect as useEffect3 } from "react";
1639
- import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1612
+ import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1640
1613
  var ImageViewer = ({ metaId }) => {
1641
1614
  const { fileMetas, setImageId } = useFile();
1642
1615
  const meta = fileMetas.find((m) => m.id === metaId);
@@ -1679,28 +1652,28 @@ var ImageViewer = ({ metaId }) => {
1679
1652
  };
1680
1653
  const onClose = () => setImageId("");
1681
1654
  if (!metaId) return null;
1682
- return /* @__PURE__ */ jsxs9(Dialog2, { open: true, onClose, maxWidth: "xl", children: [
1683
- /* @__PURE__ */ jsx10(Box4, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
1684
- /* @__PURE__ */ jsx10(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsx10(Close, {}) })
1655
+ return /* @__PURE__ */ jsxs8(Dialog2, { open: true, onClose, maxWidth: "xl", children: [
1656
+ /* @__PURE__ */ jsx9(Box3, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
1657
+ /* @__PURE__ */ jsx9(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsx9(Close, {}) })
1685
1658
  ] });
1686
1659
  };
1687
1660
 
1688
1661
  // src/components/file/FileViewer.tsx
1689
- import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1662
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1690
1663
  var FileViewer = ({ subId, onDelete, actions, children }) => {
1691
1664
  const { data: fileMetas = [] } = useGetFileMetas(subId, { enabled: !!subId });
1692
1665
  const [imageId, setImageId] = useState5("");
1693
1666
  const components = { Grid: FileViewerGrid, List: FileViewerList };
1694
1667
  if (fileMetas.length === 0) return null;
1695
- return /* @__PURE__ */ jsxs10(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
1668
+ return /* @__PURE__ */ jsxs9(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
1696
1669
  children(components),
1697
- /* @__PURE__ */ jsx11(ImageViewer, { metaId: imageId })
1670
+ /* @__PURE__ */ jsx10(ImageViewer, { metaId: imageId })
1698
1671
  ] });
1699
1672
  };
1700
1673
 
1701
1674
  // src/components/data-grid/ChipInputCell.tsx
1702
- import { Chip as Chip2, Stack as Stack5 } from "@mui/material";
1703
- import { jsx as jsx12 } from "react/jsx-runtime";
1675
+ import { Chip as Chip2, Stack as Stack4 } from "@mui/material";
1676
+ import { jsx as jsx11 } from "react/jsx-runtime";
1704
1677
  var isArray = (value) => Array.isArray(value);
1705
1678
  var ChipInputCell = ({ params, slotProps, getLabel }) => {
1706
1679
  if (!params.value) return null;
@@ -1709,123 +1682,126 @@ var ChipInputCell = ({ params, slotProps, getLabel }) => {
1709
1682
  return value;
1710
1683
  };
1711
1684
  if (isArray(params.value))
1712
- return /* @__PURE__ */ jsx12(Stack5, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
1713
- (value, index) => /* @__PURE__ */ jsx12(Chip2, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
1685
+ return /* @__PURE__ */ jsx11(Stack4, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
1686
+ (value, index) => /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
1714
1687
  ) });
1715
- return /* @__PURE__ */ jsx12(Chip2, { label: getLabelValue(params.value), ...slotProps });
1688
+ return /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(params.value), ...slotProps });
1716
1689
  };
1717
1690
 
1718
1691
  // src/components/data-grid/EditableColumnHeader.tsx
1719
1692
  import Edit from "@mui/icons-material/Edit";
1720
- import { jsx as jsx13 } from "react/jsx-runtime";
1693
+ import { jsx as jsx12 } from "react/jsx-runtime";
1721
1694
  var EditableColumnHeader = ({ colDef }) => {
1722
- return /* @__PURE__ */ jsx13(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsx13(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
1695
+ return /* @__PURE__ */ jsx12(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsx12(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
1723
1696
  };
1724
1697
 
1725
1698
  // src/components/router/RouterButton.tsx
1726
1699
  import { Button as Button2 } from "@mui/material";
1727
1700
  import { createLink } from "@tanstack/react-router";
1728
1701
  import React3 from "react";
1729
- import { jsx as jsx14 } from "react/jsx-runtime";
1702
+ import { jsx as jsx13 } from "react/jsx-runtime";
1730
1703
  var Component = React3.forwardRef(function ButtonComponent(props, reference) {
1731
- return /* @__PURE__ */ jsx14(Button2, { ref: reference, component: "a", ...props });
1704
+ return /* @__PURE__ */ jsx13(Button2, { ref: reference, component: "a", ...props });
1732
1705
  });
1733
1706
  var CreatedComponent = createLink(Component);
1734
1707
  var RouterButton = (props) => {
1735
- return /* @__PURE__ */ jsx14(CreatedComponent, { ...props });
1708
+ return /* @__PURE__ */ jsx13(CreatedComponent, { ...props });
1736
1709
  };
1737
1710
 
1738
1711
  // src/components/router/RouterGridActionsCellItem.tsx
1739
1712
  import { GridActionsCellItem } from "@mui/x-data-grid-premium";
1740
1713
  import { createLink as createLink2 } from "@tanstack/react-router";
1741
1714
  import React4 from "react";
1742
- import { jsx as jsx15 } from "react/jsx-runtime";
1715
+ import { jsx as jsx14 } from "react/jsx-runtime";
1743
1716
  var Component2 = React4.forwardRef(
1744
1717
  function GridActionsCellItemComponent(props, reference) {
1745
- return /* @__PURE__ */ jsx15(GridActionsCellItem, { ref: reference, component: "a", ...props });
1718
+ return /* @__PURE__ */ jsx14(GridActionsCellItem, { ref: reference, component: "a", ...props });
1746
1719
  }
1747
1720
  );
1748
1721
  var CreatedComponent2 = createLink2(Component2);
1749
1722
  var RouterGridActionsCellItem = (props) => {
1750
- return /* @__PURE__ */ jsx15(CreatedComponent2, { ...props });
1723
+ return /* @__PURE__ */ jsx14(CreatedComponent2, { ...props });
1751
1724
  };
1752
1725
 
1753
1726
  // src/components/router/RouterIconButton.tsx
1754
1727
  import { IconButton as IconButton3 } from "@mui/material";
1755
1728
  import { createLink as createLink3 } from "@tanstack/react-router";
1756
1729
  import React5 from "react";
1757
- import { jsx as jsx16 } from "react/jsx-runtime";
1730
+ import { jsx as jsx15 } from "react/jsx-runtime";
1758
1731
  var Component3 = React5.forwardRef(function IconButtonComponent(props, reference) {
1759
- return /* @__PURE__ */ jsx16(IconButton3, { ref: reference, component: "a", ...props });
1732
+ return /* @__PURE__ */ jsx15(IconButton3, { ref: reference, component: "a", ...props });
1760
1733
  });
1761
1734
  var CreatedComponent3 = createLink3(Component3);
1762
1735
  var RouterIconButton = (props) => {
1763
- return /* @__PURE__ */ jsx16(CreatedComponent3, { ...props });
1736
+ return /* @__PURE__ */ jsx15(CreatedComponent3, { ...props });
1764
1737
  };
1765
1738
 
1766
1739
  // src/components/router/RouterLink.tsx
1767
1740
  import { Link } from "@mui/material";
1768
1741
  import { createLink as createLink4 } from "@tanstack/react-router";
1769
1742
  import React6 from "react";
1770
- import { jsx as jsx17 } from "react/jsx-runtime";
1743
+ import { jsx as jsx16 } from "react/jsx-runtime";
1771
1744
  var Component4 = React6.forwardRef(function LinkComponent(props, reference) {
1772
- return /* @__PURE__ */ jsx17(Link, { ref: reference, ...props });
1745
+ return /* @__PURE__ */ jsx16(Link, { ref: reference, ...props });
1773
1746
  });
1774
1747
  var CreatedComponent4 = createLink4(Component4);
1775
1748
  var RouterLink = (props) => {
1776
- return /* @__PURE__ */ jsx17(CreatedComponent4, { ...props });
1749
+ return /* @__PURE__ */ jsx16(CreatedComponent4, { ...props });
1777
1750
  };
1778
1751
 
1779
1752
  // src/components/router/RouterTab.tsx
1780
1753
  import { Tab } from "@mui/material";
1781
1754
  import { createLink as createLink5 } from "@tanstack/react-router";
1782
1755
  import React7 from "react";
1783
- import { jsx as jsx18 } from "react/jsx-runtime";
1756
+ import { jsx as jsx17 } from "react/jsx-runtime";
1784
1757
  var Component5 = React7.forwardRef(function TabComponent(props, reference) {
1785
- return /* @__PURE__ */ jsx18(Tab, { ref: reference, component: "a", ...props });
1758
+ return /* @__PURE__ */ jsx17(Tab, { ref: reference, component: "a", ...props });
1786
1759
  });
1787
1760
  var CreatedComponent5 = createLink5(Component5);
1788
1761
  var RouterTab = (props) => {
1789
- return /* @__PURE__ */ jsx18(CreatedComponent5, { ...props });
1762
+ return /* @__PURE__ */ jsx17(CreatedComponent5, { ...props });
1790
1763
  };
1791
1764
 
1792
1765
  // src/components/router/RouterListItemButton.tsx
1793
1766
  import { ListItemButton as ListItemButton3 } from "@mui/material";
1794
1767
  import { createLink as createLink6 } from "@tanstack/react-router";
1795
1768
  import React8 from "react";
1796
- import { jsx as jsx19 } from "react/jsx-runtime";
1769
+ import { jsx as jsx18 } from "react/jsx-runtime";
1797
1770
  var Component6 = React8.forwardRef(function ButtonComponent2(props, reference) {
1798
- return /* @__PURE__ */ jsx19(ListItemButton3, { ref: reference, component: "a", ...props });
1771
+ return /* @__PURE__ */ jsx18(ListItemButton3, { ref: reference, component: "a", ...props });
1799
1772
  });
1800
1773
  var CreatedComponent6 = createLink6(Component6);
1801
1774
  var RouterListItemButton = (props) => {
1802
- return /* @__PURE__ */ jsx19(CreatedComponent6, { ...props });
1775
+ return /* @__PURE__ */ jsx18(CreatedComponent6, { ...props });
1803
1776
  };
1804
1777
 
1805
1778
  // src/components/router/RouterNotFound.tsx
1806
- import { Box as Box5, Divider, Typography as Typography5 } from "@mui/material";
1779
+ import { Box as Box4, Divider, Typography as Typography4 } from "@mui/material";
1807
1780
  import { useTranslation as useTranslation4 } from "react-i18next";
1808
- import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1781
+ import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
1809
1782
  function RouterNotFound() {
1810
1783
  const { t: t2 } = useTranslation4();
1811
- return /* @__PURE__ */ jsx20(Box5, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs11(Box5, { display: "flex", alignItems: "center", mb: 4, children: [
1812
- /* @__PURE__ */ jsx20(Typography5, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
1813
- /* @__PURE__ */ jsx20(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
1814
- /* @__PURE__ */ jsx20(Typography5, { variant: "h5", component: "span", children: t2("Layout.ThisPageCouldNotBeFound") })
1784
+ return /* @__PURE__ */ jsx19(Box4, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs10(Box4, { display: "flex", alignItems: "center", mb: 4, children: [
1785
+ /* @__PURE__ */ jsx19(Typography4, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
1786
+ /* @__PURE__ */ jsx19(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
1787
+ /* @__PURE__ */ jsx19(Typography4, { variant: "h5", component: "span", children: t2("Layout.ThisPageCouldNotBeFound") })
1815
1788
  ] }) });
1816
1789
  }
1817
1790
 
1818
1791
  // src/components/router/RouterError.tsx
1819
- import { Box as Box6, Divider as Divider2, Typography as Typography6 } from "@mui/material";
1820
- import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
1792
+ import { Box as Box5, Divider as Divider2, Typography as Typography5 } from "@mui/material";
1793
+ import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
1821
1794
  var RouterError = ({ error }) => {
1822
- return /* @__PURE__ */ jsx21(Box6, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs12(Box6, { display: "flex", alignItems: "center", mb: 4, children: [
1823
- /* @__PURE__ */ jsx21(Typography6, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
1824
- /* @__PURE__ */ jsx21(Divider2, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
1825
- /* @__PURE__ */ jsx21(Typography6, { variant: "h5", component: "span", children: error.message })
1795
+ return /* @__PURE__ */ jsx20(Box5, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs11(Box5, { display: "flex", alignItems: "center", mb: 4, children: [
1796
+ /* @__PURE__ */ jsx20(Typography5, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
1797
+ /* @__PURE__ */ jsx20(Divider2, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
1798
+ /* @__PURE__ */ jsx20(Typography5, { variant: "h5", component: "span", children: error.message })
1826
1799
  ] }) });
1827
1800
  };
1828
1801
 
1802
+ // src/providers/LayoutProvider.tsx
1803
+ import { ThemeProvider } from "@mui/material";
1804
+
1829
1805
  // node_modules/@babel/runtime/helpers/esm/extends.js
1830
1806
  function _extends() {
1831
1807
  return _extends = Object.assign ? Object.assign.bind() : function(n) {
@@ -2591,97 +2567,14 @@ var AdapterDayjs = class {
2591
2567
 
2592
2568
  // src/providers/LayoutProvider.tsx
2593
2569
  import { useEffect as useEffect6 } from "react";
2570
+ import { useTranslation as useTranslation7 } from "react-i18next";
2594
2571
  import * as z from "zod";
2595
2572
  import { cs, en } from "zod/locales";
2596
2573
 
2597
- // src/providers/DialogsProvider.tsx
2598
- import { useCallback, useId, useMemo as useMemo3, useRef as useRef3, useState as useState6 } from "react";
2599
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
2600
- function DialogsProvider({ children, unmountAfter = 1e3 }) {
2601
- const [stack, setStack] = useState6([]);
2602
- const keyPrefix = useId();
2603
- const nextId = useRef3(0);
2604
- const dialogMetadata = useRef3(/* @__PURE__ */ new WeakMap());
2605
- const requestDialog = useEventCallback_default(function open(Component7, payload, options = {}) {
2606
- const { onClose = async () => {
2607
- } } = options;
2608
- let resolve;
2609
- const promise = new Promise((resolveImpl) => {
2610
- resolve = resolveImpl;
2611
- });
2612
- const key = `${keyPrefix}-${nextId.current}`;
2613
- nextId.current += 1;
2614
- const newEntry = {
2615
- key,
2616
- open: true,
2617
- promise,
2618
- Component: Component7,
2619
- payload,
2620
- onClose,
2621
- resolve
2622
- };
2623
- dialogMetadata.current.set(promise, newEntry);
2624
- setStack((previousStack) => [...previousStack, newEntry]);
2625
- return promise;
2626
- });
2627
- const removeDialogFromStack = useCallback((dialog) => {
2628
- setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));
2629
- dialogMetadata.current.delete(dialog);
2630
- }, []);
2631
- const closeDialogUi = useEventCallback_default(function closeDialogUi2(dialog) {
2632
- setStack(
2633
- (previousStack) => previousStack.map((entry) => entry.promise === dialog ? { ...entry, open: false } : entry)
2634
- );
2635
- setTimeout(() => removeDialogFromStack(dialog), unmountAfter);
2636
- });
2637
- const closeDialog = useEventCallback_default(async function closeDialog2(dialog, result) {
2638
- const entryToClose = dialogMetadata.current.get(dialog);
2639
- if (!entryToClose) {
2640
- throw new Error("Dialog not found in stack");
2641
- }
2642
- try {
2643
- await entryToClose.onClose(result);
2644
- } finally {
2645
- entryToClose.resolve(result);
2646
- closeDialogUi(dialog);
2647
- }
2648
- return dialog;
2649
- });
2650
- const contextValue = useMemo3(() => ({ open: requestDialog, close: closeDialog }), [requestDialog, closeDialog]);
2651
- return /* @__PURE__ */ jsxs13(DialogsContext.Provider, { value: contextValue, children: [
2652
- children,
2653
- stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */ jsx22(
2654
- Component7,
2655
- {
2656
- payload,
2657
- open,
2658
- onClose: async (result) => {
2659
- await closeDialog(promise, result);
2660
- }
2661
- },
2662
- key
2663
- ))
2664
- ] });
2665
- }
2666
-
2667
- // src/providers/LayoutProvider.tsx
2668
- import { ThemeProvider } from "@mui/material";
2669
-
2670
- // src/utils/i18n.ts
2671
- import i18n from "i18next";
2672
- import LanguageDetector from "i18next-browser-languagedetector";
2673
- import HttpBackend from "i18next-http-backend";
2674
- import { initReactI18next } from "react-i18next";
2675
- import { default as default2 } from "i18next";
2676
- i18n.use(HttpBackend).use(LanguageDetector).use(initReactI18next).init({
2677
- fallbackLng: "en",
2678
- interpolation: { escapeValue: false }
2679
- });
2680
-
2681
2574
  // src/components/core/Layout.tsx
2682
2575
  import Menu3 from "@mui/icons-material/Menu";
2683
2576
  import MenuOpen from "@mui/icons-material/MenuOpen";
2684
- import { AppBar, Box as Box10, CssBaseline, IconButton as IconButton5, InitColorSchemeScript, LinearProgress, Toolbar } from "@mui/material";
2577
+ import { AppBar, Box as Box9, CssBaseline, IconButton as IconButton5, InitColorSchemeScript, LinearProgress, Toolbar } from "@mui/material";
2685
2578
  import { styled as styled2 } from "@mui/material/styles";
2686
2579
  import { useIsFetching, useIsMutating } from "@tanstack/react-query";
2687
2580
  import { Fragment as Fragment7 } from "react";
@@ -2689,7 +2582,7 @@ import useLocalStorageState from "use-local-storage-state";
2689
2582
 
2690
2583
  // src/components/core/navigation/NavigationRail.tsx
2691
2584
  import { useMediaQuery } from "@mui/material";
2692
- import Box8 from "@mui/material/Box";
2585
+ import Box7 from "@mui/material/Box";
2693
2586
  import Drawer from "@mui/material/Drawer";
2694
2587
  import { useTheme as useTheme2 } from "@mui/material/styles";
2695
2588
  import { useNavigate, useRouterState as useRouterState2 } from "@tanstack/react-router";
@@ -2698,12 +2591,12 @@ import { useNavigate, useRouterState as useRouterState2 } from "@tanstack/react-
2698
2591
  import Divider3 from "@mui/material/Divider";
2699
2592
  import List3 from "@mui/material/List";
2700
2593
  import ListSubheader from "@mui/material/ListSubheader";
2701
- import { Fragment as Fragment5, useEffect as useEffect5, useState as useState8 } from "react";
2594
+ import { Fragment as Fragment5, useEffect as useEffect5, useState as useState7 } from "react";
2702
2595
 
2703
2596
  // src/components/core/navigation/NavigationListItem.tsx
2704
2597
  import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
2705
2598
  import Avatar from "@mui/material/Avatar";
2706
- import Box7 from "@mui/material/Box";
2599
+ import Box6 from "@mui/material/Box";
2707
2600
  import Popper from "@mui/material/Popper";
2708
2601
  import ListItem from "@mui/material/ListItem";
2709
2602
  import ListItemButton4 from "@mui/material/ListItemButton";
@@ -2711,10 +2604,10 @@ import ListItemIcon3 from "@mui/material/ListItemIcon";
2711
2604
  import ListItemText3 from "@mui/material/ListItemText";
2712
2605
  import Paper2 from "@mui/material/Paper";
2713
2606
  import { styled } from "@mui/material/styles";
2714
- import Typography7 from "@mui/material/Typography";
2715
- import { Fragment as Fragment3, useMemo as useMemo4, useState as useState7 } from "react";
2607
+ import Typography6 from "@mui/material/Typography";
2608
+ import { Fragment as Fragment3, useMemo as useMemo3, useState as useState6 } from "react";
2716
2609
  import { Collapse } from "@mui/material";
2717
- import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs14 } from "react/jsx-runtime";
2610
+ import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
2718
2611
  var ICON_SIZE = 34;
2719
2612
  var StyledNavButton = styled(ListItemButton4)(({ theme }) => ({
2720
2613
  borderRadius: 8,
@@ -2758,13 +2651,13 @@ var StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({
2758
2651
  }));
2759
2652
  var IconOrAvatar = ({ item, collapsed }) => {
2760
2653
  if (item.icon || collapsed) {
2761
- return /* @__PURE__ */ jsxs14(Box7, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
2762
- /* @__PURE__ */ jsxs14(ListItemIcon3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
2654
+ return /* @__PURE__ */ jsxs12(Box6, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
2655
+ /* @__PURE__ */ jsxs12(ListItemIcon3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
2763
2656
  item.icon ?? null,
2764
- !item.icon && collapsed ? /* @__PURE__ */ jsx23(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
2657
+ !item.icon && collapsed ? /* @__PURE__ */ jsx21(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
2765
2658
  ] }),
2766
- collapsed ? /* @__PURE__ */ jsx23(
2767
- Typography7,
2659
+ collapsed ? /* @__PURE__ */ jsx21(
2660
+ Typography6,
2768
2661
  {
2769
2662
  variant: "caption",
2770
2663
  sx: {
@@ -2787,7 +2680,7 @@ var IconOrAvatar = ({ item, collapsed }) => {
2787
2680
  }
2788
2681
  return null;
2789
2682
  };
2790
- var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx23(
2683
+ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx21(
2791
2684
  Popper,
2792
2685
  {
2793
2686
  open,
@@ -2798,7 +2691,7 @@ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx23(
2798
2691
  { name: "preventOverflow", options: { padding: 8 } },
2799
2692
  { name: "flip", options: { fallbackPlacements: ["right-end", "left-start"] } }
2800
2693
  ],
2801
- children: /* @__PURE__ */ jsx23(
2694
+ children: /* @__PURE__ */ jsx21(
2802
2695
  Paper2,
2803
2696
  {
2804
2697
  sx: {
@@ -2814,9 +2707,9 @@ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx23(
2814
2707
  }
2815
2708
  );
2816
2709
  var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {
2817
- const [hoveredPopoverItem, setHoveredPopoverItem] = useState7(null);
2818
- const [anchorElement, setAnchorElement] = useState7(null);
2819
- const chevronSx = useMemo4(() => {
2710
+ const [hoveredPopoverItem, setHoveredPopoverItem] = useState6(null);
2711
+ const [anchorElement, setAnchorElement] = useState6(null);
2712
+ const chevronSx = useMemo3(() => {
2820
2713
  if (collapsed && isSidebarFullyCollapsed && item.children) {
2821
2714
  return {
2822
2715
  fontSize: 18,
@@ -2840,9 +2733,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
2840
2733
  disabled,
2841
2734
  sx: { px: 1.4, height: collapsed ? 60 : 48 }
2842
2735
  };
2843
- const buttonContent = /* @__PURE__ */ jsxs14(Fragment4, { children: [
2844
- /* @__PURE__ */ jsx23(IconOrAvatar, { item, collapsed }),
2845
- !collapsed && /* @__PURE__ */ jsx23(
2736
+ const buttonContent = /* @__PURE__ */ jsxs12(Fragment4, { children: [
2737
+ /* @__PURE__ */ jsx21(IconOrAvatar, { item, collapsed }),
2738
+ !collapsed && /* @__PURE__ */ jsx21(
2846
2739
  ListItemText3,
2847
2740
  {
2848
2741
  primary: item.title,
@@ -2850,9 +2743,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
2850
2743
  sx: { ml: 1.2, flex: 1, minWidth: 0, "& .MuiTypography-root": { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" } }
2851
2744
  }
2852
2745
  ),
2853
- item.children ? /* @__PURE__ */ jsx23(ExpandMoreIcon, { sx: chevronSx }) : null
2746
+ item.children ? /* @__PURE__ */ jsx21(ExpandMoreIcon, { sx: chevronSx }) : null
2854
2747
  ] });
2855
- const listItem = /* @__PURE__ */ jsxs14(
2748
+ const listItem = /* @__PURE__ */ jsxs12(
2856
2749
  ListItem,
2857
2750
  {
2858
2751
  ...item.children && collapsed ? {
@@ -2866,7 +2759,7 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
2866
2759
  } : {},
2867
2760
  sx: { py: 0, px: 1, overflowX: "hidden" },
2868
2761
  children: [
2869
- shouldJustExpand ? /* @__PURE__ */ jsx23(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsx23(
2762
+ shouldJustExpand ? /* @__PURE__ */ jsx21(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsx21(
2870
2763
  StyledRouterButton,
2871
2764
  {
2872
2765
  ...buttonProps,
@@ -2878,28 +2771,28 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
2878
2771
  children: buttonContent
2879
2772
  }
2880
2773
  ),
2881
- item.children && collapsed ? /* @__PURE__ */ jsx23(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
2774
+ item.children && collapsed ? /* @__PURE__ */ jsx21(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
2882
2775
  ]
2883
2776
  }
2884
2777
  );
2885
- return /* @__PURE__ */ jsxs14(Fragment3, { children: [
2778
+ return /* @__PURE__ */ jsxs12(Fragment3, { children: [
2886
2779
  listItem,
2887
- item.children && !collapsed ? /* @__PURE__ */ jsx23(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
2780
+ item.children && !collapsed ? /* @__PURE__ */ jsx21(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
2888
2781
  ] }, item.to);
2889
2782
  };
2890
2783
 
2891
2784
  // src/components/core/navigation/NavigationList.tsx
2892
- import { jsx as jsx24 } from "react/jsx-runtime";
2785
+ import { jsx as jsx22 } from "react/jsx-runtime";
2893
2786
  var isPageItem = (item) => !("kind" in item);
2894
2787
  var isDivider = (item) => "kind" in item && item.kind === "divider";
2895
2788
  var isHeader = (item) => "kind" in item && item.kind === "header";
2896
2789
  var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {
2897
- const [openKeys, setOpenKeys] = useState8([]);
2790
+ const [openKeys, setOpenKeys] = useState7([]);
2898
2791
  useEffect5(() => {
2899
2792
  if (collapsed) setOpenKeys([]);
2900
2793
  }, [collapsed]);
2901
2794
  const toggleKey = (key) => setOpenKeys((previous) => previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]);
2902
- const renderNested = (children) => /* @__PURE__ */ jsx24(
2795
+ const renderNested = (children) => /* @__PURE__ */ jsx22(
2903
2796
  NavigationList,
2904
2797
  {
2905
2798
  subNavigation: children,
@@ -2912,7 +2805,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
2912
2805
  }
2913
2806
  );
2914
2807
  const filteredNavigation = subNavigation.filter((nav) => !nav.hidden);
2915
- return /* @__PURE__ */ jsx24(
2808
+ return /* @__PURE__ */ jsx22(
2916
2809
  List3,
2917
2810
  {
2918
2811
  sx: {
@@ -2925,7 +2818,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
2925
2818
  },
2926
2819
  children: filteredNavigation.map((navItem, index) => {
2927
2820
  if (isHeader(navItem)) {
2928
- return /* @__PURE__ */ jsx24(
2821
+ return /* @__PURE__ */ jsx22(
2929
2822
  ListSubheader,
2930
2823
  {
2931
2824
  sx: {
@@ -2948,13 +2841,13 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
2948
2841
  }
2949
2842
  if (isDivider(navItem)) {
2950
2843
  const nextItem = filteredNavigation[index + 1];
2951
- return /* @__PURE__ */ jsx24("li", { children: /* @__PURE__ */ jsx24(Divider3, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
2844
+ return /* @__PURE__ */ jsx22("li", { children: /* @__PURE__ */ jsx22(Divider3, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
2952
2845
  }
2953
2846
  if (!isPageItem(navItem)) return null;
2954
2847
  const key = `item-${depth}-${index}`;
2955
2848
  const uniqueItemKey = `${depth}-${index}-${navItem.title}`;
2956
- if (renderItem) return /* @__PURE__ */ jsx24(Fragment5, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key);
2957
- return /* @__PURE__ */ jsx24(
2849
+ if (renderItem) return /* @__PURE__ */ jsx22(Fragment5, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key);
2850
+ return /* @__PURE__ */ jsx22(
2958
2851
  NavigationListItem,
2959
2852
  {
2960
2853
  item: navItem,
@@ -2975,7 +2868,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
2975
2868
  };
2976
2869
 
2977
2870
  // src/components/core/navigation/NavigationRail.tsx
2978
- import { jsx as jsx25 } from "react/jsx-runtime";
2871
+ import { jsx as jsx23 } from "react/jsx-runtime";
2979
2872
  var MINI_WIDTH = 84;
2980
2873
  var EXPANDED_WIDTH = 320;
2981
2874
  var TOOLBAR_HEIGHT = 64;
@@ -2984,8 +2877,8 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
2984
2877
  const routerState = useRouterState2();
2985
2878
  const theme = useTheme2();
2986
2879
  const showPermanent = useMediaQuery(theme.breakpoints.up("sm"));
2987
- const drawerContent = (collapsed) => /* @__PURE__ */ jsx25(
2988
- Box8,
2880
+ const drawerContent = (collapsed) => /* @__PURE__ */ jsx23(
2881
+ Box7,
2989
2882
  {
2990
2883
  component: "nav",
2991
2884
  sx: {
@@ -2998,7 +2891,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
2998
2891
  overflowX: "hidden",
2999
2892
  pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2
3000
2893
  },
3001
- children: /* @__PURE__ */ jsx25(
2894
+ children: /* @__PURE__ */ jsx23(
3002
2895
  NavigationList,
3003
2896
  {
3004
2897
  subNavigation: navigation,
@@ -3014,7 +2907,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
3014
2907
  }
3015
2908
  );
3016
2909
  if (showPermanent)
3017
- return /* @__PURE__ */ jsx25(
2910
+ return /* @__PURE__ */ jsx23(
3018
2911
  Drawer,
3019
2912
  {
3020
2913
  variant: "permanent",
@@ -3032,7 +2925,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
3032
2925
  children: drawerContent(!expanded)
3033
2926
  }
3034
2927
  );
3035
- return /* @__PURE__ */ jsx25(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
2928
+ return /* @__PURE__ */ jsx23(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
3036
2929
  };
3037
2930
 
3038
2931
  // src/components/core/ToolbarAccount.tsx
@@ -3046,18 +2939,18 @@ import Login from "@mui/icons-material/Login";
3046
2939
  import Logout from "@mui/icons-material/Logout";
3047
2940
  import SettingsBrightness from "@mui/icons-material/SettingsBrightness";
3048
2941
  import Translate from "@mui/icons-material/Translate";
3049
- import { Avatar as Avatar2, Box as Box9, IconButton as IconButton4, List as List4, ListItem as ListItem2, ListItemButton as ListItemButton5, ListItemIcon as ListItemIcon4, ListItemText as ListItemText4, ListSubheader as ListSubheader2, Menu as Menu2, Typography as Typography8, useColorScheme } from "@mui/material";
3050
- import { Fragment as Fragment6, useState as useState9 } from "react";
2942
+ import { Avatar as Avatar2, Box as Box8, IconButton as IconButton4, List as List4, ListItem as ListItem2, ListItemButton as ListItemButton5, ListItemIcon as ListItemIcon4, ListItemText as ListItemText4, ListSubheader as ListSubheader2, Menu as Menu2, Typography as Typography7, useColorScheme } from "@mui/material";
2943
+ import { Fragment as Fragment6, useState as useState8 } from "react";
3051
2944
  import { useTranslation as useTranslation5 } from "react-i18next";
3052
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
2945
+ import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
3053
2946
  var ToolbarAccount = () => {
3054
- const [anchorElement, setAnchorElement] = useState9();
3055
- const [tab, setTab] = useState9("settings");
2947
+ const [anchorElement, setAnchorElement] = useState8();
2948
+ const [tab, setTab] = useState8("settings");
3056
2949
  const open = Boolean(anchorElement);
3057
- const { t: t2, i18n: i18n2 } = useTranslation5();
2950
+ const { t: t2, i18n } = useTranslation5();
3058
2951
  const { mode, setMode } = useColorScheme();
3059
2952
  const changeLanguage = (newLanguage) => () => {
3060
- i18n2.changeLanguage(newLanguage).finally(() => closeMenu());
2953
+ i18n.changeLanguage(newLanguage).finally(() => closeMenu());
3061
2954
  };
3062
2955
  const changeMode = (newMode) => () => {
3063
2956
  setMode(newMode);
@@ -3092,60 +2985,60 @@ var ToolbarAccount = () => {
3092
2985
  setTimeout(() => setTab("settings"), 300);
3093
2986
  };
3094
2987
  const changeTab = (newTab) => () => setTab(newTab);
3095
- const settings = /* @__PURE__ */ jsxs15(List4, { component: "nav", subheader: /* @__PURE__ */ jsx26(ListSubheader2, { sx: { backgroundColor: "transparent" }, children: t2("Layout.Settings") }), children: [
3096
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
3097
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(Brightness4, {}) }),
3098
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.Appearance"), secondary: getModeText() }),
3099
- /* @__PURE__ */ jsx26(ChevronRight, {})
2988
+ const settings = /* @__PURE__ */ jsxs13(List4, { component: "nav", subheader: /* @__PURE__ */ jsx24(ListSubheader2, { sx: { backgroundColor: "transparent" }, children: t2("Layout.Settings") }), children: [
2989
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
2990
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Brightness4, {}) }),
2991
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Appearance"), secondary: getModeText() }),
2992
+ /* @__PURE__ */ jsx24(ChevronRight, {})
3100
2993
  ] }),
3101
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
3102
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(Translate, {}) }),
3103
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.Language"), secondary: i18n2.resolvedLanguage === "en" ? "English" : "\u010Ce\u0161tina" }),
3104
- /* @__PURE__ */ jsx26(ChevronRight, {})
2994
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
2995
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Translate, {}) }),
2996
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Language"), secondary: i18n.resolvedLanguage === "en" ? "English" : "\u010Ce\u0161tina" }),
2997
+ /* @__PURE__ */ jsx24(ChevronRight, {})
3105
2998
  ] })
3106
2999
  ] });
3107
- const theme = /* @__PURE__ */ jsxs15(List4, { subheader: /* @__PURE__ */ jsxs15(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
3108
- /* @__PURE__ */ jsx26(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx26(ArrowBack, { fontSize: "small" }) }),
3000
+ const theme = /* @__PURE__ */ jsxs13(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
3001
+ /* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
3109
3002
  " ",
3110
3003
  t2("Layout.Appearance")
3111
3004
  ] }), children: [
3112
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: changeMode("light"), disabled: mode === "light", children: [
3113
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(LightMode, {}) }),
3114
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.Light") })
3005
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("light"), disabled: mode === "light", children: [
3006
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(LightMode, {}) }),
3007
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Light") })
3115
3008
  ] }),
3116
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: changeMode("dark"), disabled: mode === "dark", children: [
3117
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(DarkMode, {}) }),
3118
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.Dark") })
3009
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("dark"), disabled: mode === "dark", children: [
3010
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(DarkMode, {}) }),
3011
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Dark") })
3119
3012
  ] }),
3120
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: changeMode("system"), disabled: mode === "system", children: [
3121
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(SettingsBrightness, {}) }),
3122
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.System") })
3013
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("system"), disabled: mode === "system", children: [
3014
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(SettingsBrightness, {}) }),
3015
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.System") })
3123
3016
  ] })
3124
3017
  ] });
3125
- const language = /* @__PURE__ */ jsxs15(List4, { subheader: /* @__PURE__ */ jsxs15(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
3126
- /* @__PURE__ */ jsx26(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx26(ArrowBack, { fontSize: "small" }) }),
3018
+ const language = /* @__PURE__ */ jsxs13(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
3019
+ /* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
3127
3020
  " ",
3128
3021
  t2("Layout.Language")
3129
3022
  ] }), children: [
3130
- /* @__PURE__ */ jsx26(ListItemButton5, { onClick: changeLanguage("en"), disabled: i18n2.resolvedLanguage === "en", children: /* @__PURE__ */ jsx26(ListItemText4, { primary: "English" }) }),
3131
- /* @__PURE__ */ jsx26(ListItemButton5, { onClick: changeLanguage("cs"), disabled: i18n2.resolvedLanguage === "cs", children: /* @__PURE__ */ jsx26(ListItemText4, { primary: "\u010Ce\u0161tina" }) })
3023
+ /* @__PURE__ */ jsx24(ListItemButton5, { onClick: changeLanguage("en"), disabled: i18n.resolvedLanguage === "en", children: /* @__PURE__ */ jsx24(ListItemText4, { primary: "English" }) }),
3024
+ /* @__PURE__ */ jsx24(ListItemButton5, { onClick: changeLanguage("cs"), disabled: i18n.resolvedLanguage === "cs", children: /* @__PURE__ */ jsx24(ListItemText4, { primary: "\u010Ce\u0161tina" }) })
3132
3025
  ] });
3133
- return /* @__PURE__ */ jsxs15(Fragment6, { children: [
3134
- /* @__PURE__ */ jsx26(IconButton4, { size: "small", edge: "end", onClick: openMenu, children: user.name ? /* @__PURE__ */ jsx26(Avatar2, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsx26(Typography8, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) : /* @__PURE__ */ jsx26(AccountCircle, { fontSize: "large" }) }),
3135
- /* @__PURE__ */ jsx26(Menu2, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs15(Box9, { sx: { width: 240 }, children: [
3136
- /* @__PURE__ */ jsx26(List4, { children: user.name ? /* @__PURE__ */ jsxs15(Fragment6, { children: [
3137
- /* @__PURE__ */ jsx26(ListItem2, { children: /* @__PURE__ */ jsx26(ListItemText4, { primary: user.name, secondary: /* @__PURE__ */ jsxs15("span", { children: [
3138
- /* @__PURE__ */ jsx26("span", { children: user.employeeId }),
3139
- /* @__PURE__ */ jsx26("br", {}),
3140
- /* @__PURE__ */ jsx26("span", { children: user.department })
3026
+ return /* @__PURE__ */ jsxs13(Fragment6, { children: [
3027
+ /* @__PURE__ */ jsx24(IconButton4, { size: "small", edge: "end", onClick: openMenu, children: user.name ? /* @__PURE__ */ jsx24(Avatar2, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsx24(Typography7, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) : /* @__PURE__ */ jsx24(AccountCircle, { fontSize: "large" }) }),
3028
+ /* @__PURE__ */ jsx24(Menu2, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs13(Box8, { sx: { width: 240 }, children: [
3029
+ /* @__PURE__ */ jsx24(List4, { children: user.name ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
3030
+ /* @__PURE__ */ jsx24(ListItem2, { children: /* @__PURE__ */ jsx24(ListItemText4, { primary: user.name, secondary: /* @__PURE__ */ jsxs13("span", { children: [
3031
+ /* @__PURE__ */ jsx24("span", { children: user.employeeId }),
3032
+ /* @__PURE__ */ jsx24("br", {}),
3033
+ /* @__PURE__ */ jsx24("span", { children: user.department })
3141
3034
  ] }) }) }),
3142
- /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: () => console.log("Logout"), children: [
3143
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(Logout, { color: "error" }) }),
3144
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.Logout") })
3035
+ /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Logout"), children: [
3036
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Logout, { color: "error" }) }),
3037
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Logout") })
3145
3038
  ] })
3146
- ] }) : /* @__PURE__ */ jsxs15(ListItemButton5, { onClick: () => console.log("Login"), children: [
3147
- /* @__PURE__ */ jsx26(ListItemIcon4, { children: /* @__PURE__ */ jsx26(Login, { color: "success" }) }),
3148
- /* @__PURE__ */ jsx26(ListItemText4, { primary: t2("Layout.LogIn") })
3039
+ ] }) : /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Login"), children: [
3040
+ /* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Login, { color: "success" }) }),
3041
+ /* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.LogIn") })
3149
3042
  ] }) }),
3150
3043
  tab === "settings" && settings,
3151
3044
  tab === "theme" && theme,
@@ -3155,7 +3048,7 @@ var ToolbarAccount = () => {
3155
3048
  };
3156
3049
 
3157
3050
  // src/components/core/Layout.tsx
3158
- import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
3051
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
3159
3052
  var DrawerHeader = styled2("div")(({ theme }) => ({
3160
3053
  display: "flex",
3161
3054
  alignItems: "center",
@@ -3167,11 +3060,11 @@ var Layout = (props) => {
3167
3060
  const [navigationOpen, setNavigationOpen] = useLocalStorageState("navigationOpen", { defaultServerValue: false });
3168
3061
  const isFetching = !!useIsFetching();
3169
3062
  const isMutating = !!useIsMutating();
3170
- return /* @__PURE__ */ jsxs16(Fragment7, { children: [
3171
- /* @__PURE__ */ jsx27(InitColorSchemeScript, {}),
3172
- /* @__PURE__ */ jsx27(CssBaseline, {}),
3173
- /* @__PURE__ */ jsxs16(Box10, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
3174
- /* @__PURE__ */ jsx27(
3063
+ return /* @__PURE__ */ jsxs14(Fragment7, { children: [
3064
+ /* @__PURE__ */ jsx25(InitColorSchemeScript, {}),
3065
+ /* @__PURE__ */ jsx25(CssBaseline, {}),
3066
+ /* @__PURE__ */ jsxs14(Box9, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
3067
+ /* @__PURE__ */ jsx25(
3175
3068
  AppBar,
3176
3069
  {
3177
3070
  color: "transparent",
@@ -3181,27 +3074,27 @@ var Layout = (props) => {
3181
3074
  borderColor: theme.vars?.palette.divider,
3182
3075
  boxShadow: "none"
3183
3076
  }),
3184
- children: /* @__PURE__ */ jsxs16(Toolbar, { children: [
3185
- props.navigation && /* @__PURE__ */ jsx27(
3077
+ children: /* @__PURE__ */ jsxs14(Toolbar, { children: [
3078
+ props.navigation && /* @__PURE__ */ jsx25(
3186
3079
  IconButton5,
3187
3080
  {
3188
3081
  onClick: () => setNavigationOpen((previous) => !previous),
3189
3082
  sx: { marginRight: 2 },
3190
- children: navigationOpen ? /* @__PURE__ */ jsx27(MenuOpen, {}) : /* @__PURE__ */ jsx27(Menu3, {})
3083
+ children: navigationOpen ? /* @__PURE__ */ jsx25(MenuOpen, {}) : /* @__PURE__ */ jsx25(Menu3, {})
3191
3084
  }
3192
3085
  ),
3193
- /* @__PURE__ */ jsx27(AppTitle, {}),
3194
- /* @__PURE__ */ jsx27(ToolbarAccount, {})
3086
+ /* @__PURE__ */ jsx25(AppTitle, {}),
3087
+ /* @__PURE__ */ jsx25(ToolbarAccount, {})
3195
3088
  ] })
3196
3089
  }
3197
3090
  ),
3198
- props.navigation && /* @__PURE__ */ jsx27(NavigationRail, { navigation: props.navigation, expanded: navigationOpen ?? false, setExpanded: setNavigationOpen }),
3199
- /* @__PURE__ */ jsxs16(Box10, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
3200
- /* @__PURE__ */ jsx27(DrawerHeader, {}),
3201
- /* @__PURE__ */ jsx27(Box10, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
3091
+ props.navigation && /* @__PURE__ */ jsx25(NavigationRail, { navigation: props.navigation, expanded: navigationOpen ?? false, setExpanded: setNavigationOpen }),
3092
+ /* @__PURE__ */ jsxs14(Box9, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
3093
+ /* @__PURE__ */ jsx25(DrawerHeader, {}),
3094
+ /* @__PURE__ */ jsx25(Box9, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
3202
3095
  ] })
3203
3096
  ] }),
3204
- (isFetching || isMutating) && /* @__PURE__ */ jsx27(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
3097
+ (isFetching || isMutating) && /* @__PURE__ */ jsx25(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
3205
3098
  ] });
3206
3099
  };
3207
3100
 
@@ -3914,7 +3807,7 @@ import { useTranslation as useTranslation6 } from "react-i18next";
3914
3807
  var WISTRON_PRIMARY_COLOR = "#00506E";
3915
3808
  var WISTRON_SECONDARY_COLOR = "#64DC00";
3916
3809
  var useGetTheme = (theme) => {
3917
- const { i18n: i18n2 } = useTranslation6();
3810
+ const { i18n } = useTranslation6();
3918
3811
  return createTheme(
3919
3812
  {
3920
3813
  cssVariables: {
@@ -3962,30 +3855,125 @@ var useGetTheme = (theme) => {
3962
3855
  };
3963
3856
  }
3964
3857
  },
3858
+ MuiDataGrid: {
3859
+ styleOverrides: {
3860
+ root: ({ theme: muiTheme }) => ({
3861
+ "& .MuiDataGrid-cell--editing": {
3862
+ "& .MuiInputBase-root": {
3863
+ height: "100%"
3864
+ }
3865
+ },
3866
+ "& .MuiDataGrid-columnHeaderTitle": {
3867
+ fontWeight: 600
3868
+ },
3869
+ "& .Mui-error": {
3870
+ backgroundColor: muiTheme.palette.error.main,
3871
+ color: muiTheme.palette.error.contrastText
3872
+ },
3873
+ "& .MuiDataGrid-booleanCell[data-value='true']": {
3874
+ color: `${muiTheme.palette.success.main} !important`
3875
+ },
3876
+ "& .MuiDataGrid-booleanCell[data-value='false']": {
3877
+ color: `${muiTheme.palette.error.main} !important`
3878
+ }
3879
+ })
3880
+ }
3881
+ },
3965
3882
  ...theme?.components
3966
3883
  }
3967
3884
  },
3968
- i18n2.resolvedLanguage === "cs" ? csCZ : enUS2,
3969
- i18n2.resolvedLanguage === "cs" ? csCZ2 : enUS,
3970
- i18n2.resolvedLanguage === "cs" ? csCZ3 : enUS3
3885
+ i18n.resolvedLanguage === "cs" ? csCZ : enUS2,
3886
+ i18n.resolvedLanguage === "cs" ? csCZ2 : enUS,
3887
+ i18n.resolvedLanguage === "cs" ? csCZ3 : enUS3
3971
3888
  );
3972
3889
  };
3973
3890
 
3891
+ // src/providers/DialogsProvider.tsx
3892
+ import { useCallback, useId, useMemo as useMemo4, useRef as useRef3, useState as useState9 } from "react";
3893
+ import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
3894
+ function DialogsProvider({ children, unmountAfter = 1e3 }) {
3895
+ const [stack, setStack] = useState9([]);
3896
+ const keyPrefix = useId();
3897
+ const nextId = useRef3(0);
3898
+ const dialogMetadata = useRef3(/* @__PURE__ */ new WeakMap());
3899
+ const requestDialog = useEventCallback_default(function open(Component7, payload, options = {}) {
3900
+ const { onClose = async () => {
3901
+ } } = options;
3902
+ let resolve;
3903
+ const promise = new Promise((resolveImpl) => {
3904
+ resolve = resolveImpl;
3905
+ });
3906
+ const key = `${keyPrefix}-${nextId.current}`;
3907
+ nextId.current += 1;
3908
+ const newEntry = {
3909
+ key,
3910
+ open: true,
3911
+ promise,
3912
+ Component: Component7,
3913
+ payload,
3914
+ onClose,
3915
+ resolve
3916
+ };
3917
+ dialogMetadata.current.set(promise, newEntry);
3918
+ setStack((previousStack) => [...previousStack, newEntry]);
3919
+ return promise;
3920
+ });
3921
+ const removeDialogFromStack = useCallback((dialog) => {
3922
+ setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));
3923
+ dialogMetadata.current.delete(dialog);
3924
+ }, []);
3925
+ const closeDialogUi = useEventCallback_default(function closeDialogUi2(dialog) {
3926
+ setStack(
3927
+ (previousStack) => previousStack.map((entry) => entry.promise === dialog ? { ...entry, open: false } : entry)
3928
+ );
3929
+ setTimeout(() => removeDialogFromStack(dialog), unmountAfter);
3930
+ });
3931
+ const closeDialog = useEventCallback_default(async function closeDialog2(dialog, result) {
3932
+ const entryToClose = dialogMetadata.current.get(dialog);
3933
+ if (!entryToClose) {
3934
+ throw new Error("Dialog not found in stack");
3935
+ }
3936
+ try {
3937
+ await entryToClose.onClose(result);
3938
+ } finally {
3939
+ entryToClose.resolve(result);
3940
+ closeDialogUi(dialog);
3941
+ }
3942
+ return dialog;
3943
+ });
3944
+ const contextValue = useMemo4(() => ({ open: requestDialog, close: closeDialog }), [requestDialog, closeDialog]);
3945
+ return /* @__PURE__ */ jsxs15(DialogsContext.Provider, { value: contextValue, children: [
3946
+ children,
3947
+ stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */ jsx26(
3948
+ Component7,
3949
+ {
3950
+ payload,
3951
+ open,
3952
+ onClose: async (result) => {
3953
+ await closeDialog(promise, result);
3954
+ }
3955
+ },
3956
+ key
3957
+ ))
3958
+ ] });
3959
+ }
3960
+
3974
3961
  // src/providers/LayoutProvider.tsx
3975
- import { jsx as jsx28 } from "react/jsx-runtime";
3962
+ import { jsx as jsx27 } from "react/jsx-runtime";
3976
3963
  var LayoutProvider = ({ navigation, theme, children }) => {
3964
+ const { i18n } = useTranslation7();
3977
3965
  const createdTheme = useGetTheme(theme);
3978
3966
  useEffect6(() => {
3979
3967
  const handler = () => {
3980
- z.config(default2.resolvedLanguage === "cs" ? cs() : en());
3968
+ z.config(i18n.resolvedLanguage === "cs" ? cs() : en());
3981
3969
  };
3982
3970
  handler();
3983
- default2.on("languageChanged", handler);
3971
+ i18n.on("languageChanged", handler);
3984
3972
  return () => {
3985
- default2.off("languageChanged", handler);
3973
+ i18n.off("languageChanged", handler);
3986
3974
  };
3987
3975
  }, []);
3988
- return /* @__PURE__ */ jsx28(ThemeProvider, { theme: createdTheme, children: /* @__PURE__ */ jsx28(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: default2.resolvedLanguage, children: /* @__PURE__ */ jsx28(DialogsProvider, { children: /* @__PURE__ */ jsx28(Layout, { navigation, children }) }) }) });
3976
+ return /* @__PURE__ */ jsx27(ThemeProvider, { theme: createdTheme, children: /* @__PURE__ */ jsx27(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: i18n.resolvedLanguage, children: /* @__PURE__ */ jsx27(DialogsProvider, { children: /* @__PURE__ */ jsx27(Layout, { navigation, children }) }) }) });
3989
3977
  };
3990
3978
 
3991
3979
  // src/index.ts
@@ -4007,11 +3995,11 @@ var getFieldStatus = (field) => {
4007
3995
  };
4008
3996
 
4009
3997
  // src/components/form/FormAutocomplete.tsx
4010
- import { jsx as jsx29 } from "react/jsx-runtime";
3998
+ import { jsx as jsx28 } from "react/jsx-runtime";
4011
3999
  var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
4012
4000
  const field = useFieldContext();
4013
4001
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4014
- return /* @__PURE__ */ jsx29(
4002
+ return /* @__PURE__ */ jsx28(
4015
4003
  Autocomplete,
4016
4004
  {
4017
4005
  value: field.state.value,
@@ -4020,7 +4008,7 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
4020
4008
  onBlur: field.handleBlur,
4021
4009
  "aria-label": field.name,
4022
4010
  ...autocompleteProps,
4023
- renderInput: (parameters) => /* @__PURE__ */ jsx29(
4011
+ renderInput: (parameters) => /* @__PURE__ */ jsx28(
4024
4012
  TextField,
4025
4013
  {
4026
4014
  ...parameters,
@@ -4036,15 +4024,15 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
4036
4024
 
4037
4025
  // src/components/form/FormCheckbox.tsx
4038
4026
  import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
4039
- import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
4027
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
4040
4028
  var FormCheckbox = (props) => {
4041
4029
  const field = useFieldContext();
4042
4030
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4043
- return /* @__PURE__ */ jsxs17(FormControl, { component: "fieldset", children: [
4044
- /* @__PURE__ */ jsx30(
4031
+ return /* @__PURE__ */ jsxs16(FormControl, { component: "fieldset", children: [
4032
+ /* @__PURE__ */ jsx29(
4045
4033
  FormControlLabel,
4046
4034
  {
4047
- control: /* @__PURE__ */ jsx30(
4035
+ control: /* @__PURE__ */ jsx29(
4048
4036
  Checkbox,
4049
4037
  {
4050
4038
  name: field.name,
@@ -4058,18 +4046,18 @@ var FormCheckbox = (props) => {
4058
4046
  label: props.label ?? ""
4059
4047
  }
4060
4048
  ),
4061
- isTouched && hasError && /* @__PURE__ */ jsx30(FormHelperText, { error: hasError, children: helperText })
4049
+ isTouched && hasError && /* @__PURE__ */ jsx29(FormHelperText, { error: hasError, children: helperText })
4062
4050
  ] });
4063
4051
  };
4064
4052
 
4065
4053
  // src/components/form/FormDatePicker.tsx
4066
4054
  import { DatePicker } from "@mui/x-date-pickers-pro";
4067
4055
  import dayjs2 from "dayjs";
4068
- import { jsx as jsx31 } from "react/jsx-runtime";
4056
+ import { jsx as jsx30 } from "react/jsx-runtime";
4069
4057
  var FormDatePicker = (props) => {
4070
4058
  const field = useFieldContext();
4071
4059
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4072
- return /* @__PURE__ */ jsx31(
4060
+ return /* @__PURE__ */ jsx30(
4073
4061
  DatePicker,
4074
4062
  {
4075
4063
  name: field.name,
@@ -4093,11 +4081,11 @@ var FormDatePicker = (props) => {
4093
4081
  // src/components/form/FormDateTimePicker.tsx
4094
4082
  import { DateTimePicker } from "@mui/x-date-pickers-pro";
4095
4083
  import dayjs3 from "dayjs";
4096
- import { jsx as jsx32 } from "react/jsx-runtime";
4084
+ import { jsx as jsx31 } from "react/jsx-runtime";
4097
4085
  var FormDateTimePicker = (props) => {
4098
4086
  const field = useFieldContext();
4099
4087
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4100
- return /* @__PURE__ */ jsx32(
4088
+ return /* @__PURE__ */ jsx31(
4101
4089
  DateTimePicker,
4102
4090
  {
4103
4091
  name: field.name,
@@ -4121,11 +4109,11 @@ var FormDateTimePicker = (props) => {
4121
4109
  // src/components/form/FormNumberField.tsx
4122
4110
  import { TextField as TextField2 } from "@mui/material";
4123
4111
  import { NumericFormat } from "react-number-format";
4124
- import { jsx as jsx33 } from "react/jsx-runtime";
4112
+ import { jsx as jsx32 } from "react/jsx-runtime";
4125
4113
  var FormNumberField = ({ options, ...props }) => {
4126
4114
  const field = useFieldContext();
4127
4115
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4128
- return /* @__PURE__ */ jsx33(
4116
+ return /* @__PURE__ */ jsx32(
4129
4117
  NumericFormat,
4130
4118
  {
4131
4119
  customInput: TextField2,
@@ -4144,13 +4132,13 @@ var FormNumberField = ({ options, ...props }) => {
4144
4132
 
4145
4133
  // src/components/form/FormRadioGroup.tsx
4146
4134
  import { FormControl as FormControl2, FormControlLabel as FormControlLabel2, FormHelperText as FormHelperText2, FormLabel, Radio, RadioGroup } from "@mui/material";
4147
- import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
4135
+ import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
4148
4136
  var FormRadioGroup = ({ label, options, ...props }) => {
4149
4137
  const field = useFieldContext();
4150
4138
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4151
- return /* @__PURE__ */ jsxs18(FormControl2, { component: "fieldset", children: [
4152
- label && /* @__PURE__ */ jsx34(FormLabel, { component: "legend", children: label }),
4153
- /* @__PURE__ */ jsx34(
4139
+ return /* @__PURE__ */ jsxs17(FormControl2, { component: "fieldset", children: [
4140
+ label && /* @__PURE__ */ jsx33(FormLabel, { component: "legend", children: label }),
4141
+ /* @__PURE__ */ jsx33(
4154
4142
  RadioGroup,
4155
4143
  {
4156
4144
  name: field.name,
@@ -4159,30 +4147,30 @@ var FormRadioGroup = ({ label, options, ...props }) => {
4159
4147
  onBlur: field.handleBlur,
4160
4148
  "aria-label": field.name,
4161
4149
  ...props,
4162
- children: options.map((option) => /* @__PURE__ */ jsx34(
4150
+ children: options.map((option) => /* @__PURE__ */ jsx33(
4163
4151
  FormControlLabel2,
4164
4152
  {
4165
4153
  value: option.value,
4166
- control: /* @__PURE__ */ jsx34(Radio, {}),
4154
+ control: /* @__PURE__ */ jsx33(Radio, {}),
4167
4155
  label: option.label
4168
4156
  },
4169
4157
  option.value
4170
4158
  ))
4171
4159
  }
4172
4160
  ),
4173
- isTouched && hasError && /* @__PURE__ */ jsx34(FormHelperText2, { error: hasError, children: helperText })
4161
+ isTouched && hasError && /* @__PURE__ */ jsx33(FormHelperText2, { error: hasError, children: helperText })
4174
4162
  ] });
4175
4163
  };
4176
4164
 
4177
4165
  // src/components/form/FormSlider.tsx
4178
4166
  import { FormControl as FormControl3, FormHelperText as FormHelperText3, FormLabel as FormLabel2, Slider } from "@mui/material";
4179
- import { jsx as jsx35, jsxs as jsxs19 } from "react/jsx-runtime";
4167
+ import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
4180
4168
  var FormSlider = ({ label, ...props }) => {
4181
4169
  const field = useFieldContext();
4182
4170
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4183
- return /* @__PURE__ */ jsxs19(FormControl3, { component: "fieldset", children: [
4184
- label && /* @__PURE__ */ jsx35(FormLabel2, { children: label }),
4185
- /* @__PURE__ */ jsx35(
4171
+ return /* @__PURE__ */ jsxs18(FormControl3, { component: "fieldset", children: [
4172
+ label && /* @__PURE__ */ jsx34(FormLabel2, { children: label }),
4173
+ /* @__PURE__ */ jsx34(
4186
4174
  Slider,
4187
4175
  {
4188
4176
  name: field.name,
@@ -4193,13 +4181,13 @@ var FormSlider = ({ label, ...props }) => {
4193
4181
  ...props
4194
4182
  }
4195
4183
  ),
4196
- isTouched && hasError && /* @__PURE__ */ jsx35(FormHelperText3, { error: hasError, children: helperText })
4184
+ isTouched && hasError && /* @__PURE__ */ jsx34(FormHelperText3, { error: hasError, children: helperText })
4197
4185
  ] });
4198
4186
  };
4199
4187
 
4200
4188
  // src/components/form/FormSubmitButton.tsx
4201
4189
  import { Button as Button3 } from "@mui/material";
4202
- import { jsx as jsx36 } from "react/jsx-runtime";
4190
+ import { jsx as jsx35 } from "react/jsx-runtime";
4203
4191
  var FormSubmitButton = (props) => {
4204
4192
  const form = useFormContext();
4205
4193
  const handleClick = (event) => {
@@ -4207,7 +4195,7 @@ var FormSubmitButton = (props) => {
4207
4195
  event.stopPropagation();
4208
4196
  form.handleSubmit();
4209
4197
  };
4210
- return /* @__PURE__ */ jsx36(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => /* @__PURE__ */ jsx36(
4198
+ return /* @__PURE__ */ jsx35(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => /* @__PURE__ */ jsx35(
4211
4199
  Button3,
4212
4200
  {
4213
4201
  loading: isSubmitting,
@@ -4222,15 +4210,15 @@ var FormSubmitButton = (props) => {
4222
4210
 
4223
4211
  // src/components/form/FormSwitch.tsx
4224
4212
  import { FormControl as FormControl4, FormControlLabel as FormControlLabel3, FormHelperText as FormHelperText4, Switch } from "@mui/material";
4225
- import { jsx as jsx37, jsxs as jsxs20 } from "react/jsx-runtime";
4213
+ import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
4226
4214
  var FormSwitch = (props) => {
4227
4215
  const field = useFieldContext();
4228
4216
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4229
- return /* @__PURE__ */ jsxs20(FormControl4, { component: "fieldset", children: [
4230
- /* @__PURE__ */ jsx37(
4217
+ return /* @__PURE__ */ jsxs19(FormControl4, { component: "fieldset", children: [
4218
+ /* @__PURE__ */ jsx36(
4231
4219
  FormControlLabel3,
4232
4220
  {
4233
- control: /* @__PURE__ */ jsx37(
4221
+ control: /* @__PURE__ */ jsx36(
4234
4222
  Switch,
4235
4223
  {
4236
4224
  name: field.name,
@@ -4244,17 +4232,17 @@ var FormSwitch = (props) => {
4244
4232
  label: props.label ?? ""
4245
4233
  }
4246
4234
  ),
4247
- isTouched && hasError && /* @__PURE__ */ jsx37(FormHelperText4, { error: hasError, children: helperText })
4235
+ isTouched && hasError && /* @__PURE__ */ jsx36(FormHelperText4, { error: hasError, children: helperText })
4248
4236
  ] });
4249
4237
  };
4250
4238
 
4251
4239
  // src/components/form/FormTextField.tsx
4252
4240
  import { TextField as TextField3 } from "@mui/material";
4253
- import { jsx as jsx38 } from "react/jsx-runtime";
4241
+ import { jsx as jsx37 } from "react/jsx-runtime";
4254
4242
  var FormTextField = (props) => {
4255
4243
  const field = useFieldContext();
4256
4244
  const { isTouched, hasError, helperText } = getFieldStatus(field);
4257
- return /* @__PURE__ */ jsx38(
4245
+ return /* @__PURE__ */ jsx37(
4258
4246
  TextField3,
4259
4247
  {
4260
4248
  name: field.name,
@@ -4291,16 +4279,16 @@ var { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({
4291
4279
  });
4292
4280
 
4293
4281
  // src/index.ts
4294
- import { default as default3 } from "use-local-storage-state";
4295
- import { useTranslation as useTranslation7 } from "react-i18next";
4282
+ import { default as default2 } from "use-local-storage-state";
4283
+ import { useTranslation as useTranslation8 } from "react-i18next";
4296
4284
  import { t } from "i18next";
4297
4285
  export {
4298
4286
  ChipInputCell,
4299
4287
  Dropzone,
4300
4288
  EditableColumnHeader,
4301
4289
  FileViewer,
4290
+ Fullscreen,
4302
4291
  LayoutProvider,
4303
- PageHeader,
4304
4292
  Platform,
4305
4293
  RouterButton,
4306
4294
  RouterError,
@@ -4310,7 +4298,6 @@ export {
4310
4298
  RouterListItemButton,
4311
4299
  RouterNotFound,
4312
4300
  RouterTab,
4313
- TableContainer,
4314
4301
  TypographyWithIcon,
4315
4302
  rootRouteHead,
4316
4303
  t,
@@ -4324,9 +4311,9 @@ export {
4324
4311
  useGetFileMetas,
4325
4312
  useGetFileThumbnail,
4326
4313
  useLayoutForm,
4327
- default3 as useLocalStorageState,
4314
+ default2 as useLocalStorageState,
4328
4315
  useOpenFile,
4329
- useTranslation7 as useTranslation,
4316
+ useTranslation8 as useTranslation,
4330
4317
  useUpdateFileMeta,
4331
4318
  useUploadFile,
4332
4319
  uuidv72 as uuidv7,