@luminix/mui-cms 0.0.1-beta.8 → 0.0.1-beta.9

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/mui-cms.js CHANGED
@@ -1,20 +1,20 @@
1
- var Ct = Object.defineProperty;
2
- var At = (e, t, n) => t in e ? Ct(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
- var ue = (e, t, n) => At(e, typeof t != "symbol" ? t + "" : t, n);
1
+ var At = Object.defineProperty;
2
+ var vt = (e, t, n) => t in e ? At(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
+ var ue = (e, t, n) => vt(e, typeof t != "symbol" ? t + "" : t, n);
4
4
  import { jsx as r, jsxs as m, Fragment as T } from "react/jsx-runtime";
5
5
  import f from "lodash";
6
- import { Reducible as rt, model as ne, config as Z, collect as N, app as C, Plugin as at } from "@luminix/core";
7
- import { Outlet as vt, useParams as Dt, useNavigate as Ae, useSearchParams as W, Link as oe, Form as Tt } from "react-router-dom";
8
- import { useCollection as ot, PaginationProvider as Ft, usePagination as re, ModelForm as It, useApplyReducers as ve, LuminixProvider as Pt } from "@luminix/react";
9
- import { useMediaQuery as ie, Dialog as De, DialogTitle as Te, DialogContent as Fe, DialogContentText as Mt, DialogActions as Ie, Button as M, Snackbar as Bt, Alert as Et, IconButton as E, AlertTitle as Lt, Box as j, Unstable_Grid2 as Y, Fab as Ot, SpeedDial as Nt, SpeedDialIcon as Rt, SpeedDialAction as jt, ButtonGroup as qt, Popper as Wt, Grow as zt, Paper as Pe, ClickAwayListener as Ut, MenuList as Vt, MenuItem as G, AppBar as st, Toolbar as Yt, Typography as q, Avatar as Kt, Drawer as lt, Divider as se, Autocomplete as $t, TextField as ae, CircularProgress as Ht, Switch as Zt, Stack as B, FormControl as we, InputLabel as ke, Select as le, Badge as Me, Popover as Gt, Link as Se, Collapse as it, TableCell as K, RadioGroup as $e, FormControlLabel as de, Radio as pe, TableContainer as Qt, Table as Xt, TableHead as Jt, TableRow as _, Checkbox as Be, TableSortLabel as _t, Skeleton as He, TableBody as en, TableFooter as tn, Tabs as nn, Tab as Ze, Breadcrumbs as rn, List as an, ListItem as on, ListItemButton as sn, ListItemIcon as ct, ListItemText as ut, Menu as dt, CssBaseline as ln } from "@mui/material";
10
- import p, { useContext as pt, useMemo as cn } from "react";
11
- import { useTranslation as F, initReactI18next as un } from "react-i18next";
12
- import { Close as Ee, ArrowDropDown as dn, ChevronLeft as Le, ChevronRight as Oe, HighlightOffOutlined as Ge, AddCircleOutline as pn, FilterList as hn, Menu as mn, LastPage as fn, FirstPage as gn, Search as Qe, SwapVert as bn, ArrowUpward as yn, ArrowDownward as xn, MoreVert as ht, ExpandLess as wn, ExpandMore as kn, PeopleOutlined as Sn, CategoryOutlined as Cn, DashboardOutlined as An, Add as vn } from "@mui/icons-material";
13
- import { useTheme as Ne, styled as U, createTheme as Dn, ThemeProvider as Tn } from "@mui/material/styles";
14
- import { isAxiosError as Fn } from "axios";
6
+ import { Reducible as at, model as ne, config as Z, collect as N, app as C, Plugin as ot } from "@luminix/core";
7
+ import { Outlet as Dt, useParams as Tt, useNavigate as Ae, useSearchParams as W, Link as oe, Form as Ft } from "react-router-dom";
8
+ import { useCollection as st, PaginationProvider as It, usePagination as re, ModelForm as Pt, useApplyReducers as ve, LuminixProvider as Mt } from "@luminix/react";
9
+ import { useMediaQuery as ie, Dialog as De, DialogTitle as Te, DialogContent as Fe, DialogContentText as Bt, DialogActions as Ie, Button as M, Snackbar as Et, Alert as Lt, IconButton as E, AlertTitle as Ot, Box as j, Unstable_Grid2 as Y, Fab as Nt, SpeedDial as Rt, SpeedDialIcon as jt, SpeedDialAction as qt, ButtonGroup as Wt, Popper as zt, Grow as Ut, Paper as Pe, ClickAwayListener as Vt, MenuList as Yt, MenuItem as G, AppBar as lt, Toolbar as Kt, Typography as q, Avatar as $t, Drawer as it, Divider as se, Autocomplete as Ht, TextField as ae, CircularProgress as Zt, Switch as Gt, Stack as B, FormControl as we, InputLabel as ke, Select as le, Badge as Me, Popover as Qt, Link as Se, Collapse as ct, TableCell as K, RadioGroup as $e, FormControlLabel as de, Radio as pe, TableContainer as Xt, Table as Jt, TableHead as _t, TableRow as _, Checkbox as Be, TableSortLabel as en, Skeleton as He, TableBody as tn, TableFooter as nn, Tabs as rn, Tab as Ze, Breadcrumbs as an, List as on, ListItem as sn, ListItemButton as ln, ListItemIcon as ut, ListItemText as dt, Menu as pt, CssBaseline as cn } from "@mui/material";
10
+ import p, { useContext as ht, useMemo as un } from "react";
11
+ import { useTranslation as F, initReactI18next as dn } from "react-i18next";
12
+ import { Close as Ee, ArrowDropDown as pn, ChevronLeft as Le, ChevronRight as Oe, HighlightOffOutlined as Ge, AddCircleOutline as hn, FilterList as mn, Menu as fn, LastPage as gn, FirstPage as bn, Search as Qe, SwapVert as yn, ArrowUpward as xn, ArrowDownward as wn, MoreVert as mt, ExpandLess as kn, ExpandMore as Sn, PeopleOutlined as Cn, CategoryOutlined as An, DashboardOutlined as vn, Add as Dn } from "@mui/icons-material";
13
+ import { useTheme as Ne, styled as U, createTheme as Tn, ThemeProvider as Fn } from "@mui/material/styles";
14
+ import { isAxiosError as In } from "axios";
15
15
  import Xe from "react-dom";
16
16
  import z from "i18next";
17
- class In {
17
+ class Pn {
18
18
  constructor() {
19
19
  }
20
20
  getComponents() {
@@ -54,8 +54,8 @@ class In {
54
54
  );
55
55
  }
56
56
  }
57
- const Pn = rt(In), te = (e) => !(f.isUndefined(e) || f.isNull(e) || f.isEmpty(e));
58
- class Mn {
57
+ const Mn = at(Pn), te = (e) => !(f.isUndefined(e) || f.isNull(e) || f.isEmpty(e));
58
+ class Bn {
59
59
  getInputType(t) {
60
60
  switch (t) {
61
61
  case "int":
@@ -157,7 +157,7 @@ class Mn {
157
157
  }).includes(!0));
158
158
  }
159
159
  }
160
- const Bn = rt(Mn), En = {
160
+ const En = at(Bn), Ln = {
161
161
  open: !1,
162
162
  setOpen: () => {
163
163
  },
@@ -172,7 +172,7 @@ const Bn = rt(Mn), En = {
172
172
  showBackButton: !1,
173
173
  setShowBackButton: () => {
174
174
  }
175
- }, V = p.createContext(En), he = document.title, Ln = ({ children: e }) => {
175
+ }, V = p.createContext(Ln), he = document.title, On = ({ children: e }) => {
176
176
  const [t, n] = p.useState(!1), [a, s] = p.useState(""), [o, i] = p.useState(!1), [l, c] = p.useState(!1), d = Z("luminix.cms.layout", {}), u = ie((g) => g.breakpoints.up((d == null ? void 0 : d.breakpoint) || "md")), h = {
177
177
  open: t,
178
178
  setOpen: n,
@@ -188,23 +188,23 @@ const Bn = rt(Mn), En = {
188
188
  return p.useEffect(() => (document.title = a ? `${a} | ${Z("app.name", he)}` : Z("app.name", he), () => {
189
189
  document.title = he;
190
190
  }), [a]), /* @__PURE__ */ r(V.Provider, { value: h, children: e });
191
- }, mt = p.createContext({
191
+ }, ft = p.createContext({
192
192
  Model: null
193
- }), me = ({ Model: e, children: t }) => /* @__PURE__ */ r(mt.Provider, { value: { Model: e }, children: t }), ft = p.createContext({
193
+ }), me = ({ Model: e, children: t }) => /* @__PURE__ */ r(ft.Provider, { value: { Model: e }, children: t }), gt = p.createContext({
194
194
  isOpen: !1,
195
195
  dialog: () => Promise.reject(new Error("Trying to access DialogContext outside of DialogProvider")),
196
196
  dismissDialog: () => {
197
197
  },
198
198
  current: void 0
199
199
  });
200
- function On(e) {
200
+ function Nn(e) {
201
201
  const [t, n] = p.useState(e);
202
202
  return p.useEffect(() => {
203
203
  e && n(e);
204
204
  }, [e]), e || t;
205
205
  }
206
- function Nn({ children: e, ...t }) {
207
- const [{ current: n, resolve: a }, s] = p.useState({}), o = On(n), i = p.useCallback((u) => new Promise((h) => {
206
+ function Rn({ children: e, ...t }) {
207
+ const [{ current: n, resolve: a }, s] = p.useState({}), o = Nn(n), i = p.useCallback((u) => new Promise((h) => {
208
208
  s({
209
209
  current: typeof u == "string" ? { message: u } : u,
210
210
  resolve: h
@@ -214,7 +214,7 @@ function Nn({ children: e, ...t }) {
214
214
  }, d = () => {
215
215
  a && a(!0), s({});
216
216
  };
217
- return /* @__PURE__ */ m(ft.Provider, { value: {
217
+ return /* @__PURE__ */ m(gt.Provider, { value: {
218
218
  isOpen: !!n,
219
219
  current: n,
220
220
  dialog: i,
@@ -231,7 +231,7 @@ function Nn({ children: e, ...t }) {
231
231
  ...t,
232
232
  children: [
233
233
  (o == null ? void 0 : o.title) && /* @__PURE__ */ r(Te, { id: "alert-dialog-title", children: o.title }),
234
- /* @__PURE__ */ r(Fe, { children: /* @__PURE__ */ r(Mt, { id: "alert-dialog-description", children: o == null ? void 0 : o.message }) }),
234
+ /* @__PURE__ */ r(Fe, { children: /* @__PURE__ */ r(Bt, { id: "alert-dialog-description", children: o == null ? void 0 : o.message }) }),
235
235
  /* @__PURE__ */ m(Ie, { children: [
236
236
  (o == null ? void 0 : o.type) === "confirm" && /* @__PURE__ */ m(T, { children: [
237
237
  /* @__PURE__ */ r(M, { onClick: c, children: (o == null ? void 0 : o.cancelText) ?? l("No") }),
@@ -245,7 +245,7 @@ function Nn({ children: e, ...t }) {
245
245
  ] });
246
246
  }
247
247
  function v() {
248
- const { isBreakpointUp: e } = pt(V);
248
+ const { isBreakpointUp: e } = ht(V);
249
249
  return e;
250
250
  }
251
251
  const Re = p.createContext({
@@ -259,11 +259,11 @@ const Re = p.createContext({
259
259
  displacement: "8px",
260
260
  setDisplacement: () => {
261
261
  }
262
- }), Ce = N([]), Rn = (e) => {
262
+ }), Ce = N([]), jn = (e) => {
263
263
  Ce.push(
264
264
  typeof e == "string" ? { message: e } : e
265
265
  );
266
- }, jn = ({
266
+ }, qn = ({
267
267
  children: e,
268
268
  autoHideDuration: t = 6e3,
269
269
  variant: n,
@@ -271,7 +271,7 @@ const Re = p.createContext({
271
271
  sx: s,
272
272
  ...o
273
273
  }) => {
274
- const i = ot(Ce), l = v(), d = Ne().spacing(l ? 3 : 1), [u, h] = p.useState(), [g, y] = p.useState(d), { vertical: S = "bottom" } = a || {}, b = (w, k) => {
274
+ const i = st(Ce), l = v(), d = Ne().spacing(l ? 3 : 1), [u, h] = p.useState(), [g, y] = p.useState(d), { vertical: S = "bottom" } = a || {}, b = (w, k) => {
275
275
  k !== "clickaway" && h(void 0);
276
276
  };
277
277
  return p.useEffect(() => {
@@ -283,7 +283,7 @@ const Re = p.createContext({
283
283
  }
284
284
  }, [u, i]), /* @__PURE__ */ m(Re.Provider, { value: {
285
285
  isOpen: !!u,
286
- notify: Rn,
286
+ notify: jn,
287
287
  dismissNotification: b,
288
288
  notifications: i.all(),
289
289
  current: u,
@@ -292,7 +292,7 @@ const Re = p.createContext({
292
292
  }, children: [
293
293
  e,
294
294
  /* @__PURE__ */ r(
295
- Bt,
295
+ Et,
296
296
  {
297
297
  open: !!u,
298
298
  autoHideDuration: t,
@@ -304,7 +304,7 @@ const Re = p.createContext({
304
304
  },
305
305
  ...o,
306
306
  children: u && /* @__PURE__ */ m(
307
- Et,
307
+ Lt,
308
308
  {
309
309
  onClose: b,
310
310
  severity: u.severity,
@@ -324,7 +324,7 @@ const Re = p.createContext({
324
324
  /* @__PURE__ */ r(E, { "aria-label": "close", color: "inherit", size: "small", onClick: b, children: /* @__PURE__ */ r(Ee, {}) }, "close")
325
325
  ],
326
326
  children: [
327
- u.title && /* @__PURE__ */ r(Lt, { children: u.title }),
327
+ u.title && /* @__PURE__ */ r(Ot, { children: u.title }),
328
328
  u.message
329
329
  ]
330
330
  }
@@ -332,17 +332,17 @@ const Re = p.createContext({
332
332
  }
333
333
  )
334
334
  ] });
335
- }, qn = ({ children: e }) => {
335
+ }, Wn = ({ children: e }) => {
336
336
  const t = ie("(prefers-color-scheme: dark)");
337
337
  return /* @__PURE__ */ r(
338
- jn,
338
+ qn,
339
339
  {
340
340
  anchorOrigin: { vertical: "bottom", horizontal: "right" },
341
341
  variant: t ? "standard" : "filled",
342
- children: /* @__PURE__ */ r(Nn, { children: /* @__PURE__ */ r(Ln, { children: e }) })
342
+ children: /* @__PURE__ */ r(Rn, { children: /* @__PURE__ */ r(On, { children: e }) })
343
343
  }
344
344
  );
345
- }, Wn = (e, {
345
+ }, zn = (e, {
346
346
  Layout: t,
347
347
  Dashboard: n,
348
348
  ModelIndex: a,
@@ -350,7 +350,7 @@ const Re = p.createContext({
350
350
  /* Error */
351
351
  }, o) => [
352
352
  {
353
- element: /* @__PURE__ */ r(qn, { children: /* @__PURE__ */ r(t, { children: /* @__PURE__ */ r(vt, {}) }) }),
353
+ element: /* @__PURE__ */ r(Wn, { children: /* @__PURE__ */ r(t, { children: /* @__PURE__ */ r(Dt, {}) }) }),
354
354
  // errorElement: (
355
355
  // <Error />
356
356
  // ),
@@ -364,7 +364,7 @@ const Re = p.createContext({
364
364
  {
365
365
  path: "/" + f.kebabCase(l.plural()),
366
366
  name: `luminix.cms.${i}.index`,
367
- element: /* @__PURE__ */ r(me, { Model: l, children: /* @__PURE__ */ r(Ft, { factory: l.query, children: /* @__PURE__ */ r(a, {}) }) })
367
+ element: /* @__PURE__ */ r(me, { Model: l, children: /* @__PURE__ */ r(It, { factory: l.query, children: /* @__PURE__ */ r(a, {}) }) })
368
368
  },
369
369
  {
370
370
  path: "/" + f.kebabCase(l.plural()) + "/create",
@@ -386,10 +386,10 @@ function je(e) {
386
386
  t("");
387
387
  }), [e, t]);
388
388
  }
389
- const zn = () => {
389
+ const Un = () => {
390
390
  const { t: e } = F();
391
391
  return je(e("Dashboard")), /* @__PURE__ */ r(T, { children: "Dashboard" });
392
- }, Un = ({ error: e }) => /* @__PURE__ */ m("div", { children: [
392
+ }, Vn = ({ error: e }) => /* @__PURE__ */ m("div", { children: [
393
393
  /* @__PURE__ */ r("h1", { children: "Ops..." }),
394
394
  /* @__PURE__ */ r("p", { children: "Something went wrong" }),
395
395
  C().hasDebugModeEnabled() && e && /* @__PURE__ */ r(T, { children: /* @__PURE__ */ m("pre", { style: { whiteSpace: "pre-wrap" }, children: [
@@ -399,14 +399,14 @@ const zn = () => {
399
399
  ] }) })
400
400
  ] });
401
401
  function L(e, t) {
402
- const { layout: n } = pt(V);
403
- return cn(() => f.get(n, e, t), [n, e, t]);
402
+ const { layout: n } = ht(V);
403
+ return un(() => f.get(n, e, t), [n, e, t]);
404
404
  }
405
- const Vn = U("div")(({ theme: e }) => ({
405
+ const Yn = U("div")(({ theme: e }) => ({
406
406
  padding: e.spacing(0, 1),
407
407
  // necessary for content to be below app bar
408
408
  ...e.mixins.toolbar
409
- })), Yn = ({ children: e, slotProps: t, ...n }) => {
409
+ })), Kn = ({ children: e, slotProps: t, ...n }) => {
410
410
  const {
411
411
  DesktopPageTitle: a,
412
412
  ["Layout.AppBar"]: s,
@@ -435,7 +435,7 @@ const Vn = U("div")(({ theme: e }) => ({
435
435
  },
436
436
  ...d,
437
437
  children: [
438
- /* @__PURE__ */ r(Vn, { style: { height: i } }),
438
+ /* @__PURE__ */ r(Yn, { style: { height: i } }),
439
439
  /* @__PURE__ */ r(a, {}),
440
440
  /* @__PURE__ */ r(j, { sx: { p: { xs: 1, sm: 2, md: 3 } }, children: e })
441
441
  ]
@@ -443,23 +443,23 @@ const Vn = U("div")(({ theme: e }) => ({
443
443
  )
444
444
  ] });
445
445
  };
446
- function Kn() {
446
+ function $n() {
447
447
  const { setShowSearch: e } = p.useContext(V);
448
448
  p.useEffect(() => (e(!0), () => {
449
449
  e(!1);
450
450
  }), [e]);
451
451
  }
452
452
  function $() {
453
- const { Model: e } = p.useContext(mt);
453
+ const { Model: e } = p.useContext(ft);
454
454
  return e;
455
455
  }
456
- const $n = () => {
456
+ const Hn = () => {
457
457
  const e = $(), {
458
458
  data: t,
459
459
  error: n,
460
460
  loading: a
461
461
  } = re();
462
- je(e.plural()), Kn();
462
+ je(e.plural()), $n();
463
463
  const s = v(), {
464
464
  Breadcrumbs: o,
465
465
  ["ModelIndex.Pagination"]: i,
@@ -510,7 +510,7 @@ const $n = () => {
510
510
  ) })
511
511
  ] });
512
512
  };
513
- function Hn() {
513
+ function Zn() {
514
514
  const { setShowBackButton: e } = p.useContext(V);
515
515
  p.useEffect(() => (e(!0), () => {
516
516
  e(!1);
@@ -522,7 +522,7 @@ function X(e) {
522
522
  if (!(t instanceof Error))
523
523
  throw t;
524
524
  e({
525
- message: Fn(t) ? ((n = t.response) == null ? void 0 : n.data.message) ?? t.message : t.message,
525
+ message: In(t) ? ((n = t.response) == null ? void 0 : n.data.message) ?? t.message : t.message,
526
526
  severity: "error"
527
527
  });
528
528
  };
@@ -530,24 +530,24 @@ function X(e) {
530
530
  function qe() {
531
531
  return p.useContext(Re).notify;
532
532
  }
533
- function Zn() {
533
+ function Gn() {
534
534
  const e = qe();
535
535
  return p.useCallback((t) => {
536
536
  X(e)(t);
537
537
  }, [e]);
538
538
  }
539
- const Gn = ({ create: e = !1 }) => {
540
- const [t, n] = p.useState(), { id: a } = Dt(), { t: s } = F(), o = qe(), i = Ae(), l = $(), c = L("breakpoint", "md");
539
+ const Qn = ({ create: e = !1 }) => {
540
+ const [t, n] = p.useState(), { id: a } = Tt(), { t: s } = F(), o = qe(), i = Ae(), l = $(), c = L("breakpoint", "md");
541
541
  je(
542
542
  t != null && t.exists ? s("Edit :model “:label“", { model: l.singular(), label: (t == null ? void 0 : t.getLabel()) || "..." }) : s("Create :model", { model: l.singular() })
543
- ), Hn();
543
+ ), Zn();
544
544
  const d = C("cms").getComponent("Breadcrumbs");
545
545
  p.useEffect(() => {
546
546
  e ? n(new l()) : l.find(a).then((y) => n(y ?? void 0));
547
547
  }, [a, l, e]);
548
548
  const u = p.useCallback(() => {
549
549
  o(s(":model saved successfully", { model: l.singular() })), t != null && t.wasRecentlyCreated && i(`/${f.kebabCase(l.plural())}/${t.getKey()}`);
550
- }, [o, i, l, t, s]), h = Zn(), g = p.useMemo(() => C("cms").getModelFormProps(t), [t]);
550
+ }, [o, i, l, t, s]), h = Gn(), g = p.useMemo(() => C("cms").getModelFormProps(t), [t]);
551
551
  return t ? /* @__PURE__ */ m(Y, { container: !0, children: [
552
552
  /* @__PURE__ */ r(Y, { xs: 12, children: /* @__PURE__ */ r(
553
553
  d,
@@ -564,7 +564,7 @@ const Gn = ({ create: e = !1 }) => {
564
564
  xs: 12,
565
565
  [c]: 6,
566
566
  children: /* @__PURE__ */ r(
567
- It,
567
+ Pt,
568
568
  {
569
569
  submitText: "Save",
570
570
  ...g,
@@ -577,7 +577,7 @@ const Gn = ({ create: e = !1 }) => {
577
577
  )
578
578
  ] }) : null;
579
579
  };
580
- function Qn(e) {
580
+ function Xn(e) {
581
581
  const {
582
582
  setDisplacement: t
583
583
  } = p.useContext(Re), n = Ne(), a = v(), s = n.spacing(a ? 3 : 1), o = e === !1 ? s : n.spacing(e);
@@ -585,24 +585,24 @@ function Qn(e) {
585
585
  t(s);
586
586
  }), [o, s]);
587
587
  }
588
- function Xn() {
589
- return p.useContext(ft).dialog;
588
+ function Jn() {
589
+ return p.useContext(gt).dialog;
590
590
  }
591
591
  function We() {
592
- const e = Ae(), t = qe(), n = Xn(), { t: a } = F(), { refresh: s } = re();
592
+ const e = Ae(), t = qe(), n = Jn(), { t: a } = F(), { refresh: s } = re();
593
593
  return { navigate: e, notify: t, dialog: n, t: a, refresh: s };
594
594
  }
595
- const Jn = U(Ot)(({ theme: e }) => ({
595
+ const _n = U(Nt)(({ theme: e }) => ({
596
596
  position: "fixed",
597
597
  bottom: e.spacing(2),
598
598
  right: e.spacing(2)
599
- })), _n = U(Nt)(({ theme: e }) => ({
599
+ })), er = U(Rt)(({ theme: e }) => ({
600
600
  position: "fixed",
601
601
  bottom: e.spacing(2),
602
602
  right: e.spacing(2)
603
- })), er = ({ variant: e = "default" }) => {
603
+ })), tr = ({ variant: e = "default" }) => {
604
604
  const t = $(), n = v(), [a] = W(), s = a.get("tab") ?? "all", [o, i] = p.useState(!1), l = p.useRef(null), [c, d] = p.useState(0), u = We(), h = p.useMemo(() => C("cms").getStaticActions(t, s), [t, s]);
605
- if (Qn(
605
+ if (Xn(
606
606
  e === "fab" && h.length > 0 ? n ? 12 : 10 : !1
607
607
  ), h.length === 0)
608
608
  return null;
@@ -615,7 +615,7 @@ const Jn = U(Ot)(({ theme: e }) => ({
615
615
  };
616
616
  return e === "fab" ? h.length === 1 ? Xe.createPortal(
617
617
  /* @__PURE__ */ r(
618
- Jn,
618
+ _n,
619
619
  {
620
620
  color: "primary",
621
621
  onClick: () => h[0].callback(u),
@@ -625,16 +625,16 @@ const Jn = U(Ot)(({ theme: e }) => ({
625
625
  document.body
626
626
  ) : Xe.createPortal(
627
627
  /* @__PURE__ */ r(
628
- _n,
628
+ er,
629
629
  {
630
630
  ariaLabel: `actions for ${t.singular()}`,
631
- icon: /* @__PURE__ */ r(Rt, {}),
631
+ icon: /* @__PURE__ */ r(jt, {}),
632
632
  color: "primary",
633
633
  onClose: () => i(!1),
634
634
  onOpen: () => i(!0),
635
635
  open: o,
636
636
  children: h.map((b) => /* @__PURE__ */ r(
637
- jt,
637
+ qt,
638
638
  {
639
639
  icon: b.icon || b.label.charAt(0).toUpperCase(),
640
640
  tooltipTitle: b.label,
@@ -647,7 +647,7 @@ const Jn = U(Ot)(({ theme: e }) => ({
647
647
  document.body
648
648
  ) : /* @__PURE__ */ m(T, { children: [
649
649
  /* @__PURE__ */ m(
650
- qt,
650
+ Wt,
651
651
  {
652
652
  variant: "contained",
653
653
  ref: l,
@@ -664,27 +664,27 @@ const Jn = U(Ot)(({ theme: e }) => ({
664
664
  "aria-label": `select ${t.singular()} actions`,
665
665
  "aria-haspopup": "menu",
666
666
  onClick: y,
667
- children: /* @__PURE__ */ r(dn, {})
667
+ children: /* @__PURE__ */ r(pn, {})
668
668
  }
669
669
  )
670
670
  ]
671
671
  }
672
672
  ),
673
673
  /* @__PURE__ */ r(
674
- Wt,
674
+ zt,
675
675
  {
676
676
  open: o,
677
677
  anchorEl: l.current,
678
678
  role: void 0,
679
679
  transition: !0,
680
680
  children: ({ TransitionProps: b, placement: w }) => /* @__PURE__ */ r(
681
- zt,
681
+ Ut,
682
682
  {
683
683
  ...b,
684
684
  style: {
685
685
  transformOrigin: w === "bottom" ? "center top" : "center bottom"
686
686
  },
687
- children: /* @__PURE__ */ r(Pe, { children: /* @__PURE__ */ r(Ut, { onClickAway: S, children: /* @__PURE__ */ r(Vt, { id: "split-button-menu", children: h.map((k, x) => /* @__PURE__ */ r(
687
+ children: /* @__PURE__ */ r(Pe, { children: /* @__PURE__ */ r(Vt, { onClickAway: S, children: /* @__PURE__ */ r(Yt, { id: "split-button-menu", children: h.map((k, x) => /* @__PURE__ */ r(
688
688
  G,
689
689
  {
690
690
  selected: x === c,
@@ -714,21 +714,21 @@ function ze() {
714
714
  }
715
715
  };
716
716
  }
717
- function gt() {
717
+ function bt() {
718
718
  const { currentPage: e } = p.useContext(V);
719
719
  return e;
720
720
  }
721
- function tr() {
721
+ function nr() {
722
722
  const { showSearch: e } = p.useContext(V);
723
723
  return e;
724
724
  }
725
- const nr = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABbWlDQ1BpY2MAACiRdZG9S0JRGMZ/aqWU0VBDRIOBRYORFERj2eAiIWaQ1aI3PwI/LvcqIa1BS4PQELX0NfQf1Bq0FgRBEUQ0Nve1hNzeo4ISdS7nvj+ec56Xc54D9lBWy5ltfsjli0YkGPAsxZY9zldcdADjDMU1U58Nh0P8O77usal6N6Z6/b/vz9G1ljQ1sLmEpzTdKArPCIc2irriHeE+LRNfEz4S9hlyQOFrpSfq/KI4XecPxUY0Mgd21dOTbuFEC2sZIyc8KuzNZUta4zzqJu5kfnFB6oDMQUwiBAngIUGJdbIUGZOal8z+9vlrvnkK4tHkr1PGEEeajHh9opaka1JqSvSkfFnKKvffeZqpyYl6d3cA2p8t630YnLtQrVjW97FlVU/A8QSX+aa/IDlNf4peaWreQ+jZgvOrppbYg4tt6H/U40a8Jjlk2lMpeDuD7hj03kLnSj2rxjqnDxDdlCe6gf0DGJH9Pas/3QVn+hiI/rEAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAWBSURBVFhHxZl/TFtVFMe/pZQOGMIA0W3iBgOloLIBzrkZJsuWmCwah/8sYW4my0QYc1NijM5o1MQ4/3B/CUb/0Bn+mTHzD4PjRxEUxEGmcWb8VsbPTTYYDBjQFlrPubTQ0va9+6qdJ3lp+t69537eOfeec+59OpAklpWvQkhICV0FsNvT4XCE8X0tYrPb8WBsLL7L34eoMPnukxYrjpprYe4fgEGvtxJDOzFU0PXJYHHRnC6x/NNwAqnQGY35WFiAY35eC9dSWwv1Ld+zB/kPpEr3H52dRVFNLRoGBxEeGir66fhXr4fDYjlHfwv4bjHD0Q1pxSsbWglu27q1eDpl08pHfv8PT0+jsLoGLdeuLcFxY2EgupxMxQx4iC0XqDiooz4kBCeys2GgXxnpnbiFF6urcenGDQ84j76LTC8woClQt7JCC73t3k3JeDIxUYYN7WNjOFJVjZ7xcf9wpMnJZGLARedLqfds5HA4EGkw4DhZT6fTqWr4dWREuHVwagqrnHNOpZNcK39K5sgNh0xp2JyQ4K/J0v3m4WFyaw3G5uZgpEUgKwFbb4GslxARgZItW1THqunrQ4m5DtNWq/Q8dSkNGJDDysGMDGyMjlYE/LanB6X1DZijuRoquYjcFQYEOE9BOZnADj/ysF84O1n4y8uXcbKxCdye4TiYuwvPWjXogAB5oMLNmYgP5xjvWzj4nu3sQkZ8HPQ67/DDcAzeTatZSTQDMtxD8fHYn5ampBc71q9H5XP5YBCOle4SQiueXf5mY6MIO0pW1AzIoeV4dpYIL0qitFJnCa60oQHfdHUrxkLWrwmQU9rO+xPxbKp8vl35ElwclJjNOH/liiqcZkB2DRkQH1xooUCrF65ZF7ka+1JTRLpTEy4OXqLi4Ee34kCtjyYLMlDj0BDqBwYI1AFek2W7d1OFpA739+3bOEKB+sLVq1KWc4FrAuTQwQUBXzM0j157NAf7KZOoCae2w1VV+H3kuiY41qv+6m6j302Zg4Un+d7kZJTm5Kix4c+JCRys/F7ASeZfD53SgGy9A+kmMUjqmjX4aGcuwlRyKocQhmsbHQ0ITtqCHMcYZteGDTDFxeLjvDzcExmpaL3fqHJ5nuD+IgsGYjmXcqk5yBE/JSZGWO7D3FyCjFOE44VUVGvGGK1apXioqMT5UAqQ499TSUlYTcFZDa62rx/HKM7dCqBy8QWsCsjWuy8qCgU0/9SksrcXL9fVYdY2r7ms8qdbEZDhWN7Zvl1AKsm57m68SmWVjaytlFuVdPh65ncVczKPNhpxelee6layor0dJ36oF+WUTEbxBeLvnpcFecXaFux4JiUFrz+2VSwMJfns0h94t7lZNNFL7EuUdPl65gXIC6IwMxPvPbFDtJ+g/XIMWdKXnL54EadaWxFK9R7n6WCIh4ut5KKta+/Fyce3iRru/eZfMDg56TWu69mpllYYggjHA3tY0E6ABaZ0Ebt4L8HVbgYVp+7Cm6W3m5rwObnWSFklOHZbHtEDkA5vkBwTLazXT5ZjN7u7jt3/xk+N+KqtTXPS93KD5A0PF/Mq7Lx5U1jlWFYWktx2bDM2G16pr8eZOwjH7+AZZsh9Pw8Ni3dzX5FTlBVKKACf7ehCxL/b60vabbmZ5xyk+yvDyjidBHBeNff3I8Lgteg1D6i1g9eId7mFFA4xXAVziX6nLed6Ea9Mcn1mRjzjovQoWU7L/kGrdWTaM+DSkSqX8nzIw3Bv0YkAn6m4Tj5llAWhzTwDdohjVxIG7KAqmE+hvu7s/F/hnEwdDHiGz4RdwoG4liwnc94XBIstq1xk+oIBy/jAms6EFw+w6YbaXiOYYGw5ZnEeopeLTEWfIYzOzxAHAv0M8Z9A63T8GaLN7TOE5R/LwhBxBS+RxAAAAABJRU5ErkJggg==", rr = "data:image/png;base64,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";
726
- function bt() {
725
+ const rr = "data:image/png;base64,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", ar = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAABbWlDQ1BpY2MAACiRdZG9S0JRGMZ/aqWU0VBDRIOBRYORFERj2eAiIWaQ1aI3PwI/LvcqIa1BS4PQELX0NfQf1Bq0FgRBEUQ0Nve1hNzeo4ISdS7nvj+ec56Xc54D9lBWy5ltfsjli0YkGPAsxZY9zldcdADjDMU1U58Nh0P8O77usal6N6Z6/b/vz9G1ljQ1sLmEpzTdKArPCIc2irriHeE+LRNfEz4S9hlyQOFrpSfq/KI4XecPxUY0Mgd21dOTbuFEC2sZIyc8KuzNZUta4zzqJu5kfnFB6oDMQUwiBAngIUGJdbIUGZOal8z+9vlrvnkK4tHkr1PGEEeajHh9opaka1JqSvSkfFnKKvffeZqpyYl6d3cA2p8t630YnLtQrVjW97FlVU/A8QSX+aa/IDlNf4peaWreQ+jZgvOrppbYg4tt6H/U40a8Jjlk2lMpeDuD7hj03kLnSj2rxjqnDxDdlCe6gf0DGJH9Pas/3QVn+hiI/rEAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAUfSURBVFhHzZhdTFxFFMfPwsKypUCBlAS2XWyKfPSB0qZay6ql6NK1NE3TJjWxD/pgfCD6Uq2JMcZYY1RelKrVWmtTqTEmYuqTJiYWGwVpwkLLZwKWBhXS8lEEkd1l2fX8Z7lm6Z17996rLp5kumQ6d+Z3/3POmXPHRmyRaDSDf562ER2NEm3h33T0m7WfZ2Zof8uXNBcKUYqNZ0lgi5EIrXM46H2vl2rcGzE6xK2f2wVu79lstoCd4Zzo4OkOYUTiaTFKbic7/TS1sEAZdrt8QFxvaGmJCjIz6XSdl3YVFSn/A2Gqllt1NBo9ipkaAMfKCbMK6L95ky4ODZHDAFyQ4Yqzs+nDvXVUVVCwvLLqB4I1pPA/jytgVuF4F6iJ1VsIhxO+YIDHlObmUnP9Pj04hfYJO0NVqNhNdlwaHaVvb9xIqB5eYBsrdsa3VyhowCqwxYkdRmcm+BLUW2IV9SYCXLWriD6oq6NC9j2DZsBhEsx0cWiYOsbHyZGaqjkScLVuN8N5KTcDCcO46b10wll+DwbpHb9fN6X8yXAHS0ro7do9tDbdfPb6R4DNff00OD1NTslGICsgIB6rqKDG3Q8aSj0yRSwDjs/P09meHkrX2NoIJ+GGbVX0iscjW9dwn2XA091X6de5Oal6OCF8m+6iR8vLhcKccFVACCr4bQmnHL30ZuOH1U+rplvZgSNt3xctNL+4qOl/OE3CDCoz9EP5N3nrD5WW6gJaUrCps5OmAwGpegoQIldmgFvD8Aia/Zs3y4as6DMN2PbbGH02MIgCgxChKAoyJH4o2zZsfc5ycbAnVhwkBDS9xT+NjYm8B0CcqeN/zNNXw8MiUcugFAKlODjD5+/OwsKEYMoA04B3zny89Xtq7uvTjGaMB5wray195POJo86Mmd7i+MlPdXXT+d5e3RwHlTfl5NDHj/hoS36+GTYxFtWMYZvkWk+x77hAaLxyRVe5AMOV5+WJysUKnGlAnByIztHZWTp+qVX4oFbljFNk6/r19AnD3c25zqoZVhARiLJqYGqKnmttpV84SaelyB/HS+zkKvlCfb3RskqT33CQIDnX8/cG6rieiQmya8Ah9XiLi+mU92HTlYuM0nCQfDMyQvDBWa5gtOCg3AFOvk0P1VKWhcrFMiDA4H/prJoe3GE+tt7iE0JW3cgWN9Ind6K4J6MUpRNt7XSdt1gGh4McyqGsOsnK/ZtwwNDd4hneztfa2+nzwUFprgNckOGerKykV+/3SF/AiEp6YzQBv74+Qm90dFDf5CStSUtTzYEiKMSR/cz27fTirvs0043qQZMd0ig+19NLL1y+LBTBN8QMVy78lf/31DiHw9yev/ceOrZjh8klzQ1X+eDVW7fY59oE0MueanJzWgGMYoBDO8GV8n8NhzVVgJ/2D9AER+2RsjLxgd3NwEpCVioWFJpPba00J4XF0SofRLRmss+5s7PopR9+jJXrrOYS+1sa132NNbsFfLJMpWBZfp5Y+92uLhq+fVuohyrYydBII8mEA4cK0OPaIADDEb4pYDhEKk4FXJEd4O/bZJtqi6Ga4msoEBDFqII9Lley2cR6KkBcPsKwrYA7yxc9cfd3SYdUbXG+0ykCAkfWHZeLSYfDggBc8X2IG6hs/vJ6nVPJAxti/rgqZLFFw0gj1/DxrhhvbZQL0/iu1fz7GhQ8H69QKue8mo3iQvv/YOegoJNby2rKpLE2mGKXifyHg9uz3Lq4BTUeSEY31vZzOwYmbOFfRuevM6ot++oAAAAASUVORK5CYII=";
726
+ function yt() {
727
727
  const { showBackButton: e } = p.useContext(V);
728
728
  return e;
729
729
  }
730
- const ar = U(
731
- st,
730
+ const or = U(
731
+ lt,
732
732
  { shouldForwardProp: (e) => !["open", "drawerWidth", "height"].includes(String(e)) }
733
733
  )(({ theme: e, open: t, drawerWidth: n, height: a }) => ({
734
734
  zIndex: e.zIndex.drawer + 1,
@@ -745,19 +745,19 @@ const ar = U(
745
745
  duration: e.transitions.duration.enteringScreen
746
746
  })
747
747
  }
748
- })), or = U(
749
- st,
748
+ })), sr = U(
749
+ lt,
750
750
  { shouldForwardProp: (e) => !["open", "drawerWidth", "height"].includes(String(e)) }
751
- )(({ height: e }) => ({ height: e })), sr = ({ slots: e = {}, ...t }) => {
752
- const n = v(), a = ie("(prefers-color-scheme: dark)"), s = n ? ar : or, {
751
+ )(({ height: e }) => ({ height: e })), lr = ({ slots: e = {}, ...t }) => {
752
+ const n = v(), a = ie("(prefers-color-scheme: dark)"), s = n ? or : sr, {
753
753
  ["Layout.AppBar.MenuButton"]: o,
754
754
  ["Layout.SearchBar"]: i,
755
755
  ["Layout.BackButton"]: l
756
- } = C("cms").getComponents(), { open: c } = ze(), d = tr(), u = bt(), h = L("appBar.height"), g = L("drawer.width", 280), {
756
+ } = C("cms").getComponents(), { open: c } = ze(), d = nr(), u = yt(), h = L("appBar.height"), g = L("drawer.width", 280), {
757
757
  start: y = null,
758
758
  //: title = config('app.name', document.title),
759
759
  end: S = null
760
- } = e, b = gt();
760
+ } = e, b = bt();
761
761
  return /* @__PURE__ */ r(
762
762
  s,
763
763
  {
@@ -765,7 +765,7 @@ const ar = U(
765
765
  height: h,
766
766
  drawerWidth: g,
767
767
  ...t,
768
- children: /* @__PURE__ */ m(Yt, { children: [
768
+ children: /* @__PURE__ */ m(Kt, { children: [
769
769
  (n && !c || !n && !u) && /* @__PURE__ */ r(o, {}),
770
770
  !n && u && /* @__PURE__ */ r(l, {}),
771
771
  n ? null : y,
@@ -788,9 +788,9 @@ const ar = U(
788
788
  children: [
789
789
  d && /* @__PURE__ */ r(i, {}),
790
790
  S || /* @__PURE__ */ r(
791
- Kt,
791
+ $t,
792
792
  {
793
- src: a ? nr : rr,
793
+ src: a ? rr : ar,
794
794
  alt: "Luminix",
795
795
  variant: "square",
796
796
  sx: {
@@ -807,7 +807,7 @@ const ar = U(
807
807
  }
808
808
  );
809
809
  };
810
- function lr(e) {
810
+ function ir(e) {
811
811
  return /* @__PURE__ */ r(
812
812
  E,
813
813
  {
@@ -836,8 +836,8 @@ const Je = (e, t) => ({
836
836
  overflowX: "hidden",
837
837
  width: `calc(${e.spacing(9)} + 1px)`,
838
838
  [e.breakpoints.up("sm")]: { width: `calc(${e.spacing(10)} + 1px)` }
839
- }), ir = U(
840
- lt,
839
+ }), cr = U(
840
+ it,
841
841
  { shouldForwardProp: (e) => !["open", "width"].includes(String(e)) }
842
842
  )(({ theme: e, open: t, width: n }) => ({
843
843
  flexShrink: 0,
@@ -851,18 +851,18 @@ const Je = (e, t) => ({
851
851
  ..._e(e),
852
852
  "& .MuiDrawer-paper": _e(e)
853
853
  }
854
- })), cr = U(
855
- lt,
854
+ })), ur = U(
855
+ it,
856
856
  { shouldForwardProp: (e) => e !== "width" }
857
- )(() => ({})), ur = U("div")(({ theme: e }) => ({
857
+ )(() => ({})), dr = U("div")(({ theme: e }) => ({
858
858
  display: "flex",
859
859
  alignItems: "center",
860
860
  justifyContent: "space-between",
861
861
  padding: e.spacing(0, 1),
862
862
  // necessary for content to be below app bar
863
863
  ...e.mixins.toolbar
864
- })), dr = (e) => {
865
- const t = Ne(), n = v(), { open: a, handleDrawerClose: s } = ze(), o = n ? ir : cr, i = L("drawer.width", 280), l = L("appBar.height"), c = C("cms").getComponent("RecursiveList"), d = C("cms").getMenuItems();
864
+ })), pr = (e) => {
865
+ const t = Ne(), n = v(), { open: a, handleDrawerClose: s } = ze(), o = n ? cr : ur, i = L("drawer.width", 280), l = L("appBar.height"), c = C("cms").getComponent("RecursiveList"), d = C("cms").getMenuItems();
866
866
  return /* @__PURE__ */ m(
867
867
  o,
868
868
  {
@@ -879,7 +879,7 @@ const Je = (e, t) => ({
879
879
  },
880
880
  ...e,
881
881
  children: [
882
- /* @__PURE__ */ r(ur, { style: { height: l }, children: /* @__PURE__ */ r(E, { onClick: s, children: t.direction === "ltr" ? /* @__PURE__ */ r(Le, {}) : /* @__PURE__ */ r(Oe, {}) }) }),
882
+ /* @__PURE__ */ r(dr, { style: { height: l }, children: /* @__PURE__ */ r(E, { onClick: s, children: t.direction === "ltr" ? /* @__PURE__ */ r(Le, {}) : /* @__PURE__ */ r(Oe, {}) }) }),
883
883
  /* @__PURE__ */ r(se, {}),
884
884
  /* @__PURE__ */ r(j, { sx: { flexGrow: 1, overflowY: "auto", overflowX: "hidden" }, children: /* @__PURE__ */ r(
885
885
  c,
@@ -892,8 +892,8 @@ const Je = (e, t) => ({
892
892
  ]
893
893
  }
894
894
  );
895
- }, pr = () => {
896
- const e = gt(), t = L("breakpoint", "md"), n = bt(), {
895
+ }, hr = () => {
896
+ const e = bt(), t = L("breakpoint", "md"), n = yt(), {
897
897
  ["Layout.BackButton"]: a
898
898
  } = C("cms").getComponents();
899
899
  return /* @__PURE__ */ m(
@@ -947,17 +947,17 @@ const Je = (e, t) => ({
947
947
  },
948
948
  setIsRelation: () => {
949
949
  }
950
- }), hr = (e) => {
950
+ }), mr = (e) => {
951
951
  if (!Array.isArray(e))
952
952
  return e;
953
953
  let t;
954
954
  return f.isEmpty(e) ? t = "" : t = e[0], t;
955
- }, mr = (e) => {
955
+ }, fr = (e) => {
956
956
  if (Array.isArray(e))
957
957
  return e;
958
958
  let t;
959
959
  return f.isEmpty(e) ? t = [] : t = [e, ""], t;
960
- }, fr = async (e, t, n) => {
960
+ }, gr = async (e, t, n) => {
961
961
  const a = e.getSchema().relations[t], s = ne().make(a.model), o = s.getSchema().primaryKey, i = [];
962
962
  for (const l of n) {
963
963
  const { data: c } = await s.where(o, l).get();
@@ -965,12 +965,12 @@ const Je = (e, t) => ({
965
965
  }
966
966
  return i;
967
967
  };
968
- function gr(e, t) {
968
+ function br(e, t) {
969
969
  const n = C("filter"), { Model: a, setColumnsFilter: s } = p.useContext(Ue), [o, i] = p.useState(t.key), [l, c] = p.useState(t.operator), [d, u] = p.useState(t.type), [h, g] = p.useState(t.value), [y, S] = p.useState(t.nullable), [b, w] = p.useState(t.is_relation), k = p.useMemo(() => n.getFilterableColumns(a), [a]), x = (O) => () => {
970
970
  s((I) => I.filter((D, H) => H !== O));
971
971
  }, A = async (O) => {
972
- const I = O.target.value, D = k.find((St) => St.key === I), H = (D == null ? void 0 : D.type) ?? "text", kt = (D == null ? void 0 : D.nullable) ?? !1, Ke = (D == null ? void 0 : D.is_relation) ?? !1;
973
- Ke ? (c("relation"), g([])) : b && c("equals"), w(Ke), S(kt), H !== d && (["boolean"].includes(n.getInputType(H)) && c("equals"), g(() => {
972
+ const I = O.target.value, D = k.find((Ct) => Ct.key === I), H = (D == null ? void 0 : D.type) ?? "text", St = (D == null ? void 0 : D.nullable) ?? !1, Ke = (D == null ? void 0 : D.is_relation) ?? !1;
973
+ Ke ? (c("relation"), g([])) : b && c("equals"), w(Ke), S(St), H !== d && (["boolean"].includes(n.getInputType(H)) && c("equals"), g(() => {
974
974
  if (["between", "notBetween"].includes(l))
975
975
  return [];
976
976
  switch (n.getInputType(H)) {
@@ -988,12 +988,12 @@ function gr(e, t) {
988
988
  switch (I) {
989
989
  case "between":
990
990
  case "notBetween":
991
- return mr(D);
991
+ return fr(D);
992
992
  case "null":
993
993
  case "notNull":
994
994
  return "1";
995
995
  default:
996
- return hr(D);
996
+ return mr(D);
997
997
  }
998
998
  }), c(I);
999
999
  };
@@ -1029,10 +1029,10 @@ function gr(e, t) {
1029
1029
  const et = async (e, t, n) => {
1030
1030
  const a = e.getSchema().relations[t].model, { data: s } = await ne().make(a).get(), o = s.all().filter((d) => !n.find((u) => u.getKey() === d.getKey())), i = o.length, l = n.length, c = 15;
1031
1031
  return i + l > c ? N([...n, ...o.slice(0, c - l)]) : N([...n, ...o]);
1032
- }, br = async (e, t, n = "", a) => {
1032
+ }, yr = async (e, t, n = "", a) => {
1033
1033
  const s = e.getSchema().relations[t], o = ne().make(s.model), i = o.getSchema().primaryKey, { data: l } = await o.searchBy(n).get();
1034
1034
  return N([...a, ...l]).unique(i);
1035
- }, yr = () => {
1035
+ }, xr = () => {
1036
1036
  const e = v(), t = $(), {
1037
1037
  key: n,
1038
1038
  value: a,
@@ -1041,10 +1041,10 @@ const et = async (e, t, n) => {
1041
1041
  () => o && d.count() === 0,
1042
1042
  [o, d]
1043
1043
  ), S = async (b, w) => {
1044
- c(w), f.isEmpty(w) || u(await br(t, n, w, N(h)));
1044
+ c(w), f.isEmpty(w) || u(await yr(t, n, w, N(h)));
1045
1045
  };
1046
1046
  return p.useEffect(() => {
1047
- a.length > 0 && (async () => g(await fr(t, n, a)))();
1047
+ a.length > 0 && (async () => g(await gr(t, n, a)))();
1048
1048
  }, []), p.useEffect(() => {
1049
1049
  let b = !0;
1050
1050
  if (y)
@@ -1054,7 +1054,7 @@ const et = async (e, t, n) => {
1054
1054
  }, [y]), p.useEffect(() => {
1055
1055
  s(h.map((b) => b.getKey())), f.isEmpty(l) ? (async () => u(await et(t, n, h)))() : u(N([]));
1056
1056
  }, [h]), /* @__PURE__ */ r(
1057
- $t,
1057
+ Ht,
1058
1058
  {
1059
1059
  sx: { width: e ? 377 : "100%" },
1060
1060
  open: o,
@@ -1075,7 +1075,7 @@ const et = async (e, t, n) => {
1075
1075
  isOptionEqualToValue: (b, w) => b.getKey() === w.getKey(),
1076
1076
  filterOptions: (b) => b,
1077
1077
  renderInput: (b) => /* @__PURE__ */ r(
1078
- xr,
1078
+ wr,
1079
1079
  {
1080
1080
  params: b,
1081
1081
  loading: y
@@ -1088,7 +1088,7 @@ const et = async (e, t, n) => {
1088
1088
  multiple: !0
1089
1089
  }
1090
1090
  );
1091
- }, xr = ({ params: e, loading: t }) => {
1091
+ }, wr = ({ params: e, loading: t }) => {
1092
1092
  const { t: n } = F();
1093
1093
  return /* @__PURE__ */ r(
1094
1094
  ae,
@@ -1098,7 +1098,7 @@ const et = async (e, t, n) => {
1098
1098
  InputProps: {
1099
1099
  ...e.InputProps,
1100
1100
  endAdornment: /* @__PURE__ */ m(p.Fragment, { children: [
1101
- t ? /* @__PURE__ */ r(Ht, { color: "inherit", size: 20 }) : null,
1101
+ t ? /* @__PURE__ */ r(Zt, { color: "inherit", size: 20 }) : null,
1102
1102
  e.InputProps.endAdornment
1103
1103
  ] })
1104
1104
  }
@@ -1129,11 +1129,11 @@ const et = async (e, t, n) => {
1129
1129
  sx: { width: n ? c : "100%" }
1130
1130
  }
1131
1131
  );
1132
- }, wr = () => {
1132
+ }, kr = () => {
1133
1133
  const e = v(), { value: t, setValue: n } = p.useContext(ee);
1134
1134
  return /* @__PURE__ */ m(T, { children: [
1135
1135
  /* @__PURE__ */ r(
1136
- Zt,
1136
+ Gt,
1137
1137
  {
1138
1138
  checked: t,
1139
1139
  onChange: (s) => {
@@ -1197,13 +1197,13 @@ const et = async (e, t, n) => {
1197
1197
  case "datetime-local":
1198
1198
  return /* @__PURE__ */ r(fe, {});
1199
1199
  case "autocomplete":
1200
- return /* @__PURE__ */ r(yr, {});
1200
+ return /* @__PURE__ */ r(xr, {});
1201
1201
  case "boolean":
1202
- return /* @__PURE__ */ r(wr, {});
1202
+ return /* @__PURE__ */ r(kr, {});
1203
1203
  default:
1204
1204
  return /* @__PURE__ */ r(ge, {});
1205
1205
  }
1206
- }, kr = ({ index: e, column: t }) => {
1206
+ }, Sr = ({ index: e, column: t }) => {
1207
1207
  const { t: n } = F(), a = v(), s = L("breakpoint", "md"), o = C("filter"), i = p.useMemo(() => o.getMatchingOperators(t), [t]), {
1208
1208
  columns: l,
1209
1209
  key: c,
@@ -1219,7 +1219,7 @@ const et = async (e, t, n) => {
1219
1219
  handleKey: x,
1220
1220
  handleOperator: A,
1221
1221
  handleRemoveColumn: R
1222
- } = gr(e, t), O = ["boolean"].includes(o.getInputType(g));
1222
+ } = br(e, t), O = ["boolean"].includes(o.getInputType(g));
1223
1223
  return /* @__PURE__ */ r(
1224
1224
  ee.Provider,
1225
1225
  {
@@ -1406,7 +1406,7 @@ const et = async (e, t, n) => {
1406
1406
  const y = h == g.length - 1;
1407
1407
  return /* @__PURE__ */ m(T, { children: [
1408
1408
  /* @__PURE__ */ r(
1409
- kr,
1409
+ Sr,
1410
1410
  {
1411
1411
  index: h,
1412
1412
  column: u
@@ -1443,7 +1443,7 @@ const et = async (e, t, n) => {
1443
1443
  onClick: d,
1444
1444
  color: "primary",
1445
1445
  sx: { fontSize: 32 },
1446
- children: /* @__PURE__ */ r(pn, { fontSize: "inherit" })
1446
+ children: /* @__PURE__ */ r(hn, { fontSize: "inherit" })
1447
1447
  }
1448
1448
  )
1449
1449
  }
@@ -1471,7 +1471,7 @@ const et = async (e, t, n) => {
1471
1471
  ]
1472
1472
  }
1473
1473
  );
1474
- }, yt = (e) => {
1474
+ }, xt = (e) => {
1475
1475
  const t = {};
1476
1476
  for (const [n, a] of e.entries())
1477
1477
  f.set(t, n, a);
@@ -1479,8 +1479,8 @@ const et = async (e, t, n) => {
1479
1479
  }, nt = (e) => {
1480
1480
  const t = e instanceof Date ? e : new Date(e), n = `${t.getFullYear()}`, a = `${f.padStart(`${t.getMonth() + 1}`, 2, "0")}`, s = `${f.padStart(`${t.getDate()}`, 2, "0")}`, o = `${f.padStart(`${t.getHours()}`, 2, "0")}`, i = `${f.padStart(`${t.getMinutes()}`, 2, "0")}`;
1481
1481
  return `${n}-${a}-${s}T${o}:${i}`;
1482
- }, Sr = (e, t) => {
1483
- const n = C("filter"), a = yt(t), s = Object.keys(a).reduce((i, l) => (["where"].includes(l) && (i[l] = a[l]), i), {}), o = [];
1482
+ }, Cr = (e, t) => {
1483
+ const n = C("filter"), a = xt(t), s = Object.keys(a).reduce((i, l) => (["where"].includes(l) && (i[l] = a[l]), i), {}), o = [];
1484
1484
  return Object.entries(s).forEach(([, i]) => {
1485
1485
  Object.entries(i).forEach(([l, c]) => {
1486
1486
  e.filter((d) => {
@@ -1521,7 +1521,7 @@ const et = async (e, t, n) => {
1521
1521
  });
1522
1522
  });
1523
1523
  }), o;
1524
- }, Cr = (e) => {
1524
+ }, Ar = (e) => {
1525
1525
  const t = C("filter"), n = new URLSearchParams();
1526
1526
  return e.forEach((a) => {
1527
1527
  const { key: s, operator: o, value: i, type: l } = a;
@@ -1548,8 +1548,8 @@ const et = async (e, t, n) => {
1548
1548
  n.set(`where[${f.camelCase(s)}${c}]`, d);
1549
1549
  }
1550
1550
  }), n;
1551
- }, Ar = () => {
1552
- const { t: e } = F(), t = C("filter"), n = v(), a = $(), [s, o] = W(), i = p.useMemo(() => "where" in yt(s), [s]), [l, c] = p.useState(null), [d, u] = p.useState([]), h = !!l, g = p.useMemo(() => t.getFilterableColumns(a), [a]), y = (x) => {
1551
+ }, vr = () => {
1552
+ const { t: e } = F(), t = C("filter"), n = v(), a = $(), [s, o] = W(), i = p.useMemo(() => "where" in xt(s), [s]), [l, c] = p.useState(null), [d, u] = p.useState([]), h = !!l, g = p.useMemo(() => t.getFilterableColumns(a), [a]), y = (x) => {
1553
1553
  c(x.currentTarget);
1554
1554
  }, S = () => {
1555
1555
  c(null), setTimeout(() => {
@@ -1557,7 +1557,7 @@ const et = async (e, t, n) => {
1557
1557
  }, 300);
1558
1558
  }, b = () => {
1559
1559
  w();
1560
- const x = Cr(d);
1560
+ const x = Ar(d);
1561
1561
  o(x, { replace: !0 });
1562
1562
  }, w = () => {
1563
1563
  o((x) => {
@@ -1572,7 +1572,7 @@ const et = async (e, t, n) => {
1572
1572
  }, 300);
1573
1573
  };
1574
1574
  return p.useEffect(() => {
1575
- const x = Sr(g, s);
1575
+ const x = Cr(g, s);
1576
1576
  u(x);
1577
1577
  }, [g, s, l]), /* @__PURE__ */ m(
1578
1578
  Ue.Provider,
@@ -1602,13 +1602,13 @@ const et = async (e, t, n) => {
1602
1602
  color: "secondary",
1603
1603
  variant: "dot",
1604
1604
  invisible: !i,
1605
- children: /* @__PURE__ */ r(hn, {})
1605
+ children: /* @__PURE__ */ r(mn, {})
1606
1606
  }
1607
1607
  )
1608
1608
  }
1609
1609
  ),
1610
1610
  n ? /* @__PURE__ */ r(
1611
- Gt,
1611
+ Qt,
1612
1612
  {
1613
1613
  id: "model-filter-popover",
1614
1614
  open: h,
@@ -1677,7 +1677,7 @@ function Ye() {
1677
1677
  const {
1678
1678
  selected: e,
1679
1679
  items: t
1680
- } = p.useContext(Ve), n = ot(e), a = () => {
1680
+ } = p.useContext(Ve), n = st(e), a = () => {
1681
1681
  e.splice(0, e.count());
1682
1682
  }, s = (d) => {
1683
1683
  const u = e.search(d);
@@ -1708,7 +1708,7 @@ function Ye() {
1708
1708
  function Q() {
1709
1709
  return p.useContext(Ve);
1710
1710
  }
1711
- function vr(e) {
1711
+ function Dr(e) {
1712
1712
  const [t, n] = p.useState(""), { selected: a } = Ye(), { t: s } = F(), o = We(), { massActions: i } = Q(), l = (d) => {
1713
1713
  n(d.target.value);
1714
1714
  };
@@ -1775,7 +1775,7 @@ function vr(e) {
1775
1775
  }
1776
1776
  );
1777
1777
  }
1778
- const Dr = () => {
1778
+ const Tr = () => {
1779
1779
  const { handleDrawerOpen: e } = ze();
1780
1780
  return /* @__PURE__ */ r(
1781
1781
  E,
@@ -1785,7 +1785,7 @@ const Dr = () => {
1785
1785
  edge: "start",
1786
1786
  onClick: e,
1787
1787
  sx: { mr: { md: 2 } },
1788
- children: /* @__PURE__ */ r(mn, {})
1788
+ children: /* @__PURE__ */ r(fn, {})
1789
1789
  }
1790
1790
  );
1791
1791
  }, ce = p.forwardRef(({ to: e, children: t, ...n }, a) => /* @__PURE__ */ r(
@@ -1800,12 +1800,12 @@ const Dr = () => {
1800
1800
  }
1801
1801
  ));
1802
1802
  ce.displayName = "Link";
1803
- const Tr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */ r(T, { children: {
1803
+ const Fr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */ r(T, { children: {
1804
1804
  "&laquo; Previous": /* @__PURE__ */ r(Le, {}),
1805
1805
  "Next &raquo;": /* @__PURE__ */ r(Oe, {}),
1806
- "Last &raquo;": /* @__PURE__ */ r(fn, {}),
1807
- "&laquo; First": /* @__PURE__ */ r(gn, {})
1808
- }[e] || e }) : /* @__PURE__ */ r(T, { children: e }), Fr = ({ variant: e = "default", ...t }) => {
1806
+ "Last &raquo;": /* @__PURE__ */ r(gn, {}),
1807
+ "&laquo; First": /* @__PURE__ */ r(bn, {})
1808
+ }[e] || e }) : /* @__PURE__ */ r(T, { children: e }), Ir = ({ variant: e = "default", ...t }) => {
1809
1809
  const n = e === "default", [a, s] = W(), [o, i] = p.useState(a.get("page") || "1"), {
1810
1810
  links: l,
1811
1811
  meta: {
@@ -1825,7 +1825,7 @@ const Tr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */
1825
1825
  { url: g, label: "&laquo; Previous", active: !1 },
1826
1826
  {
1827
1827
  element: /* @__PURE__ */ r(
1828
- Tt,
1828
+ Ft,
1829
1829
  {
1830
1830
  onSubmit: b,
1831
1831
  preventScrollReset: !0,
@@ -1890,13 +1890,13 @@ const Tr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */
1890
1890
  disabled: !k.url,
1891
1891
  component: ce,
1892
1892
  to: k.url,
1893
- children: /* @__PURE__ */ r(Tr, { label: k.label })
1893
+ children: /* @__PURE__ */ r(Fr, { label: k.label })
1894
1894
  },
1895
1895
  x
1896
1896
  ))
1897
1897
  }
1898
1898
  );
1899
- }, Ir = () => {
1899
+ }, Pr = () => {
1900
1900
  const { t: e } = F(), {
1901
1901
  meta: {
1902
1902
  total: t = 0,
@@ -1909,7 +1909,7 @@ const Tr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */
1909
1909
  to: a,
1910
1910
  total: t
1911
1911
  }) });
1912
- }, Pr = () => {
1912
+ }, Mr = () => {
1913
1913
  const { t: e } = F(), {
1914
1914
  meta: {
1915
1915
  per_page: t = 15
@@ -1968,7 +1968,7 @@ const Tr = ({ label: e }) => isNaN(e) || isNaN(parseFloat(e)) ? /* @__PURE__ */
1968
1968
  }
1969
1969
  );
1970
1970
  };
1971
- function Mr(e, t) {
1971
+ function Br(e, t) {
1972
1972
  const [n, a] = p.useState(!1);
1973
1973
  return p.useEffect(() => {
1974
1974
  const s = /* @__PURE__ */ new Set(), o = (l) => {
@@ -1981,25 +1981,25 @@ function Mr(e, t) {
1981
1981
  };
1982
1982
  }, [e, t]), n;
1983
1983
  }
1984
- const Br = U(ae)(({ theme: e }) => ({
1984
+ const Er = U(ae)(({ theme: e }) => ({
1985
1985
  "& .MuiInputBase-root": {
1986
1986
  backgroundColor: e.palette.background.paper
1987
1987
  }
1988
1988
  // transition: 'width 250ms ease-in-out',
1989
- })), Er = f.throttle((e, t) => {
1989
+ })), Lr = f.throttle((e, t) => {
1990
1990
  t((n) => {
1991
1991
  const a = new URLSearchParams(n);
1992
1992
  return e ? a.set("q", e) : a.delete("q"), a;
1993
1993
  });
1994
- }, 500), Lr = () => {
1994
+ }, 500), Or = () => {
1995
1995
  const [e, t] = W(), n = e.get("q") || "", [a, s] = p.useState(n), [o, i] = p.useState(!1), l = p.useRef(null), { t: c } = F();
1996
1996
  p.useEffect(() => {
1997
1997
  s(n);
1998
1998
  }, [n]);
1999
1999
  const d = (g) => {
2000
- s(g.target.value), Er(g.target.value, t);
2000
+ s(g.target.value), Lr(g.target.value, t);
2001
2001
  }, u = v();
2002
- Mr(["Control", "/"], () => {
2002
+ Br(["Control", "/"], () => {
2003
2003
  l.current.focus();
2004
2004
  });
2005
2005
  const h = u ? 300 : "calc(100vw - 58px)";
@@ -2018,7 +2018,7 @@ const Br = U(ae)(({ theme: e }) => ({
2018
2018
  }
2019
2019
  ) }),
2020
2020
  /* @__PURE__ */ r(
2021
- it,
2021
+ ct,
2022
2022
  {
2023
2023
  orientation: "horizontal",
2024
2024
  in: u || o,
@@ -2028,7 +2028,7 @@ const Br = U(ae)(({ theme: e }) => ({
2028
2028
  },
2029
2029
  unmountOnExit: !1,
2030
2030
  children: /* @__PURE__ */ r(
2031
- Br,
2031
+ Er,
2032
2032
  {
2033
2033
  placeholder: u ? `(Ctrl + /) ${c("Search...")}` : `${c("Search...")}`,
2034
2034
  value: a,
@@ -2047,7 +2047,7 @@ const Br = U(ae)(({ theme: e }) => ({
2047
2047
  }
2048
2048
  )
2049
2049
  ] });
2050
- }, Or = ({ children: e, ...t }) => /* @__PURE__ */ r(
2050
+ }, Nr = ({ children: e, ...t }) => /* @__PURE__ */ r(
2051
2051
  K,
2052
2052
  {
2053
2053
  sx: { width: "1px" },
@@ -2055,7 +2055,7 @@ const Br = U(ae)(({ theme: e }) => ({
2055
2055
  ...t,
2056
2056
  children: e
2057
2057
  }
2058
- ), Nr = () => {
2058
+ ), Rr = () => {
2059
2059
  const { t: e } = F(), [t, n] = W(), {
2060
2060
  columns: a,
2061
2061
  Model: s
@@ -2085,7 +2085,7 @@ const Br = U(ae)(({ theme: e }) => ({
2085
2085
  color: "secondary",
2086
2086
  variant: "dot",
2087
2087
  invisible: !i,
2088
- children: /* @__PURE__ */ r(bn, {})
2088
+ children: /* @__PURE__ */ r(yn, {})
2089
2089
  }
2090
2090
  ) }),
2091
2091
  /* @__PURE__ */ m(De, { open: g, onClose: b, fullWidth: !0, children: [
@@ -2138,7 +2138,7 @@ const Br = U(ae)(({ theme: e }) => ({
2138
2138
  control: /* @__PURE__ */ r(pe, {}),
2139
2139
  label: /* @__PURE__ */ m(T, { children: [
2140
2140
  e("Ascending"),
2141
- /* @__PURE__ */ r(yn, {})
2141
+ /* @__PURE__ */ r(xn, {})
2142
2142
  ] })
2143
2143
  }
2144
2144
  ),
@@ -2149,7 +2149,7 @@ const Br = U(ae)(({ theme: e }) => ({
2149
2149
  control: /* @__PURE__ */ r(pe, {}),
2150
2150
  label: /* @__PURE__ */ m(T, { children: [
2151
2151
  e("Descending"),
2152
- /* @__PURE__ */ r(xn, {})
2152
+ /* @__PURE__ */ r(wn, {})
2153
2153
  ] })
2154
2154
  }
2155
2155
  )
@@ -2163,7 +2163,7 @@ const Br = U(ae)(({ theme: e }) => ({
2163
2163
  ] })
2164
2164
  ] })
2165
2165
  ] });
2166
- }, Rr = ({ items: e, loading: t, children: n, error: a }) => {
2166
+ }, jr = ({ items: e, loading: t, children: n, error: a }) => {
2167
2167
  const s = $(), o = p.useMemo(() => N([]), [s, e]), [i] = W(), l = i.get("tab") ?? "all", c = p.useMemo(() => [
2168
2168
  {
2169
2169
  key: s.getSchema().labeledBy,
@@ -2184,21 +2184,21 @@ const Br = U(ae)(({ theme: e }) => ({
2184
2184
  Model: s
2185
2185
  };
2186
2186
  return /* @__PURE__ */ r(Ve.Provider, { value: S, children: n });
2187
- }, jr = ({
2187
+ }, qr = ({
2188
2188
  items: e,
2189
2189
  loading: t,
2190
2190
  error: n,
2191
2191
  children: a,
2192
2192
  ...s
2193
2193
  }) => /* @__PURE__ */ r(
2194
- Rr,
2194
+ jr,
2195
2195
  {
2196
2196
  items: e,
2197
2197
  loading: t,
2198
2198
  error: n,
2199
- children: /* @__PURE__ */ r(Qt, { component: Pe, children: /* @__PURE__ */ r(Xt, { ...s, children: a }) })
2199
+ children: /* @__PURE__ */ r(Xt, { component: Pe, children: /* @__PURE__ */ r(Jt, { ...s, children: a }) })
2200
2200
  }
2201
- ), qr = ({ children: e, ...t }) => {
2201
+ ), Wr = ({ children: e, ...t }) => {
2202
2202
  const {
2203
2203
  massActions: n,
2204
2204
  columns: a,
@@ -2218,7 +2218,7 @@ const Br = U(ae)(({ theme: e }) => ({
2218
2218
  return x.set("order_by", `${w}:asc`), x;
2219
2219
  });
2220
2220
  };
2221
- return /* @__PURE__ */ m(Jt, { ...t, children: [
2221
+ return /* @__PURE__ */ m(_t, { ...t, children: [
2222
2222
  e,
2223
2223
  o && /* @__PURE__ */ m(_, { children: [
2224
2224
  n.length > 0 && /* @__PURE__ */ r(h, { children: /* @__PURE__ */ r(
@@ -2236,7 +2236,7 @@ const Br = U(ae)(({ theme: e }) => ({
2236
2236
  sortDirection: x && y === w && S || !1,
2237
2237
  ...A,
2238
2238
  children: /* @__PURE__ */ m(
2239
- _t,
2239
+ en,
2240
2240
  {
2241
2241
  active: x && y === w,
2242
2242
  direction: S,
@@ -2253,7 +2253,7 @@ const Br = U(ae)(({ theme: e }) => ({
2253
2253
  /* @__PURE__ */ r(h, {})
2254
2254
  ] })
2255
2255
  ] });
2256
- }, Wr = () => {
2256
+ }, zr = () => {
2257
2257
  const {
2258
2258
  massActions: e,
2259
2259
  columns: t
@@ -2278,9 +2278,9 @@ const Br = U(ae)(({ theme: e }) => ({
2278
2278
  },
2279
2279
  d
2280
2280
  )) }),
2281
- /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(E, { children: /* @__PURE__ */ r(ht, {}) }) })
2281
+ /* @__PURE__ */ r(a, { children: /* @__PURE__ */ r(E, { children: /* @__PURE__ */ r(mt, {}) }) })
2282
2282
  ] }, l)) });
2283
- }, zr = ({ children: e, ...t }) => {
2283
+ }, Ur = ({ children: e, ...t }) => {
2284
2284
  const n = $(), { t: a } = F(), {
2285
2285
  items: s,
2286
2286
  loading: o,
@@ -2288,8 +2288,8 @@ const Br = U(ae)(({ theme: e }) => ({
2288
2288
  } = Q(), {
2289
2289
  ["ModelIndex.StaticActions"]: l
2290
2290
  } = C("cms").getComponents(), c = p.isValidElement(e) ? e : (s || N([])).map(e);
2291
- return /* @__PURE__ */ m(en, { ...t, children: [
2292
- o && /* @__PURE__ */ r(Wr, {}),
2291
+ return /* @__PURE__ */ m(tn, { ...t, children: [
2292
+ o && /* @__PURE__ */ r(zr, {}),
2293
2293
  c,
2294
2294
  s && !s.count() && /* @__PURE__ */ r(_, { children: /* @__PURE__ */ m(K, { colSpan: i, sx: { textAlign: "center", py: 10 }, children: [
2295
2295
  /* @__PURE__ */ r(q, { children: a("No :model found", {
@@ -2299,14 +2299,14 @@ const Br = U(ae)(({ theme: e }) => ({
2299
2299
  /* @__PURE__ */ r(l, {})
2300
2300
  ] }) })
2301
2301
  ] });
2302
- }, J = U(q)(() => ({
2302
+ }, rt = (e) => f.upperFirst(f.camelCase(e)), J = U(q)(() => ({
2303
2303
  whiteSpace: "nowrap",
2304
2304
  overflow: "hidden",
2305
2305
  textOverflow: "ellipsis",
2306
2306
  "& label": {
2307
2307
  fontWeight: "bold"
2308
2308
  }
2309
- })), Ur = ({ content: e }) => ["string", "number"].includes(typeof e) ? /* @__PURE__ */ r(J, { children: e }) : e instanceof Date ? /* @__PURE__ */ r(J, { children: e.toLocaleString(Z("app.locale", "en")) }) : typeof e == "object" && !p.isValidElement(e) ? /* @__PURE__ */ r(J, { children: JSON.stringify(e) }) : /* @__PURE__ */ r(p.Fragment, { children: e }), Vr = ({ label: e, content: t }) => ["string", "number"].includes(typeof t) ? /* @__PURE__ */ m(J, { children: [
2309
+ })), Vr = ({ content: e }) => ["string", "number"].includes(typeof e) ? /* @__PURE__ */ r(J, { children: e }) : e instanceof Date ? /* @__PURE__ */ r(J, { children: e.toLocaleString(Z("app.locale", "en")) }) : typeof e == "object" && !p.isValidElement(e) ? /* @__PURE__ */ r(J, { children: JSON.stringify(e) }) : /* @__PURE__ */ r(p.Fragment, { children: e }), Yr = ({ label: e, content: t }) => ["string", "number"].includes(typeof t) ? /* @__PURE__ */ m(J, { children: [
2310
2310
  /* @__PURE__ */ m("label", { children: [
2311
2311
  e,
2312
2312
  ":"
@@ -2333,10 +2333,10 @@ const Br = U(ae)(({ theme: e }) => ({
2333
2333
  ] }) }),
2334
2334
  " ",
2335
2335
  t
2336
- ] }), Yr = ({ item: e, ...t }) => {
2336
+ ] }), Kr = ({ item: e, ...t }) => {
2337
2337
  const n = v(), a = Ae(), s = $(), { massActions: o, columns: i } = Q(), l = p.useMemo(() => i.map((g) => ({
2338
2338
  ...g,
2339
- content: C("cms")[`model${e.constructor.name}Get${f.upperFirst(f.camelCase(g.key))}Content`](e.getAttribute(g.key), e)
2339
+ content: C("cms")[`model${rt(e.getType())}Get${rt(g.key)}Content`](e.getAttribute(g.key), e)
2340
2340
  })), [i, e]), {
2341
2341
  ["ModelIndex.Table.ShrinkedCell"]: c,
2342
2342
  ["ModelIndex.InstanceActions"]: d
@@ -2367,7 +2367,7 @@ const Br = U(ae)(({ theme: e }) => ({
2367
2367
  e.deletedAt || a(`/${f.kebabCase(s.plural())}/${e.getKey()}`);
2368
2368
  },
2369
2369
  children: /* @__PURE__ */ r(
2370
- Ur,
2370
+ Vr,
2371
2371
  {
2372
2372
  label: y,
2373
2373
  content: b
@@ -2383,14 +2383,14 @@ const Br = U(ae)(({ theme: e }) => ({
2383
2383
  onClick: () => {
2384
2384
  e.deletedAt || a(`/${f.kebabCase(s.plural())}/${e.getKey()}`);
2385
2385
  },
2386
- children: l.map(({ key: g, ...y }) => /* @__PURE__ */ r(Vr, { ...y }, g))
2386
+ children: l.map(({ key: g, ...y }) => /* @__PURE__ */ r(Yr, { ...y }, g))
2387
2387
  }
2388
2388
  ),
2389
2389
  /* @__PURE__ */ r(c, { children: /* @__PURE__ */ r(d, { item: e }) })
2390
2390
  ]
2391
2391
  }
2392
2392
  );
2393
- }, Kr = ({ children: e, ...t }) => {
2393
+ }, $r = ({ children: e, ...t }) => {
2394
2394
  const {
2395
2395
  columnCount: n
2396
2396
  } = Q(), a = v(), s = L("breakpoint", "md"), {
@@ -2398,7 +2398,7 @@ const Br = U(ae)(({ theme: e }) => ({
2398
2398
  ["ModelIndex.PaginationDetails"]: i,
2399
2399
  ["ModelIndex.PerPageSwitch"]: l
2400
2400
  } = C("cms").getComponents();
2401
- return /* @__PURE__ */ m(tn, { ...t, children: [
2401
+ return /* @__PURE__ */ m(nn, { ...t, children: [
2402
2402
  /* @__PURE__ */ r(_, { children: /* @__PURE__ */ r(K, { colSpan: n, children: /* @__PURE__ */ m(
2403
2403
  B,
2404
2404
  {
@@ -2433,7 +2433,7 @@ const Br = U(ae)(({ theme: e }) => ({
2433
2433
  ) }) }),
2434
2434
  e
2435
2435
  ] });
2436
- }, $r = () => {
2436
+ }, Hr = () => {
2437
2437
  const {
2438
2438
  columnCount: e
2439
2439
  } = Q(), {
@@ -2483,7 +2483,7 @@ const Br = U(ae)(({ theme: e }) => ({
2483
2483
  }
2484
2484
  ) }) });
2485
2485
  };
2486
- function Hr() {
2486
+ function Zr() {
2487
2487
  const e = $(), { t } = F(), [n, a] = W(), s = n.get("tab") || "all", o = (c, d) => {
2488
2488
  a(() => {
2489
2489
  const u = new URLSearchParams();
@@ -2495,7 +2495,7 @@ function Hr() {
2495
2495
  i
2496
2496
  );
2497
2497
  return l.length === 0 ? null : /* @__PURE__ */ r(j, { sx: { maxWidth: { xs: 320, sm: 480 }, bgcolor: "background.paper" }, children: /* @__PURE__ */ m(
2498
- nn,
2498
+ rn,
2499
2499
  {
2500
2500
  value: s,
2501
2501
  onChange: o,
@@ -2523,13 +2523,13 @@ function Hr() {
2523
2523
  }
2524
2524
  ) });
2525
2525
  }
2526
- function Zr(e) {
2526
+ function Gr(e) {
2527
2527
  const {
2528
2528
  parts: t,
2529
2529
  ...n
2530
2530
  } = e;
2531
2531
  return /* @__PURE__ */ m(
2532
- rn,
2532
+ an,
2533
2533
  {
2534
2534
  "aria-label": "breadcrumb",
2535
2535
  ...n,
@@ -2566,14 +2566,14 @@ function Zr(e) {
2566
2566
  }
2567
2567
  );
2568
2568
  }
2569
- const xt = ({
2569
+ const wt = ({
2570
2570
  collapsed: e = !1,
2571
2571
  items: t,
2572
2572
  onClick: n,
2573
2573
  ...a
2574
2574
  }) => {
2575
2575
  const [s, o] = p.useState(null), [i, l] = p.useState(null), [c, d] = p.useState({}), u = L("drawer.width", 280), h = C("cms").getComponent("RecursiveMenu");
2576
- return /* @__PURE__ */ m(an, { ...a, children: [
2576
+ return /* @__PURE__ */ m(on, { ...a, children: [
2577
2577
  t.map((g) => {
2578
2578
  const {
2579
2579
  text: y,
@@ -2585,13 +2585,13 @@ const xt = ({
2585
2585
  onClick: A
2586
2586
  } = g;
2587
2587
  return b || /* @__PURE__ */ m(
2588
- on,
2588
+ sn,
2589
2589
  {
2590
2590
  disablePadding: !0,
2591
2591
  sx: { display: "block" },
2592
2592
  children: [
2593
2593
  /* @__PURE__ */ m(
2594
- sn,
2594
+ ln,
2595
2595
  {
2596
2596
  sx: {
2597
2597
  minHeight: 48,
@@ -2615,7 +2615,7 @@ const xt = ({
2615
2615
  ...x ? { to: x, component: ce } : {},
2616
2616
  children: [
2617
2617
  /* @__PURE__ */ m(
2618
- ct,
2618
+ ut,
2619
2619
  {
2620
2620
  sx: {
2621
2621
  minWidth: 0,
@@ -2638,19 +2638,19 @@ const xt = ({
2638
2638
  ]
2639
2639
  }
2640
2640
  ),
2641
- !e && /* @__PURE__ */ r(ut, { primary: y }),
2642
- !e && k && (c[w] ? /* @__PURE__ */ r(wn, {}) : /* @__PURE__ */ r(kn, {}))
2641
+ !e && /* @__PURE__ */ r(dt, { primary: y }),
2642
+ !e && k && (c[w] ? /* @__PURE__ */ r(kn, {}) : /* @__PURE__ */ r(Sn, {}))
2643
2643
  ]
2644
2644
  }
2645
2645
  ),
2646
2646
  k && !e && /* @__PURE__ */ r(
2647
- it,
2647
+ ct,
2648
2648
  {
2649
2649
  in: c[w],
2650
2650
  timeout: "auto",
2651
2651
  unmountOnExit: !0,
2652
2652
  children: /* @__PURE__ */ r(
2653
- xt,
2653
+ wt,
2654
2654
  {
2655
2655
  items: k,
2656
2656
  onClick: n,
@@ -2682,7 +2682,7 @@ const xt = ({
2682
2682
  }
2683
2683
  )
2684
2684
  ] });
2685
- }, wt = ({
2685
+ }, kt = ({
2686
2686
  collapsed: e = !1,
2687
2687
  items: t,
2688
2688
  onClick: n,
@@ -2690,7 +2690,7 @@ const xt = ({
2690
2690
  }) => {
2691
2691
  const [s, o] = p.useState({}), i = L("drawer.width", 280);
2692
2692
  return /* @__PURE__ */ m(T, { children: [
2693
- /* @__PURE__ */ r(dt, { ...a, children: t.map((l) => {
2693
+ /* @__PURE__ */ r(pt, { ...a, children: t.map((l) => {
2694
2694
  const {
2695
2695
  text: c,
2696
2696
  icon: d,
@@ -2720,7 +2720,7 @@ const xt = ({
2720
2720
  } : {},
2721
2721
  children: [
2722
2722
  d && /* @__PURE__ */ r(
2723
- ct,
2723
+ ut,
2724
2724
  {
2725
2725
  sx: {
2726
2726
  minWidth: 0,
@@ -2731,7 +2731,7 @@ const xt = ({
2731
2731
  children: d
2732
2732
  }
2733
2733
  ),
2734
- /* @__PURE__ */ r(ut, { sx: { opacity: e ? 0 : 1 }, children: c }),
2734
+ /* @__PURE__ */ r(dt, { sx: { opacity: e ? 0 : 1 }, children: c }),
2735
2735
  !e && g && /* @__PURE__ */ r(Oe, {})
2736
2736
  ]
2737
2737
  },
@@ -2741,7 +2741,7 @@ const xt = ({
2741
2741
  t.map((l) => {
2742
2742
  const { key: c, children: d } = l;
2743
2743
  return d ? /* @__PURE__ */ r(
2744
- wt,
2744
+ kt,
2745
2745
  {
2746
2746
  items: d,
2747
2747
  onClick: n,
@@ -2869,11 +2869,11 @@ const xt = ({
2869
2869
  X(n)(l);
2870
2870
  }
2871
2871
  }
2872
- }, Gr = {
2872
+ }, Qr = {
2873
2873
  create: (e) => ({ navigate: t }) => {
2874
2874
  t(`/${f.kebabCase(e.plural())}/create`);
2875
2875
  }
2876
- }, Qr = ({ item: e }) => {
2876
+ }, Xr = ({ item: e }) => {
2877
2877
  const t = We(), [n] = W(), a = n.get("tab") ?? "all", s = p.useMemo(() => C("cms").getInstanceActions(e.constructor, a), [e, a]), [o, i] = p.useState(null), l = !!o, c = (u) => {
2878
2878
  i(u.currentTarget);
2879
2879
  }, d = () => {
@@ -2886,11 +2886,11 @@ const xt = ({
2886
2886
  "aria-describedby": "model-item-actions",
2887
2887
  "aria-label": "filter",
2888
2888
  onClick: c,
2889
- children: /* @__PURE__ */ r(ht, {})
2889
+ children: /* @__PURE__ */ r(mt, {})
2890
2890
  }
2891
2891
  ),
2892
2892
  /* @__PURE__ */ r(
2893
- dt,
2893
+ pt,
2894
2894
  {
2895
2895
  id: "model-item-actions",
2896
2896
  anchorEl: o,
@@ -2921,14 +2921,14 @@ const xt = ({
2921
2921
  ] });
2922
2922
  };
2923
2923
  let P;
2924
- class Xr extends at {
2924
+ class Jr extends ot {
2925
2925
  constructor(n = {}) {
2926
2926
  super();
2927
2927
  ue(this, "name", "Luminix CMS Plugin");
2928
2928
  this.options = n;
2929
2929
  }
2930
2930
  register(n) {
2931
- P = n, P.bind("cms", new Pn()), P.bind("filter", new Bn()), P.once("booting", () => {
2931
+ P = n, P.bind("cms", new Mn()), P.bind("filter", new En()), P.once("booting", () => {
2932
2932
  this.bootModels();
2933
2933
  });
2934
2934
  }
@@ -2940,50 +2940,50 @@ class Xr extends at {
2940
2940
  "model",
2941
2941
  (n, a) => class extends n {
2942
2942
  static icon() {
2943
- return a === "user" ? /* @__PURE__ */ r(Sn, {}) : /* @__PURE__ */ r(Cn, {});
2943
+ return a === "user" ? /* @__PURE__ */ r(Cn, {}) : /* @__PURE__ */ r(An, {});
2944
2944
  }
2945
2945
  },
2946
2946
  0
2947
2947
  );
2948
2948
  }
2949
2949
  bootRoutes() {
2950
- P.make("cms").reducer("cmsRoutes", Wn, 0), P.make("route").reducer("routerOptions", (n) => ({
2950
+ P.make("cms").reducer("cmsRoutes", zn, 0), P.make("route").reducer("routerOptions", (n) => ({
2951
2951
  ...n,
2952
2952
  basename: P.make("config").get("luminix.admin.url", "/admin")
2953
2953
  }));
2954
2954
  }
2955
2955
  bootComponents() {
2956
2956
  P.make("cms").reducer("componentMap", () => ({
2957
- Layout: Yn,
2958
- Dashboard: zn,
2959
- ModelIndex: $n,
2960
- ModelItem: Gn,
2961
- Error: Un,
2962
- DesktopPageTitle: pr,
2963
- RecursiveList: xt,
2964
- RecursiveMenu: wt,
2965
- Breadcrumbs: Zr,
2966
- "Layout.AppBar": sr,
2967
- "Layout.Drawer": dr,
2968
- "Layout.AppBar.MenuButton": Dr,
2969
- "Layout.SearchBar": Lr,
2970
- "Layout.BackButton": lr,
2971
- "ModelIndex.Filter": Ar,
2972
- "ModelIndex.InstanceActions": Qr,
2973
- "ModelIndex.MassActions": vr,
2974
- "ModelIndex.Pagination": Fr,
2975
- "ModelIndex.PaginationDetails": Ir,
2976
- "ModelIndex.PerPageSwitch": Pr,
2977
- "ModelIndex.Sort": Nr,
2978
- "ModelIndex.StaticActions": er,
2979
- "ModelIndex.Table": jr,
2980
- "ModelIndex.Table.TableHead": qr,
2981
- "ModelIndex.Table.TableBody": zr,
2982
- "ModelIndex.Table.TableFooter": Kr,
2983
- "ModelIndex.Table.TableToolbar": $r,
2984
- "ModelIndex.Table.TableBody.TableRow": Yr,
2985
- "ModelIndex.Table.ShrinkedCell": Or,
2986
- "ModelIndex.Tabs": Hr
2957
+ Layout: Kn,
2958
+ Dashboard: Un,
2959
+ ModelIndex: Hn,
2960
+ ModelItem: Qn,
2961
+ Error: Vn,
2962
+ DesktopPageTitle: hr,
2963
+ RecursiveList: wt,
2964
+ RecursiveMenu: kt,
2965
+ Breadcrumbs: Gr,
2966
+ "Layout.AppBar": lr,
2967
+ "Layout.Drawer": pr,
2968
+ "Layout.AppBar.MenuButton": Tr,
2969
+ "Layout.SearchBar": Or,
2970
+ "Layout.BackButton": ir,
2971
+ "ModelIndex.Filter": vr,
2972
+ "ModelIndex.InstanceActions": Xr,
2973
+ "ModelIndex.MassActions": Dr,
2974
+ "ModelIndex.Pagination": Ir,
2975
+ "ModelIndex.PaginationDetails": Pr,
2976
+ "ModelIndex.PerPageSwitch": Mr,
2977
+ "ModelIndex.Sort": Rr,
2978
+ "ModelIndex.StaticActions": tr,
2979
+ "ModelIndex.Table": qr,
2980
+ "ModelIndex.Table.TableHead": Wr,
2981
+ "ModelIndex.Table.TableBody": Ur,
2982
+ "ModelIndex.Table.TableFooter": $r,
2983
+ "ModelIndex.Table.TableToolbar": Hr,
2984
+ "ModelIndex.Table.TableBody.TableRow": Kr,
2985
+ "ModelIndex.Table.ShrinkedCell": Nr,
2986
+ "ModelIndex.Tabs": Zr
2987
2987
  }), 0);
2988
2988
  }
2989
2989
  bootMenu() {
@@ -2993,7 +2993,7 @@ class Xr extends at {
2993
2993
  key: "dashboard",
2994
2994
  text: "Dashboard",
2995
2995
  to: "/",
2996
- icon: /* @__PURE__ */ r(An, {})
2996
+ icon: /* @__PURE__ */ r(vn, {})
2997
2997
  },
2998
2998
  ...Object.entries(a).sort(([s], [o]) => s.localeCompare(o)).map(([s, o]) => ({
2999
2999
  key: s,
@@ -3075,13 +3075,13 @@ class Xr extends at {
3075
3075
  {
3076
3076
  key: "create",
3077
3077
  label: `Create ${a.singular()}`,
3078
- callback: Gr.create(a),
3079
- icon: /* @__PURE__ */ r(vn, {})
3078
+ callback: Qr.create(a),
3079
+ icon: /* @__PURE__ */ r(Dn, {})
3080
3080
  }
3081
3081
  ], 0);
3082
3082
  }
3083
3083
  }
3084
- class Jr extends at {
3084
+ class _r extends ot {
3085
3085
  constructor(n) {
3086
3086
  super();
3087
3087
  ue(this, "name", "Luminix CMS i18Next Plugin");
@@ -3096,7 +3096,7 @@ class Jr extends at {
3096
3096
  this.translateModelColumns(a, n), this.translateMenuEntries(n), this.translateInstanceActions(n), this.translateMassActions(n), this.translateFormLabels(s), this.translateStaticActions(n);
3097
3097
  }
3098
3098
  initI18Next(n) {
3099
- z.use(un).init({
3099
+ z.use(dn).init({
3100
3100
  lng: n.get("app.locale", "en"),
3101
3101
  fallbackLng: n.get("app.fallback_locale", "en"),
3102
3102
  resources: {
@@ -3193,7 +3193,7 @@ class Jr extends at {
3193
3193
  );
3194
3194
  }
3195
3195
  }
3196
- const _r = {
3196
+ const ea = {
3197
3197
  palette: {
3198
3198
  primary: {
3199
3199
  main: "#1d9798"
@@ -3202,28 +3202,28 @@ const _r = {
3202
3202
  main: "#fa510c"
3203
3203
  }
3204
3204
  }
3205
- }, ma = ({
3206
- theme: e = _r,
3205
+ }, fa = ({
3206
+ theme: e = ea,
3207
3207
  plugins: t,
3208
3208
  i18nOptions: n = {},
3209
3209
  ...a
3210
3210
  }) => {
3211
- const s = ie("(prefers-color-scheme: dark)"), o = p.useMemo(() => Dn({
3211
+ const s = ie("(prefers-color-scheme: dark)"), o = p.useMemo(() => Tn({
3212
3212
  ...e,
3213
3213
  palette: {
3214
3214
  ...e.palette,
3215
3215
  mode: s ? "dark" : "light"
3216
3216
  }
3217
3217
  }), [e, s]);
3218
- return /* @__PURE__ */ m(Tn, { theme: o, children: [
3219
- /* @__PURE__ */ r(ln, {}),
3218
+ return /* @__PURE__ */ m(Fn, { theme: o, children: [
3219
+ /* @__PURE__ */ r(cn, {}),
3220
3220
  /* @__PURE__ */ r(
3221
- Pt,
3221
+ Mt,
3222
3222
  {
3223
3223
  routes: (i) => i.make("cms").getRoutes(),
3224
3224
  plugins: [
3225
- new Xr(),
3226
- new Jr(n),
3225
+ new Jr(),
3226
+ new _r(n),
3227
3227
  ...t || []
3228
3228
  ],
3229
3229
  ...a
@@ -3232,26 +3232,26 @@ const _r = {
3232
3232
  ] });
3233
3233
  };
3234
3234
  export {
3235
- Xr as CmsPlugin,
3236
- Nn as DialogProvider,
3237
- Ln as LayoutProvider,
3235
+ Jr as CmsPlugin,
3236
+ Rn as DialogProvider,
3237
+ On as LayoutProvider,
3238
3238
  ce as Link,
3239
- ma as LuminixCms,
3239
+ fa as LuminixCms,
3240
3240
  me as ModelProvider,
3241
- jn as NotificationProvider,
3241
+ qn as NotificationProvider,
3242
3242
  We as useActionEvent,
3243
- Hn as useBackButton,
3243
+ Zn as useBackButton,
3244
3244
  $ as useCurrentModel,
3245
- Xn as useDialog,
3246
- Qn as useDisplaceNotifications,
3247
- Zn as useHandleError,
3248
- tr as useHasSearch,
3245
+ Jn as useDialog,
3246
+ Xn as useDisplaceNotifications,
3247
+ Gn as useHandleError,
3248
+ nr as useHasSearch,
3249
3249
  v as useIsDesktopMode,
3250
3250
  L as useLayoutConfig,
3251
3251
  ze as useMenu,
3252
3252
  qe as useNotify,
3253
- gt as usePageTitle,
3254
- Kn as useSearch,
3253
+ bt as usePageTitle,
3254
+ $n as useSearch,
3255
3255
  Ye as useSelection,
3256
3256
  je as useSetPageTitle,
3257
3257
  Q as useTable