@object-ui/plugin-list 14.0.0 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ComponentRegistry as e, buildExpandFields as t, buildExportFileName as n, evaluatePlainCondition as r, getRecordDisplayName as i } from "@object-ui/core";
1
+ import { ComponentRegistry as e, buildExpandFields as t, buildExportFileName as n, getRecordDisplayName as r, resolveConditionalFormatting as i } from "@object-ui/core";
2
2
  import * as a from "react";
3
3
  import { useCallback as o, useContext as s, useEffect as c, useMemo as l, useState as u } from "react";
4
4
  import { Button as d, Card as f, CardContent as p, DataEmptyState as m, DropdownMenu as h, DropdownMenuContent as g, DropdownMenuItem as _, DropdownMenuTrigger as v, FilterBuilder as ee, GroupingEditor as y, Input as b, LookupValuePicker as x, NavigationOverlay as te, Popover as S, PopoverContent as C, PopoverTrigger as w, RefreshIndicator as T, SortBuilder as ne, cn as E } from "@object-ui/components";
@@ -6,9 +6,10 @@ import { Activity as D, AlertTriangle as re, ArrowUpDown as O, BarChart3 as ie,
6
6
  import { Fragment as ke, jsx as I, jsxs as L } from "react/jsx-runtime";
7
7
  import { useObjectLabel as Ae, useObjectTranslation as R, useSafeFieldLabel as je } from "@object-ui/i18n";
8
8
  import { SchemaRenderer as Me, SchemaRendererContext as Ne, useDataScope as Pe, useDensityMode as Fe, useNavigationOverlay as Ie, useSafeFieldLabel as Le } from "@object-ui/react";
9
- import { usePullToRefresh as Re } from "@object-ui/mobile";
10
- import { usePermissions as ze } from "@object-ui/permissions";
11
- import { getCellRenderer as Be, resolveCellRendererType as Ve } from "@object-ui/fields";
9
+ import { detectStatusField as Re } from "@object-ui/types";
10
+ import { usePullToRefresh as ze } from "@object-ui/mobile";
11
+ import { usePermissions as Be } from "@object-ui/permissions";
12
+ import { getCellRenderer as Ve, resolveCellRendererType as He } from "@object-ui/fields";
12
13
  //#region src/ViewSwitcher.tsx
13
14
  var z = {
14
15
  grid: /* @__PURE__ */ I(ue, { className: "h-4 w-4" }),
@@ -30,7 +31,7 @@ var z = {
30
31
  map: "Map",
31
32
  chart: "Chart",
32
33
  tree: "Tree"
33
- }, He = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
34
+ }, Ue = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
34
35
  let [o, s] = a.useState(!1), c = a.useCallback((t) => {
35
36
  s(!1), t !== e && (i && typeof document < "u" && "startViewTransition" in document ? document.startViewTransition(() => n(t)) : n(t));
36
37
  }, [
@@ -97,7 +98,7 @@ var z = {
97
98
  }, t))
98
99
  })]
99
100
  });
100
- }, Ue = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
101
+ }, We = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
101
102
  let o = a.useCallback((t) => {
102
103
  if (!i || t === e) {
103
104
  n(t);
@@ -131,7 +132,7 @@ var z = {
131
132
  };
132
133
  //#endregion
133
134
  //#region src/components/ViewSettingsPopover.tsx
134
- function We({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0, children: o }) {
135
+ function Ge({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0, children: o }) {
135
136
  let [s, c] = a.useState(i);
136
137
  return /* @__PURE__ */ L("div", {
137
138
  className: "border-b last:border-b-0",
@@ -161,7 +162,7 @@ function We({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0
161
162
  })]
162
163
  });
163
164
  }
164
- function Ge(e) {
165
+ function Ke(e) {
165
166
  let { t, allFields: n, showGroup: r, groupingConfig: i, setGroupingConfig: o, showColor: s, rowColorConfig: c, setRowColorConfig: l, showDensity: u, density: f, showHideFields: p, hiddenFields: m, updateHiddenFields: h, showInlineEdit: g, inlineEdit: _, setInlineEdit: v } = e, [ee, b] = a.useState(!1), x = [
166
167
  !!i?.fields?.length,
167
168
  !!c?.field,
@@ -208,7 +209,7 @@ function Ge(e) {
208
209
  children: t("list.viewSettingsHint", { defaultValue: "Grouping, color, density, and visible fields." })
209
210
  })]
210
211
  }),
211
- r && o && /* @__PURE__ */ I(We, {
212
+ r && o && /* @__PURE__ */ I(Ge, {
212
213
  title: t("list.group", { defaultValue: "Group" }),
213
214
  badge: i?.fields?.length || 0,
214
215
  onClear: i ? () => o(void 0) : void 0,
@@ -228,7 +229,7 @@ function Ge(e) {
228
229
  onChange: (e) => o(e)
229
230
  })
230
231
  }),
231
- s && l && /* @__PURE__ */ L(We, {
232
+ s && l && /* @__PURE__ */ L(Ge, {
232
233
  title: t("list.color", { defaultValue: "Row color" }),
233
234
  onClear: c ? () => l(void 0) : void 0,
234
235
  clearLabel: t("list.clear", { defaultValue: "Clear" }),
@@ -256,7 +257,7 @@ function Ge(e) {
256
257
  }, e.name))]
257
258
  })]
258
259
  }),
259
- u && f && /* @__PURE__ */ I(We, {
260
+ u && f && /* @__PURE__ */ I(Ge, {
260
261
  title: t("grid.toolbar.densityMode", { defaultValue: "Density" }),
261
262
  defaultOpen: f.mode !== "compact",
262
263
  children: /* @__PURE__ */ L("div", {
@@ -277,7 +278,7 @@ function Ge(e) {
277
278
  })]
278
279
  })
279
280
  }),
280
- g && v && /* @__PURE__ */ I(We, {
281
+ g && v && /* @__PURE__ */ I(Ge, {
281
282
  title: t("list.recordEditingTitle", { defaultValue: "Record editing" }),
282
283
  defaultOpen: !!_,
283
284
  children: /* @__PURE__ */ L("label", {
@@ -291,7 +292,7 @@ function Ge(e) {
291
292
  }), /* @__PURE__ */ I("span", { children: t("list.inlineEditLabel", { defaultValue: "Edit records inline (click a cell to edit)" }) })]
292
293
  })
293
294
  }),
294
- p && m && h && /* @__PURE__ */ I(We, {
295
+ p && m && h && /* @__PURE__ */ I(Ge, {
295
296
  title: t("list.hideFieldsTitle", { defaultValue: "Hide fields" }),
296
297
  badge: m.size,
297
298
  onClear: m.size > 0 ? () => h(/* @__PURE__ */ new Set()) : void 0,
@@ -322,7 +323,7 @@ function Ge(e) {
322
323
  }
323
324
  //#endregion
324
325
  //#region src/UserFilters.tsx
325
- function Ke() {
326
+ function qe() {
326
327
  try {
327
328
  let { t: e } = R(), t = e("common.more");
328
329
  return !t || t === "common.more" ? "More" : t;
@@ -336,7 +337,7 @@ var V = /* @__PURE__ */ new Set([
336
337
  "user",
337
338
  "owner"
338
339
  ]);
339
- function qe(e) {
340
+ function Je(e) {
340
341
  switch (e) {
341
342
  case void 0:
342
343
  case "equals":
@@ -359,15 +360,15 @@ function H(e) {
359
360
  label: typeof e.label == "string" ? e.label : e.label?.toString?.() ?? e.id ?? e.name,
360
361
  filters: Array.isArray(e.filters) ? e.filters : Array.isArray(e.filter) ? e.filter.filter((e) => e && typeof e.field == "string").map((e) => [
361
362
  e.field,
362
- qe(e.operator),
363
+ Je(e.operator),
363
364
  e.value
364
365
  ]) : [],
365
366
  default: e.default ?? e.isDefault
366
367
  }));
367
368
  }
368
- function Je({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisible: i, className: a, initialSelections: o, onSelectionsChange: s }) {
369
+ function Ye({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisible: i, className: a, initialSelections: o, onSelectionsChange: s }) {
369
370
  switch (e.element) {
370
- case "dropdown": return /* @__PURE__ */ I(Ye, {
371
+ case "dropdown": return /* @__PURE__ */ I(Xe, {
371
372
  fields: e.fields || [],
372
373
  objectDef: t,
373
374
  data: n,
@@ -377,7 +378,7 @@ function Je({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
377
378
  initialSelections: o,
378
379
  onSelectionsChange: s
379
380
  });
380
- case "tabs": return /* @__PURE__ */ I(Xe, {
381
+ case "tabs": return /* @__PURE__ */ I(Ze, {
381
382
  tabs: H(e.tabs || []),
382
383
  showAllRecords: e.showAllRecords !== !1,
383
384
  allowAddTab: e.allowAddTab,
@@ -391,10 +392,10 @@ function Je({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
391
392
  }
392
393
  function U(e, t, n, r) {
393
394
  return e.map((e) => {
394
- let i = e.options ? [...e.options] : [], a = e.type, o, s, c;
395
+ let i = e.options ? [...e.options] : [], a = e.type, o, s, c, l;
395
396
  if (t?.fields) {
396
397
  let n = Array.isArray(t.fields) ? t.fields.find((t) => t.name === e.field) : t.fields[e.field];
397
- n && (a ||= n.type, o = n.reference_to ?? n.reference, s = n.display_field ?? n.reference_field, c = n.id_field, i.length === 0 && n.options && (i = Array.isArray(n.options) ? n.options.map((e) => ({
398
+ n && (a ||= n.type, l = n.label, o = n.reference_to ?? n.reference, s = n.display_field ?? n.reference_field, c = n.id_field, i.length === 0 && n.options && (i = Array.isArray(n.options) ? n.options.map((e) => ({
398
399
  label: e.label ?? String(e.value ?? e),
399
400
  value: e.value ?? e,
400
401
  color: e.color
@@ -414,10 +415,15 @@ function U(e, t, n, r) {
414
415
  ...t,
415
416
  count: n.filter((n) => n[e.field] === t.value).length
416
417
  })));
417
- let l = e.label;
418
- return r?.objectName && (i = r.translateOptions(r.objectName, e.field, i), l = r.fieldLabel(r.objectName, e.field, e.label || e.field)), {
418
+ let u = e.label ?? l;
419
+ if (r?.objectName) {
420
+ i = r.translateOptions(r.objectName, e.field, i);
421
+ let t = e.label || l, n = r.fieldLabel(r.objectName, e.field, t || e.field);
422
+ u = n === e.field && t ? t : n;
423
+ }
424
+ return {
419
425
  ...e,
420
- label: l,
426
+ label: u,
421
427
  type: a,
422
428
  options: i,
423
429
  referenceTo: o,
@@ -426,8 +432,8 @@ function U(e, t, n, r) {
426
432
  };
427
433
  });
428
434
  }
429
- function Ye({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i, className: o, initialSelections: s, onSelectionsChange: c }) {
430
- let { fieldLabel: l, translateOptions: u } = je(), d = Ke(), f = t?.name, [p, m] = a.useState(() => {
435
+ function Xe({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i, className: o, initialSelections: s, onSelectionsChange: c }) {
436
+ let { fieldLabel: l, translateOptions: u } = je(), d = qe(), f = t?.name, [p, m] = a.useState(() => {
431
437
  let t = {};
432
438
  return e.forEach((e) => {
433
439
  e.defaultValues && e.defaultValues.length > 0 && (t[e.field] = e.defaultValues);
@@ -595,7 +601,7 @@ function Ye({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i
595
601
  })] })] })
596
602
  });
597
603
  }
598
- function Xe({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, className: i, initialTab: o, onSelectionsChange: s }) {
604
+ function Ze({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, className: i, initialTab: o, onSelectionsChange: s }) {
599
605
  let [c, l] = a.useState(() => o && (o === "__all__" || e.some((e) => e.id === o)) ? o : e.find((e) => e.default)?.id || (t ? "__all__" : e[0]?.id || "")), u = a.useCallback((t) => {
600
606
  l(t), r(t === "__all__" ? [] : e.find((e) => e.id === t)?.filters || []), s?.({ _tab: [t] });
601
607
  }, [
@@ -636,7 +642,7 @@ function Xe({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, cla
636
642
  }
637
643
  //#endregion
638
644
  //#region src/ListView.tsx
639
- function Ze(e) {
645
+ function Qe(e) {
640
646
  switch (e) {
641
647
  case "equals":
642
648
  case "eq": return "=";
@@ -685,15 +691,32 @@ function W(e) {
685
691
  e
686
692
  ])] : e;
687
693
  }
688
- function Qe(e) {
694
+ function $e(e) {
695
+ let t = typeof e == "string" ? [e] : Array.isArray(e) ? e : [], n = [];
696
+ for (let e of t) if (typeof e == "string") {
697
+ let t = e.trim().split(/\s+/);
698
+ if (!t[0]) continue;
699
+ n.push({
700
+ id: crypto.randomUUID(),
701
+ field: t[0],
702
+ order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
703
+ });
704
+ } else e && typeof e == "object" && typeof e.field == "string" && n.push({
705
+ id: crypto.randomUUID(),
706
+ field: e.field,
707
+ order: e.order || "asc"
708
+ });
709
+ return n;
710
+ }
711
+ function et(e) {
689
712
  return e.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
690
713
  }
691
- function $e(e) {
714
+ function tt(e) {
692
715
  return !Array.isArray(e) || e.length === 0 ? [] : e.map((e) => Array.isArray(e) ? W(e) : e).filter((e) => Array.isArray(e) && e.length > 0);
693
716
  }
694
- function et(e) {
717
+ function nt(e) {
695
718
  if (!e || !e.conditions || e.conditions.length === 0) return [];
696
- let t = $e(e.conditions.filter((e) => {
719
+ let t = tt(e.conditions.filter((e) => {
697
720
  if (e.operator === "isEmpty" || e.operator === "isNotEmpty") return !0;
698
721
  let t = e.value;
699
722
  return !(t == null || t === "" || Array.isArray(t) && t.length === 0);
@@ -707,47 +730,15 @@ function et(e) {
707
730
  null
708
731
  ] : [
709
732
  e.field,
710
- Ze(e.operator),
733
+ Qe(e.operator),
711
734
  e.value
712
735
  ]));
713
736
  return t.length === 0 ? [] : t.length === 1 ? t[0] : [e.logic, ...t];
714
737
  }
715
- function tt(e, t) {
716
- if (!t || t.length === 0) return {};
717
- for (let n of t) {
718
- let t = !1, i = ("condition" in n ? n.condition : void 0) || ("expression" in n ? n.expression : void 0) || void 0;
719
- if (i) t = r(i, e);
720
- else if ("field" in n && "operator" in n && n.field && n.operator) {
721
- let r = e[n.field];
722
- switch (n.operator) {
723
- case "equals":
724
- t = r === n.value;
725
- break;
726
- case "not_equals":
727
- t = r !== n.value;
728
- break;
729
- case "contains":
730
- t = typeof r == "string" && typeof n.value == "string" && r.includes(n.value);
731
- break;
732
- case "greater_than":
733
- t = typeof r == "number" && typeof n.value == "number" && r > n.value;
734
- break;
735
- case "less_than":
736
- t = typeof r == "number" && typeof n.value == "number" && r < n.value;
737
- break;
738
- case "in":
739
- t = Array.isArray(n.value) && n.value.includes(r);
740
- break;
741
- }
742
- }
743
- if (t) {
744
- let e = {};
745
- return "style" in n && n.style && Object.assign(e, n.style), "backgroundColor" in n && n.backgroundColor && (e.backgroundColor = n.backgroundColor), "textColor" in n && n.textColor && (e.color = n.textColor), "borderColor" in n && n.borderColor && (e.borderColor = n.borderColor), e;
746
- }
747
- }
748
- return {};
738
+ function G(e, t, n) {
739
+ return i(e, t, n);
749
740
  }
750
- var G = {
741
+ var K = {
751
742
  "list.recordCount": "{{count}} records",
752
743
  "list.recordCountOne": "{{count}} record",
753
744
  "list.noItems": "No items found",
@@ -794,8 +785,8 @@ var G = {
794
785
  "grid.toolbar.densityCycleShortHint": "Click to cycle",
795
786
  "list.viewSettings": "View settings",
796
787
  "list.viewSettingsHint": "Grouping, color, density, and visible fields."
797
- }, nt = (e, t, n) => n, rt = (e, t) => {
798
- let n = G[e] || e;
788
+ }, rt = (e, t) => {
789
+ let n = K[e] || e;
799
790
  if (t) for (let [e, r] of Object.entries(t)) n = n.replace(`{{${e}}}`, String(r));
800
791
  return n;
801
792
  };
@@ -808,27 +799,19 @@ function it() {
808
799
  }
809
800
  }
810
801
  function at() {
811
- try {
812
- let { fieldLabel: e, actionLabel: t, objectLabel: n } = Ae();
813
- return {
814
- fieldLabel: e,
815
- actionLabel: t,
816
- objectLabel: n
817
- };
818
- } catch {
819
- return {
820
- fieldLabel: nt,
821
- actionLabel: void 0,
822
- objectLabel: void 0
823
- };
824
- }
802
+ let { fieldLabel: e, actionLabel: t, objectLabel: n } = Ae();
803
+ return {
804
+ fieldLabel: e,
805
+ actionLabel: t,
806
+ objectLabel: n
807
+ };
825
808
  }
826
- var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange: o, onSortChange: s, onSearchChange: c, onHiddenFieldsChange: l, onInlineEditChange: u, onColumnStateChange: f, onRowClick: p, showViewSwitcher: h, userFilterSelections: g, onUserFilterSelectionsChange: _, initialFilters: v, initialSearchTerm: x, ...D }, ie) => {
809
+ var ot = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange: o, onSortChange: s, onSearchChange: c, onHiddenFieldsChange: l, onInlineEditChange: u, onColumnStateChange: f, onRowClick: p, showViewSwitcher: h, userFilterSelections: g, onUserFilterSelectionsChange: _, initialFilters: v, initialSearchTerm: x, ...D }, ie) => {
827
810
  let k = h ?? e?.showViewSwitcher ?? !1, { t: A } = it(), { fieldLabel: j, actionLabel: oe, objectLabel: le } = at(), { translateOptions: ue } = je(), M = a.useMemo(() => e.viewType && e.viewType !== "list" ? e : {
828
811
  ...e,
829
812
  viewType: "grid"
830
813
  }, [e]), N = a.useCallback((e, t) => M.objectName ? j(M.objectName, e, t) : t, [M.objectName, j]), pe = a.useCallback((e) => {
831
- let t = Qe(e);
814
+ let t = et(e);
832
815
  return M.objectName && typeof oe == "function" ? oe(M.objectName, e, t) : t;
833
816
  }, [M.objectName, oe]), P = a.useMemo(() => {
834
817
  let e = M.userActions, t = M.addRecord?.enabled === !0 && e?.addRecordForm !== !1;
@@ -856,49 +839,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
856
839
  M.compactToolbar,
857
840
  M.addRecord,
858
841
  M.userActions?.addRecordForm
859
- ]), [F, Ae] = a.useState(M.viewType), [R, Ne] = a.useState(() => x ?? ""), [Pe, Le] = a.useState(!1), [Be, Ve] = a.useState(!1), [z, B] = a.useState(() => M.sort && M.sort.length > 0 ? M.sort.map((e) => {
860
- if (typeof e == "string") {
861
- let t = e.trim().split(/\s+/);
862
- return {
863
- id: crypto.randomUUID(),
864
- field: t[0],
865
- order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
866
- };
867
- }
868
- return {
869
- id: crypto.randomUUID(),
870
- field: e.field,
871
- order: e.order || "asc"
872
- };
873
- }) : []), Ue = a.useMemo(() => JSON.stringify(M.sort || []), [M.sort]);
842
+ ]), [F, Ae] = a.useState(M.viewType), [R, Ne] = a.useState(() => x ?? ""), [Pe, Le] = a.useState(!1), [Ve, He] = a.useState(!1), [z, B] = a.useState(() => $e(M.sort)), We = a.useMemo(() => JSON.stringify(M.sort || []), [M.sort]);
874
843
  a.useEffect(() => {
875
- M.sort && M.sort.length > 0 ? B(M.sort.map((e) => {
876
- if (typeof e == "string") {
877
- let t = e.trim().split(/\s+/);
878
- return {
879
- id: crypto.randomUUID(),
880
- field: t[0],
881
- order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
882
- };
883
- }
884
- return {
885
- id: crypto.randomUUID(),
886
- field: e.field,
887
- order: e.order || "asc"
888
- };
889
- })) : B([]);
890
- }, [Ue]);
891
- let [We, Ke] = a.useState(!1), [V, qe] = a.useState(() => v && Array.isArray(v.conditions) ? v : {
844
+ B($e(M.sort));
845
+ }, [We]);
846
+ let [Ge, qe] = a.useState(!1), [V, Je] = a.useState(() => v && Array.isArray(v.conditions) ? v : {
892
847
  id: "root",
893
848
  logic: "and",
894
849
  conditions: []
895
- }), H = D.dataSource, [U, Ye] = a.useState([]), [Xe, Ze] = a.useState(null), [W, tt] = a.useState(() => !(Array.isArray(M.data) || M.data && typeof M.data == "object" && M.data.provider === "value" && Array.isArray(M.data.items) || M.viewType === "gantt" && M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api")), [G, nt] = a.useState(null), [rt, K] = a.useState(!1), [ot, st] = a.useState(0), [ct, lt] = a.useState(!1);
896
- a.useImperativeHandle(ie, () => ({ refresh: () => st((e) => e + 1) }), []), a.useEffect(() => {
850
+ }), H = D.dataSource, [U, Xe] = a.useState([]), [Ze, Qe] = a.useState(null), [W, G] = a.useState(() => !(Array.isArray(M.data) || M.data && typeof M.data == "object" && M.data.provider === "value" && Array.isArray(M.data.items) || M.viewType === "gantt" && M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api")), [K, rt] = a.useState(null), [ot, st] = a.useState(!1), [ct, lt] = a.useState(0), [ut, dt] = a.useState(!1);
851
+ a.useImperativeHandle(ie, () => ({ refresh: () => lt((e) => e + 1) }), []), a.useEffect(() => {
897
852
  if (!(!H?.onMutation || !M.objectName)) return H.onMutation((e) => {
898
- e.resource === M.objectName && st((e) => e + 1);
853
+ e.resource === M.objectName && lt((e) => e + 1);
899
854
  });
900
855
  }, [H, M.objectName]);
901
- let [ut, dt] = a.useState(void 0), q = ut ?? M.pagination?.pageSize ?? 100, [ft, pt] = a.useState(1), [mt, ht] = a.useState(null), gt = a.useMemo(() => {
856
+ let [ft, pt] = a.useState(void 0), q = ft ?? M.pagination?.pageSize ?? 100, [mt, ht] = a.useState(1), [gt, _t] = a.useState(null), vt = a.useMemo(() => {
902
857
  if (M.grouping?.fields?.length) return M.grouping;
903
858
  let e = typeof M.groupBy == "string" ? M.groupBy.trim() : "", t = typeof M.groupBy2 == "string" ? M.groupBy2.trim() : "", n = [];
904
859
  return e && n.push({
@@ -914,19 +869,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
914
869
  M.grouping,
915
870
  M.groupBy,
916
871
  M.groupBy2
917
- ]), [J, _t] = a.useState(gt), [vt, yt] = a.useState(!1), bt = a.useRef(gt);
872
+ ]), [J, yt] = a.useState(vt), [bt, xt] = a.useState(!1), St = a.useRef(vt);
918
873
  a.useEffect(() => {
919
- bt.current !== gt && (bt.current = gt, _t(gt));
920
- }, [gt]);
921
- let [Y, xt] = a.useState(M.rowColor), [St, Ct] = a.useState(!1), [wt, Tt] = a.useState([]), Et = a.useRef(0), [X, Dt] = a.useState([]), Ot = a.useMemo(() => {
874
+ St.current !== vt && (St.current = vt, yt(vt));
875
+ }, [vt]);
876
+ let [Y, Ct] = a.useState(M.rowColor), [wt, Tt] = a.useState(!1), [Et, Dt] = a.useState([]), Ot = a.useRef(0), [X, kt] = a.useState([]), At = a.useMemo(() => {
922
877
  let e = M.userFilters;
923
878
  if (!e) return;
924
- if (e.element === "tabs" || e.fields && e.fields.length > 0 || !G?.fields) return e;
879
+ if (e.element === "tabs" || e.fields && e.fields.length > 0 || !K?.fields) return e;
925
880
  let t = /* @__PURE__ */ new Set([
926
881
  "select",
927
882
  "multi-select",
928
883
  "boolean"
929
- ]), n = [], r = Array.isArray(G.fields) ? G.fields.map((e) => [e.name, e]) : Object.entries(G.fields);
884
+ ]), n = [], r = Array.isArray(K.fields) ? K.fields.map((e) => [e.name, e]) : Object.entries(K.fields);
930
885
  for (let [e, i] of r) (t.has(i.type) || i.options && !i.type) && n.push({
931
886
  field: e,
932
887
  label: N(e, i.label || e),
@@ -938,21 +893,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
938
893
  };
939
894
  }, [
940
895
  M.userFilters,
941
- G,
896
+ K,
942
897
  N
943
- ]), [Z, kt] = a.useState(() => new Set(M.hiddenFields || [])), At = a.useMemo(() => JSON.stringify(M.hiddenFields || []), [M.hiddenFields]);
898
+ ]), [Z, jt] = a.useState(() => new Set(M.hiddenFields || [])), Mt = a.useMemo(() => JSON.stringify(M.hiddenFields || []), [M.hiddenFields]);
944
899
  a.useEffect(() => {
945
- kt(new Set(M.hiddenFields || []));
946
- }, [At]);
947
- let jt = a.useCallback((e) => {
948
- kt(e), l?.(Array.from(e));
949
- }, [l]), [Mt, Nt] = a.useState(!1), [Pt, Ft] = a.useState(() => !!M.inlineEdit);
900
+ jt(new Set(M.hiddenFields || []));
901
+ }, [Mt]);
902
+ let Nt = a.useCallback((e) => {
903
+ jt(e), l?.(Array.from(e));
904
+ }, [l]), [Pt, Ft] = a.useState(!1), [It, Lt] = a.useState(() => !!M.inlineEdit);
950
905
  a.useEffect(() => {
951
- Ft(!!M.inlineEdit);
906
+ Lt(!!M.inlineEdit);
952
907
  }, [M.inlineEdit]);
953
- let It = a.useCallback((e) => {
954
- Ft(e), u?.(e);
955
- }, [u]), [Lt, Rt] = a.useState(!1), [zt, Bt] = a.useState(!1), [Vt, Ht] = a.useState(null), Ut = M.allowExport !== !1 && M.operations?.export !== !1, Wt = a.useMemo(() => {
908
+ let Rt = a.useCallback((e) => {
909
+ Lt(e), u?.(e);
910
+ }, [u]), [zt, Bt] = a.useState(!1), [Vt, Ht] = a.useState(!1), [Ut, Wt] = a.useState(null), Gt = M.allowExport !== !1 && M.operations?.export !== !1, Kt = a.useMemo(() => {
956
911
  if (M.exportOptions) return Array.isArray(M.exportOptions) ? { formats: M.exportOptions } : M.exportOptions;
957
912
  }, [M.exportOptions]), Q = Fe(a.useMemo(() => M.densityMode ? M.densityMode : M.rowHeight ? {
958
913
  compact: "compact",
@@ -960,51 +915,51 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
960
915
  medium: "comfortable",
961
916
  tall: "spacious",
962
917
  extra_tall: "spacious"
963
- }[M.rowHeight] || "comfortable" : "compact", [M.densityMode, M.rowHeight]), { onChange: M.onDensityChange }), Gt = a.useMemo(() => `objectui:gallery:density:${M.objectName ?? "default"}`, [M.objectName]), [Kt, qt] = a.useState(() => {
918
+ }[M.rowHeight] || "comfortable" : "compact", [M.densityMode, M.rowHeight]), { onChange: M.onDensityChange }), qt = a.useMemo(() => `objectui:gallery:density:${M.objectName ?? "default"}`, [M.objectName]), [Jt, Yt] = a.useState(() => {
964
919
  if (typeof window > "u") return M.gallery?.cardSize ?? "medium";
965
920
  try {
966
- let e = window.localStorage.getItem(Gt);
921
+ let e = window.localStorage.getItem(qt);
967
922
  if (e === "small" || e === "medium" || e === "large") return e;
968
923
  } catch {}
969
924
  return M.gallery?.cardSize ?? "medium";
970
- }), Jt = a.useCallback(() => {
971
- qt((e) => {
925
+ }), Xt = a.useCallback(() => {
926
+ Yt((e) => {
972
927
  let t = e === "large" ? "medium" : e === "medium" ? "small" : "large";
973
928
  try {
974
- window.localStorage.setItem(Gt, t);
929
+ window.localStorage.setItem(qt, t);
975
930
  } catch {}
976
931
  return t;
977
932
  });
978
- }, [Gt]), { ref: Yt, isRefreshing: Xt, pullDistance: Zt } = Re({
933
+ }, [qt]), { ref: Zt, isRefreshing: Qt, pullDistance: $t } = ze({
979
934
  onRefresh: a.useCallback(async () => {
980
- st((e) => e + 1);
935
+ lt((e) => e + 1);
981
936
  }, []),
982
937
  enabled: !!H && !!M.objectName
983
- }), Qt = a.useMemo(() => M.id ? `listview-${M.objectName}-${M.id}-view` : `listview-${M.objectName}-view`, [M.objectName, M.id]);
938
+ }), en = a.useMemo(() => M.id ? `listview-${M.objectName}-${M.id}-view` : `listview-${M.objectName}-view`, [M.objectName, M.id]);
984
939
  a.useEffect(() => {
985
940
  let e = !0;
986
- return K(!1), nt(null), (async () => {
941
+ return st(!1), rt(null), (async () => {
987
942
  if (!H || !M.objectName) {
988
- K(!0);
943
+ st(!0);
989
944
  return;
990
945
  }
991
946
  if (typeof H.getObjectSchema != "function") {
992
- K(!0);
947
+ st(!0);
993
948
  return;
994
949
  }
995
950
  try {
996
951
  let t = await H.getObjectSchema(M.objectName);
997
- e && nt(t);
952
+ e && rt(t);
998
953
  } catch (e) {
999
954
  console.warn("Failed to fetch object schema for ListView:", e);
1000
955
  } finally {
1001
- e && K(!0);
956
+ e && st(!0);
1002
957
  }
1003
958
  })(), () => {
1004
959
  e = !1;
1005
960
  };
1006
961
  }, [M.objectName, H]);
1007
- let $t = a.useMemo(() => {
962
+ let tn = a.useMemo(() => {
1008
963
  let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], n = new Set(e), r = (e) => {
1009
964
  if (!e) return;
1010
965
  let t = [
@@ -1031,9 +986,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1031
986
  };
1032
987
  r(M.kanban), r(M.options?.kanban), r(M.calendar), r(M.options?.calendar), r(M.gallery), r(M.options?.gallery), r(M.timeline), r(M.options?.timeline), r(M.gantt), r(M.options?.gantt);
1033
988
  let i = n.size > 0 ? Array.from(n) : void 0;
1034
- return t(G?.fields, i);
989
+ return t(K?.fields, i);
1035
990
  }, [
1036
- G?.fields,
991
+ K?.fields,
1037
992
  M.fields,
1038
993
  M.kanban,
1039
994
  M.calendar,
@@ -1041,9 +996,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1041
996
  M.timeline,
1042
997
  M.gantt,
1043
998
  M.options
1044
- ]), en = ze(), tn = F === "gantt" && !!M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api";
999
+ ]), nn = Be(), rn = F === "gantt" && !!M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api";
1045
1000
  a.useEffect(() => {
1046
- let e = !0, t = ++Et.current;
1001
+ let e = !0, t = ++Ot.current;
1047
1002
  if (M.data && typeof M.data == "object" && !Array.isArray(M.data)) {
1048
1003
  let e = M.data;
1049
1004
  if (e.provider === "value" && Array.isArray(e.items)) {
@@ -1052,7 +1007,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1052
1007
  let e = R.toLowerCase();
1053
1008
  t = t.filter((t) => Object.values(t).some((t) => t != null && String(t).toLowerCase().includes(e)));
1054
1009
  }
1055
- Ye(t), tt(!1), lt(!1);
1010
+ Xe(t), G(!1), dt(!1);
1056
1011
  return;
1057
1012
  }
1058
1013
  }
@@ -1062,21 +1017,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1062
1017
  let t = R.toLowerCase();
1063
1018
  e = e.filter((e) => Object.values(e).some((e) => e != null && String(e).toLowerCase().includes(t)));
1064
1019
  }
1065
- Ye(e), tt(!1), lt(!1);
1020
+ Xe(e), G(!1), dt(!1);
1066
1021
  return;
1067
1022
  }
1068
- if (tn) {
1069
- tt(!1), lt(!1);
1023
+ if (rn) {
1024
+ G(!1), dt(!1);
1070
1025
  return;
1071
1026
  }
1072
- return rt ? ((async () => {
1027
+ return ot ? ((async () => {
1073
1028
  if (!H || !M.objectName) {
1074
- tt(!1);
1029
+ G(!1);
1075
1030
  return;
1076
1031
  }
1077
- tt(!0), Ze(null);
1032
+ G(!0), Qe(null);
1078
1033
  try {
1079
- let n = [], r = M.filters || [], i = et(V), a = $e(X), o = [
1034
+ let n = [], r = M.filters || [], i = nt(V), a = tt(X), o = [
1080
1035
  ...r.length > 0 ? [r] : [],
1081
1036
  ...i.length > 0 ? [i] : [],
1082
1037
  ...a
@@ -1086,13 +1041,13 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1086
1041
  field: e.field,
1087
1042
  order: e.order
1088
1043
  })) : void 0, c = (() => {
1089
- let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], t = en?.isLoaded && M.objectName ? e.filter((e) => en.checkField(M.objectName, e, "read")) : e;
1044
+ let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], t = nn?.isLoaded && M.objectName ? e.filter((e) => nn.checkField(M.objectName, e, "read")) : e;
1090
1045
  if (t.length === 0) return;
1091
1046
  let n = /* @__PURE__ */ new Set(["id"]);
1092
1047
  for (let e of t) n.add(e);
1093
- for (let e of $t) n.add(e);
1048
+ for (let e of tn) n.add(e);
1094
1049
  let r = (() => {
1095
- let e = G?.fields;
1050
+ let e = K?.fields;
1096
1051
  if (!e) return null;
1097
1052
  let t = Array.isArray(e) ? e.map((e) => e?.name).filter((e) => typeof e == "string") : Object.keys(e), n = new Set(t);
1098
1053
  return n.add("id"), n.add("created_at"), n.add("updated_at"), n;
@@ -1128,27 +1083,27 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1128
1083
  e && !Array.isArray(e.metaFields) && (i("status"), i("priority"));
1129
1084
  }
1130
1085
  return a(M.gantt), a(M.options?.gantt), Array.from(n);
1131
- })(), l = Array.isArray(n) ? n.length > 0 : !!n && Object.keys(n).length > 0, u = F === "grid" && !J?.fields?.length, d = u ? (ft - 1) * q : 0, f = await H.find(M.objectName, {
1086
+ })(), l = Array.isArray(n) ? n.length > 0 : !!n && Object.keys(n).length > 0, u = F === "grid" && !J?.fields?.length, d = u ? (mt - 1) * q : 0, f = await H.find(M.objectName, {
1132
1087
  ...l ? { $filter: n } : {},
1133
1088
  $orderby: s,
1134
1089
  $top: q,
1135
1090
  ...d > 0 ? { $skip: d } : {},
1136
1091
  ...c ? { $select: c } : {},
1137
- ...$t.length > 0 ? { $expand: $t } : {},
1092
+ ...tn.length > 0 ? { $expand: tn } : {},
1138
1093
  ...R ? {
1139
1094
  $search: R,
1140
1095
  ...M.searchableFields && M.searchableFields.length > 0 ? { $searchFields: M.searchableFields } : {}
1141
1096
  } : {}
1142
1097
  });
1143
- if (!e || t !== Et.current) return;
1098
+ if (!e || t !== Ot.current) return;
1144
1099
  let p = [];
1145
- Array.isArray(f) ? p = f : f && typeof f == "object" && (Array.isArray(f.data) ? p = f.data : Array.isArray(f.records) ? p = f.records : Array.isArray(f.value) && (p = f.value)), Ye(p);
1100
+ Array.isArray(f) ? p = f : f && typeof f == "object" && (Array.isArray(f.data) ? p = f.data : Array.isArray(f.records) ? p = f.records : Array.isArray(f.value) && (p = f.value)), Xe(p);
1146
1101
  let m = f && typeof f == "object" ? f.total ?? f.count : void 0, h = typeof m == "number" ? m : null;
1147
- ht(u ? h : null), lt(!(u && h != null) && p.length >= q);
1102
+ _t(u ? h : null), dt(!(u && h != null) && p.length >= q);
1148
1103
  } catch (e) {
1149
- t === Et.current && (console.error("ListView data fetch error:", e), Ye([]), Ze(e?.message ? String(e.message) : String(e ?? "Unknown error")));
1104
+ t === Ot.current && (console.error("ListView data fetch error:", e), Xe([]), Qe(e?.message ? String(e.message) : String(e ?? "Unknown error")));
1150
1105
  } finally {
1151
- e && t === Et.current && tt(!1);
1106
+ e && t === Ot.current && G(!1);
1152
1107
  }
1153
1108
  })(), () => {
1154
1109
  e = !1;
@@ -1162,19 +1117,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1162
1117
  z,
1163
1118
  V,
1164
1119
  X,
1165
- ot,
1120
+ ct,
1166
1121
  R,
1167
1122
  M.searchableFields,
1168
- $t,
1169
- rt,
1123
+ tn,
1124
+ ot,
1170
1125
  M.refreshTrigger,
1171
- en,
1172
- ft,
1126
+ nn,
1127
+ mt,
1173
1128
  F,
1174
1129
  J,
1175
- tn
1130
+ rn
1176
1131
  ]);
1177
- let nn = JSON.stringify([
1132
+ let an = JSON.stringify([
1178
1133
  M.objectName,
1179
1134
  M.filters,
1180
1135
  q,
@@ -1184,11 +1139,11 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1184
1139
  R,
1185
1140
  F,
1186
1141
  J
1187
- ]), rn = a.useRef(nn);
1142
+ ]), on = a.useRef(an);
1188
1143
  a.useEffect(() => {
1189
- rn.current !== nn && (rn.current = nn, pt(1));
1190
- }, [nn]);
1191
- let an = a.useMemo(() => {
1144
+ on.current !== an && (on.current = an, ht(1));
1145
+ }, [an]);
1146
+ let sn = a.useMemo(() => {
1192
1147
  let e = ["grid"];
1193
1148
  (M.kanban?.groupByField || M.kanban?.groupField || M.options?.kanban?.groupField) && e.push("kanban"), (M.gallery?.coverField || M.gallery?.imageField || M.options?.gallery?.imageField) && e.push("gallery"), (M.calendar?.startDateField || M.options?.calendar?.startDateField) && e.push("calendar"), (M.timeline?.startDateField || M.options?.timeline?.startDateField || M.options?.timeline?.dateField || M.options?.calendar?.startDateField) && e.push("timeline"), (M.gantt?.startDateField || M.options?.gantt?.startDateField) && e.push("gantt"), (M.options?.map?.locationField || M.options?.map?.latitudeField && M.options?.map?.longitudeField) && e.push("map"), (M.tree?.parentField || M.options?.tree?.parentField || M.viewType === "tree") && e.push("tree"), M.viewType && !e.includes(M.viewType) && [
1194
1149
  "grid",
@@ -1221,26 +1176,26 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1221
1176
  a.useEffect(() => {
1222
1177
  M.viewType && Ae(M.viewType);
1223
1178
  }, [M.viewType]);
1224
- let on = a.useCallback((e) => {
1179
+ let cn = a.useCallback((e) => {
1225
1180
  Ae(e);
1226
1181
  try {
1227
- localStorage.setItem(Qt, e);
1182
+ localStorage.setItem(en, e);
1228
1183
  } catch (e) {
1229
1184
  console.warn("Failed to save view preference to localStorage:", e);
1230
1185
  }
1231
1186
  i?.(e);
1232
- }, [Qt, i]), sn = a.useCallback((e) => {
1187
+ }, [en, i]), ln = a.useCallback((e) => {
1233
1188
  Ne(e), c?.(e);
1234
- }, [c]), cn = Ie({
1189
+ }, [c]), un = Ie({
1235
1190
  navigation: M.navigation,
1236
1191
  objectName: M.objectName,
1237
1192
  onNavigate: M.onNavigate,
1238
1193
  onRowClick: p
1239
1194
  }), $ = a.useMemo(() => {
1240
1195
  let e = M.fields || [];
1241
- if (Array.isArray(e) || (e = []), en?.isLoaded && M.objectName && (e = e.filter((e) => {
1196
+ if (Array.isArray(e) || (e = []), nn?.isLoaded && M.objectName && (e = e.filter((e) => {
1242
1197
  let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
1243
- return !t || en.checkField(M.objectName, t, "read");
1198
+ return !t || nn.checkField(M.objectName, t, "read");
1244
1199
  })), Z.size > 0 && (e = e.filter((e) => {
1245
1200
  let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
1246
1201
  return t != null && !Z.has(t);
@@ -1257,8 +1212,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1257
1212
  M.objectName,
1258
1213
  Z,
1259
1214
  M.fieldOrder,
1260
- en
1261
- ]), ln = a.useMemo(() => {
1215
+ nn
1216
+ ]), dn = a.useMemo(() => {
1262
1217
  let e = Q.mode === "compact" ? "compact" : Q.mode === "spacious" ? "tall" : "medium", t = {
1263
1218
  objectName: M.objectName,
1264
1219
  fields: $,
@@ -1266,7 +1221,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1266
1221
  sort: z,
1267
1222
  className: "h-full w-full",
1268
1223
  showSearch: !1,
1269
- onRowClick: cn.handleClick,
1224
+ onRowClick: un.handleClick,
1270
1225
  rowHeight: e,
1271
1226
  hideRowHeightToggle: !0,
1272
1227
  ...M.striped == null ? {} : { striped: M.striped },
@@ -1281,7 +1236,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1281
1236
  ...t,
1282
1237
  columns: $,
1283
1238
  ...M.conditionalFormatting ? { conditionalFormatting: M.conditionalFormatting } : {},
1284
- editable: Pt,
1239
+ editable: It,
1285
1240
  ...M.wrapHeaders == null ? {} : { wrapHeaders: M.wrapHeaders },
1286
1241
  ...M.virtualScroll == null ? {} : { virtualScroll: M.virtualScroll },
1287
1242
  ...M.resizable == null ? {} : { resizable: M.resizable },
@@ -1298,8 +1253,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1298
1253
  case "kanban": return {
1299
1254
  type: "object-kanban",
1300
1255
  ...t,
1301
- groupBy: M.kanban?.groupField || M.options?.kanban?.groupField || "status",
1302
- groupField: M.kanban?.groupField || M.options?.kanban?.groupField || "status",
1256
+ groupBy: M.kanban?.groupField || M.options?.kanban?.groupField || Re(K) || void 0,
1257
+ groupField: M.kanban?.groupField || M.options?.kanban?.groupField || Re(K) || void 0,
1303
1258
  ...M.kanban?.titleField || M.options?.kanban?.titleField ? { titleField: M.kanban?.titleField || M.options?.kanban?.titleField } : {},
1304
1259
  cardFields: M.kanban?.cardFields || $ || [],
1305
1260
  ...J ? { grouping: J } : {},
@@ -1320,7 +1275,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1320
1275
  let e = {
1321
1276
  ...M.options?.gallery || {},
1322
1277
  ...M.gallery || {},
1323
- cardSize: Kt
1278
+ cardSize: Jt
1324
1279
  };
1325
1280
  return {
1326
1281
  type: "object-gallery",
@@ -1424,11 +1379,12 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1424
1379
  $,
1425
1380
  J,
1426
1381
  Y,
1427
- cn.handleClick,
1382
+ un.handleClick,
1428
1383
  Q.mode,
1429
- Kt,
1430
- Pt
1431
- ]), un = V.conditions && V.conditions.length > 0, dn = a.useMemo(() => {
1384
+ Jt,
1385
+ It,
1386
+ K
1387
+ ]), fn = V.conditions && V.conditions.length > 0, pn = a.useMemo(() => {
1432
1388
  let e, t = (e, t) => {
1433
1389
  if (!t) return;
1434
1390
  let n = Array.isArray(t) ? t.map((e) => ({
@@ -1442,7 +1398,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1442
1398
  }));
1443
1399
  return M.objectName ? ue(M.objectName, e, n) : n;
1444
1400
  };
1445
- if (e = G?.fields ? Object.entries(G.fields).map(([e, n]) => ({
1401
+ if (e = K?.fields ? Object.entries(K.fields).map(([e, n]) => ({
1446
1402
  value: e,
1447
1403
  label: N(e, n.label || e),
1448
1404
  type: n.type || "text",
@@ -1472,22 +1428,22 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1472
1428
  }
1473
1429
  return e;
1474
1430
  }, [
1475
- G,
1431
+ K,
1476
1432
  M.fields,
1477
1433
  M.filterableFields,
1478
1434
  M.objectName,
1479
1435
  N,
1480
1436
  ue
1481
- ]), fn = a.useCallback((e) => {
1482
- if (!Ut) return;
1483
- let t = Wt, r = t?.maxRecords || 0, i = t?.includeHeaders !== !1, a = G?.label && G?.name && typeof le == "function" ? le(G) : G?.label, o = (e) => n(e, {
1437
+ ]), mn = a.useCallback((e) => {
1438
+ if (!Gt) return;
1439
+ let t = Kt, r = t?.maxRecords || 0, i = t?.includeHeaders !== !1, a = K?.label && K?.name && typeof le == "function" ? le(K) : K?.label, o = (e) => n(e, {
1484
1440
  prefix: t?.fileNamePrefix,
1485
1441
  label: a,
1486
1442
  objectName: M.objectName,
1487
1443
  viewLabel: M.label || M.title
1488
1444
  });
1489
1445
  if ((e === "csv" || e === "xlsx" || e === "json") && typeof H?.exportDownload == "function" && M.objectName && t?.streaming !== !1) {
1490
- let t = $.map((e) => typeof e == "string" ? e : e.name || e.fieldName || e.field).filter(Boolean), n = M.filters || [], a = et(V), s = $e(X), c = [
1446
+ let t = $.map((e) => typeof e == "string" ? e : e.name || e.fieldName || e.field).filter(Boolean), n = M.filters || [], a = nt(V), s = tt(X), c = [
1491
1447
  ...n.length > 0 ? [n] : [],
1492
1448
  ...a.length > 0 ? [a] : [],
1493
1449
  ...s
@@ -1495,7 +1451,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1495
1451
  field: e.field,
1496
1452
  direction: e.order
1497
1453
  })) : void 0;
1498
- Ht(null), Bt(!0), (async () => {
1454
+ Wt(null), Ht(!0), (async () => {
1499
1455
  try {
1500
1456
  let n = await H.exportDownload(M.objectName, {
1501
1457
  format: e,
@@ -1505,11 +1461,11 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1505
1461
  includeHeaders: i,
1506
1462
  limit: r > 0 ? r : void 0
1507
1463
  }), a = URL.createObjectURL(n), s = document.createElement("a");
1508
- s.href = a, s.download = o(e), s.rel = "noopener", document.body.appendChild(s), s.click(), s.remove(), URL.revokeObjectURL(a), Rt(!1);
1464
+ s.href = a, s.download = o(e), s.rel = "noopener", document.body.appendChild(s), s.click(), s.remove(), URL.revokeObjectURL(a), Bt(!1);
1509
1465
  } catch (e) {
1510
- console.error("ListView export failed:", e), Ht(e instanceof Error ? e.message : String(e));
1466
+ console.error("ListView export failed:", e), Wt(e instanceof Error ? e.message : String(e));
1511
1467
  } finally {
1512
- Bt(!1);
1468
+ Ht(!1);
1513
1469
  }
1514
1470
  })();
1515
1471
  return;
@@ -1529,21 +1485,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1529
1485
  let e = new Blob([JSON.stringify(s, null, 2)], { type: "application/json" }), t = URL.createObjectURL(e), n = document.createElement("a");
1530
1486
  n.href = t, n.download = o("json"), n.click(), URL.revokeObjectURL(t);
1531
1487
  }
1532
- Rt(!1);
1488
+ Bt(!1);
1533
1489
  }, [
1534
1490
  U,
1535
1491
  $,
1536
- Wt,
1492
+ Kt,
1537
1493
  M.objectName,
1538
1494
  M.filters,
1539
- Ut,
1495
+ Gt,
1540
1496
  H,
1541
1497
  V,
1542
1498
  X,
1543
1499
  z,
1544
- G,
1500
+ K,
1545
1501
  le
1546
- ]), pn = a.useMemo(() => (M.fields || []).map((e) => {
1502
+ ]), hn = a.useMemo(() => (M.fields || []).map((e) => {
1547
1503
  if (typeof e == "string") return {
1548
1504
  name: e,
1549
1505
  label: N(e, e)
@@ -1555,7 +1511,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1555
1511
  };
1556
1512
  }), [M.fields, N]);
1557
1513
  return /* @__PURE__ */ L("div", {
1558
- ref: Yt,
1514
+ ref: Zt,
1559
1515
  className: E("flex flex-col h-full bg-background relative min-w-0 overflow-hidden", r),
1560
1516
  ...M.aria?.label ? { "aria-label": M.aria.label } : {},
1561
1517
  ...M.aria?.describedBy ? { "aria-describedby": M.aria.describedBy } : {},
@@ -1564,10 +1520,10 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1564
1520
  "aria-busy": W || void 0,
1565
1521
  "data-state": W ? "loading" : "idle",
1566
1522
  children: [
1567
- Zt > 0 && /* @__PURE__ */ I("div", {
1523
+ $t > 0 && /* @__PURE__ */ I("div", {
1568
1524
  className: "flex items-center justify-center text-xs text-muted-foreground",
1569
- style: { height: Zt },
1570
- children: A(Xt ? "list.refreshing" : "list.pullToRefresh")
1525
+ style: { height: $t },
1526
+ children: A(Qt ? "list.refreshing" : "list.pullToRefresh")
1571
1527
  }),
1572
1528
  M.description && M.appearance?.showDescription !== !1 && /* @__PURE__ */ I("div", {
1573
1529
  className: "px-4 pt-1.5 text-xs text-muted-foreground bg-background",
@@ -1578,14 +1534,14 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1578
1534
  className: "border-b px-2 sm:px-4 py-1.5 flex items-center justify-between gap-1 sm:gap-2 bg-background",
1579
1535
  children: [/* @__PURE__ */ I("div", {
1580
1536
  className: "flex items-center gap-2 overflow-x-auto min-w-0",
1581
- children: Ot && /* @__PURE__ */ I("div", {
1537
+ children: At && /* @__PURE__ */ I("div", {
1582
1538
  className: "shrink-0 min-w-0 overflow-x-auto",
1583
1539
  "data-testid": "user-filters",
1584
- children: /* @__PURE__ */ I(Je, {
1585
- config: Ot,
1586
- objectDef: G,
1540
+ children: /* @__PURE__ */ I(Ye, {
1541
+ config: At,
1542
+ objectDef: K,
1587
1543
  data: U,
1588
- onFilterChange: Dt,
1544
+ onFilterChange: kt,
1589
1545
  maxVisible: 3,
1590
1546
  initialSelections: g,
1591
1547
  onSelectionsChange: _
@@ -1594,16 +1550,16 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1594
1550
  }), /* @__PURE__ */ L("div", {
1595
1551
  className: "flex items-center gap-0 shrink-0 rounded-lg border border-border bg-muted/40 p-0.5 shadow-sm",
1596
1552
  children: [
1597
- k && /* @__PURE__ */ L(ke, { children: [/* @__PURE__ */ I(He, {
1553
+ k && /* @__PURE__ */ L(ke, { children: [/* @__PURE__ */ I(Ue, {
1598
1554
  currentView: F,
1599
- availableViews: an,
1600
- onViewChange: on
1555
+ availableViews: sn,
1556
+ onViewChange: cn
1601
1557
  }), /* @__PURE__ */ I("div", { className: "h-4 w-px bg-border/60 mx-0.5" })] }),
1602
1558
  F === "grid" && u && !P.compactToolbar && /* @__PURE__ */ L(d, {
1603
1559
  variant: "ghost",
1604
1560
  size: "sm",
1605
- onClick: () => It(!Pt),
1606
- className: E("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", Pt && "text-primary"),
1561
+ onClick: () => Rt(!It),
1562
+ className: E("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", It && "text-primary"),
1607
1563
  title: A("list.inlineEditLabel", { defaultValue: "Edit records inline (click a cell to edit)" }),
1608
1564
  "data-testid": "toolbar-inline-edit-toggle",
1609
1565
  children: [/* @__PURE__ */ I(ge, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ I("span", {
@@ -1612,8 +1568,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1612
1568
  })]
1613
1569
  }),
1614
1570
  P.showHideFields && !P.compactToolbar && /* @__PURE__ */ L(S, {
1615
- open: Mt,
1616
- onOpenChange: Nt,
1571
+ open: Pt,
1572
+ onOpenChange: Ft,
1617
1573
  children: [/* @__PURE__ */ I(w, {
1618
1574
  asChild: !0,
1619
1575
  children: /* @__PURE__ */ L(d, {
@@ -1646,19 +1602,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1646
1602
  variant: "ghost",
1647
1603
  size: "sm",
1648
1604
  className: "h-6 px-2 text-xs",
1649
- onClick: () => jt(/* @__PURE__ */ new Set()),
1605
+ onClick: () => Nt(/* @__PURE__ */ new Set()),
1650
1606
  children: A("list.showAll")
1651
1607
  })]
1652
1608
  }), /* @__PURE__ */ I("div", {
1653
1609
  className: "max-h-60 overflow-y-auto space-y-1",
1654
- children: pn.map((e) => /* @__PURE__ */ L("label", {
1610
+ children: hn.map((e) => /* @__PURE__ */ L("label", {
1655
1611
  className: "flex items-center gap-2 text-sm py-1 px-1 rounded hover:bg-muted cursor-pointer",
1656
1612
  children: [/* @__PURE__ */ I("input", {
1657
1613
  type: "checkbox",
1658
1614
  checked: !Z.has(e.name),
1659
1615
  onChange: () => {
1660
1616
  let t = new Set(Z);
1661
- t.has(e.name) ? t.delete(e.name) : t.add(e.name), jt(t);
1617
+ t.has(e.name) ? t.delete(e.name) : t.add(e.name), Nt(t);
1662
1618
  },
1663
1619
  className: "rounded border-input"
1664
1620
  }), /* @__PURE__ */ I("span", {
@@ -1672,21 +1628,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1672
1628
  }),
1673
1629
  P.showHideFields && !P.compactToolbar && (P.showFilters || P.showSort || P.showGroup) && /* @__PURE__ */ I("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
1674
1630
  P.showFilters && /* @__PURE__ */ L(S, {
1675
- open: We,
1676
- onOpenChange: Ke,
1631
+ open: Ge,
1632
+ onOpenChange: qe,
1677
1633
  children: [/* @__PURE__ */ I(w, {
1678
1634
  asChild: !0,
1679
1635
  children: /* @__PURE__ */ L(d, {
1680
1636
  variant: "ghost",
1681
1637
  size: "sm",
1682
- className: E("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", un && "text-foreground font-medium"),
1638
+ className: E("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", fn && "text-foreground font-medium"),
1683
1639
  children: [
1684
1640
  /* @__PURE__ */ I(Te, { className: "h-3.5 w-3.5 mr-1.5" }),
1685
1641
  /* @__PURE__ */ I("span", {
1686
1642
  className: "hidden sm:inline",
1687
1643
  children: A("list.filter")
1688
1644
  }),
1689
- un && /* @__PURE__ */ I("span", {
1645
+ fn && /* @__PURE__ */ I("span", {
1690
1646
  className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
1691
1647
  children: V.conditions?.length || 0
1692
1648
  })
@@ -1704,18 +1660,18 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1704
1660
  children: A("list.filterRecords")
1705
1661
  })
1706
1662
  }), /* @__PURE__ */ I(ee, {
1707
- fields: dn,
1663
+ fields: pn,
1708
1664
  value: V,
1709
1665
  onChange: (e) => {
1710
- qe(e), o && o(e);
1666
+ Je(e), o && o(e);
1711
1667
  }
1712
1668
  })]
1713
1669
  })
1714
1670
  })]
1715
1671
  }),
1716
1672
  P.showGroup && !P.compactToolbar && /* @__PURE__ */ L(S, {
1717
- open: vt,
1718
- onOpenChange: yt,
1673
+ open: bt,
1674
+ onOpenChange: xt,
1719
1675
  children: [/* @__PURE__ */ I(w, {
1720
1676
  asChild: !0,
1721
1677
  children: /* @__PURE__ */ L(d, {
@@ -1748,7 +1704,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1748
1704
  variant: "ghost",
1749
1705
  size: "sm",
1750
1706
  className: "h-6 px-2 text-xs",
1751
- onClick: () => _t(void 0),
1707
+ onClick: () => yt(void 0),
1752
1708
  "data-testid": "clear-grouping",
1753
1709
  children: A("list.clear")
1754
1710
  })]
@@ -1756,7 +1712,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1756
1712
  "data-testid": "group-field-list",
1757
1713
  children: /* @__PURE__ */ I(y, {
1758
1714
  value: J,
1759
- fieldOptions: pn.map((e) => ({
1715
+ fieldOptions: hn.map((e) => ({
1760
1716
  value: e.name,
1761
1717
  label: e.label || e.name
1762
1718
  })),
@@ -1766,15 +1722,15 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1766
1722
  collapseTitle: A("list.collapsedByDefault", { defaultValue: "Collapsed by default" }),
1767
1723
  removeTitle: A("list.removeGroup", { defaultValue: "Remove" })
1768
1724
  },
1769
- onChange: (e) => _t(e)
1725
+ onChange: (e) => yt(e)
1770
1726
  })
1771
1727
  })]
1772
1728
  })
1773
1729
  })]
1774
1730
  }),
1775
1731
  P.showSort && /* @__PURE__ */ L(S, {
1776
- open: Be,
1777
- onOpenChange: Ve,
1732
+ open: Ve,
1733
+ onOpenChange: He,
1778
1734
  children: [/* @__PURE__ */ I(w, {
1779
1735
  asChild: !0,
1780
1736
  children: /* @__PURE__ */ L(d, {
@@ -1805,7 +1761,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1805
1761
  children: A("list.sortRecords")
1806
1762
  })
1807
1763
  }), /* @__PURE__ */ I(ne, {
1808
- fields: dn,
1764
+ fields: pn,
1809
1765
  value: z,
1810
1766
  onChange: (e) => {
1811
1767
  B(e), s && s(e);
@@ -1816,8 +1772,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1816
1772
  }),
1817
1773
  !P.compactToolbar && (P.showFilters || P.showSort || P.showGroup) && (P.showColor || P.showDensity) && /* @__PURE__ */ I("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
1818
1774
  P.showColor && !P.compactToolbar && /* @__PURE__ */ L(S, {
1819
- open: St,
1820
- onOpenChange: Ct,
1775
+ open: wt,
1776
+ onOpenChange: Tt,
1821
1777
  children: [/* @__PURE__ */ I(w, {
1822
1778
  asChild: !0,
1823
1779
  children: /* @__PURE__ */ L(d, {
@@ -1843,7 +1799,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1843
1799
  variant: "ghost",
1844
1800
  size: "sm",
1845
1801
  className: "h-6 px-2 text-xs",
1846
- onClick: () => xt(void 0),
1802
+ onClick: () => Ct(void 0),
1847
1803
  "data-testid": "clear-row-color",
1848
1804
  children: A("list.clear")
1849
1805
  })]
@@ -1858,7 +1814,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1858
1814
  value: Y?.field || "",
1859
1815
  onChange: (e) => {
1860
1816
  let t = e.target.value;
1861
- xt(t ? {
1817
+ Ct(t ? {
1862
1818
  field: t,
1863
1819
  colors: Y?.colors || {}
1864
1820
  } : void 0);
@@ -1867,7 +1823,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1867
1823
  children: [/* @__PURE__ */ I("option", {
1868
1824
  value: "",
1869
1825
  children: A("list.none")
1870
- }), pn.map((e) => /* @__PURE__ */ I("option", {
1826
+ }), hn.map((e) => /* @__PURE__ */ I("option", {
1871
1827
  value: e.name,
1872
1828
  children: e.label
1873
1829
  }, e.name))]
@@ -1892,7 +1848,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1892
1848
  });
1893
1849
  })(),
1894
1850
  P.showDensity && !P.compactToolbar && F === "gallery" && (() => {
1895
- let e = Kt === "small" ? Se : Kt === "medium" ? xe : be, t = Kt === "small" ? A("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : Kt === "medium" ? A("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : A("grid.toolbar.densitySpacious", { defaultValue: "Spacious" }), n = `${A("grid.toolbar.densityMode", { defaultValue: "Density" })}: ${t}`, r = A("grid.toolbar.densityCycleHint", {
1851
+ let e = Jt === "small" ? Se : Jt === "medium" ? xe : be, t = Jt === "small" ? A("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : Jt === "medium" ? A("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : A("grid.toolbar.densitySpacious", { defaultValue: "Spacious" }), n = `${A("grid.toolbar.densityMode", { defaultValue: "Density" })}: ${t}`, r = A("grid.toolbar.densityCycleHint", {
1896
1852
  defaultValue: "{{label}} (click to cycle)",
1897
1853
  label: n
1898
1854
  });
@@ -1900,34 +1856,34 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1900
1856
  variant: "ghost",
1901
1857
  size: "sm",
1902
1858
  "aria-label": n,
1903
- className: E("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150", Kt !== "small" && "text-foreground font-medium"),
1904
- onClick: Jt,
1859
+ className: E("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150", Jt !== "small" && "text-foreground font-medium"),
1860
+ onClick: Xt,
1905
1861
  title: r,
1906
1862
  children: /* @__PURE__ */ I(e, { className: "h-3.5 w-3.5" })
1907
1863
  });
1908
1864
  })(),
1909
- P.compactToolbar && (P.showGroup || P.showColor || P.showDensity || P.showHideFields) && /* @__PURE__ */ I(Ge, {
1865
+ P.compactToolbar && (P.showGroup || P.showColor || P.showDensity || P.showHideFields) && /* @__PURE__ */ I(Ke, {
1910
1866
  t: A,
1911
- allFields: pn,
1867
+ allFields: hn,
1912
1868
  showGroup: P.showGroup,
1913
1869
  groupingConfig: J,
1914
- setGroupingConfig: _t,
1870
+ setGroupingConfig: yt,
1915
1871
  showColor: P.showColor,
1916
1872
  rowColorConfig: Y,
1917
- setRowColorConfig: xt,
1873
+ setRowColorConfig: Ct,
1918
1874
  showDensity: P.showDensity,
1919
1875
  density: Q,
1920
1876
  showHideFields: P.showHideFields,
1921
1877
  hiddenFields: Z,
1922
- updateHiddenFields: jt,
1878
+ updateHiddenFields: Nt,
1923
1879
  showInlineEdit: F === "grid",
1924
- inlineEdit: Pt,
1925
- setInlineEdit: It
1880
+ inlineEdit: It,
1881
+ setInlineEdit: Rt
1926
1882
  }),
1927
- (P.showColor || P.showDensity || P.compactToolbar) && Wt && Ut && /* @__PURE__ */ I("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }),
1928
- Wt && Ut && /* @__PURE__ */ L(S, {
1929
- open: Lt,
1930
- onOpenChange: Rt,
1883
+ (P.showColor || P.showDensity || P.compactToolbar) && Kt && Gt && /* @__PURE__ */ I("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }),
1884
+ Kt && Gt && /* @__PURE__ */ L(S, {
1885
+ open: zt,
1886
+ onOpenChange: Bt,
1931
1887
  children: [/* @__PURE__ */ I(w, {
1932
1888
  asChild: !0,
1933
1889
  children: /* @__PURE__ */ L(d, {
@@ -1944,18 +1900,18 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1944
1900
  className: "w-48 p-2",
1945
1901
  children: /* @__PURE__ */ L("div", {
1946
1902
  className: "space-y-1",
1947
- children: [(Wt.formats || ["csv", "json"]).map((e) => /* @__PURE__ */ L(d, {
1903
+ children: [(Kt.formats || ["csv", "json"]).map((e) => /* @__PURE__ */ L(d, {
1948
1904
  variant: "ghost",
1949
1905
  size: "sm",
1950
1906
  className: "w-full justify-start h-8 text-xs",
1951
- disabled: zt,
1952
- onClick: () => fn(e),
1953
- children: [zt ? /* @__PURE__ */ I(me, { className: "h-3.5 w-3.5 mr-2 animate-spin" }) : /* @__PURE__ */ I(se, { className: "h-3.5 w-3.5 mr-2" }), A("list.exportAs", { format: e.toUpperCase() })]
1954
- }, e)), Vt && /* @__PURE__ */ I("div", {
1907
+ disabled: Vt,
1908
+ onClick: () => mn(e),
1909
+ children: [Vt ? /* @__PURE__ */ I(me, { className: "h-3.5 w-3.5 mr-2 animate-spin" }) : /* @__PURE__ */ I(se, { className: "h-3.5 w-3.5 mr-2" }), A("list.exportAs", { format: e.toUpperCase() })]
1910
+ }, e)), Ut && /* @__PURE__ */ I("div", {
1955
1911
  className: "px-2 py-1 text-xs",
1956
1912
  style: { color: "var(--destructive, #ef4444)" },
1957
1913
  role: "alert",
1958
- children: Vt
1914
+ children: Ut
1959
1915
  })]
1960
1916
  })
1961
1917
  })]
@@ -1983,7 +1939,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
1983
1939
  })]
1984
1940
  }),
1985
1941
  (() => {
1986
- let e = M.allowPrinting || M.sharing?.enabled || M.sharing?.type || Wt && Ut;
1942
+ let e = M.allowPrinting || M.sharing?.enabled || M.sharing?.type || Kt && Gt;
1987
1943
  return P.showSearch && e ? /* @__PURE__ */ I("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }) : null;
1988
1944
  })(),
1989
1945
  P.showSearch && /* @__PURE__ */ L(S, {
@@ -2014,7 +1970,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2014
1970
  /* @__PURE__ */ I(b, {
2015
1971
  placeholder: A("list.search") + "...",
2016
1972
  value: R,
2017
- onChange: (e) => sn(e.target.value),
1973
+ onChange: (e) => ln(e.target.value),
2018
1974
  className: "pl-7 h-8 text-xs",
2019
1975
  autoFocus: !0
2020
1976
  }),
@@ -2022,7 +1978,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2022
1978
  variant: "ghost",
2023
1979
  size: "sm",
2024
1980
  className: "absolute right-0.5 top-1/2 -translate-y-1/2 h-5 w-5 p-0 hover:bg-muted-foreground/20",
2025
- onClick: () => sn(""),
1981
+ onClick: () => ln(""),
2026
1982
  children: /* @__PURE__ */ I(De, { className: "h-3 w-3" })
2027
1983
  })
2028
1984
  ]
@@ -2045,7 +2001,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2045
2001
  }),
2046
2002
  /* @__PURE__ */ L("div", {
2047
2003
  className: "flex-1 min-h-0 bg-background relative overflow-hidden animate-in fade-in-0 duration-200",
2048
- children: [/* @__PURE__ */ I(T, { active: W && U.length > 0 }), Xe && U.length === 0 ? /* @__PURE__ */ I(m, {
2004
+ children: [/* @__PURE__ */ I(T, { active: W && U.length > 0 }), Ze && U.length === 0 ? /* @__PURE__ */ I(m, {
2049
2005
  "data-testid": "list-error-state",
2050
2006
  className: "h-full min-h-[200px] p-8 gap-1 [&>h3]:text-lg [&>h3]:font-medium [&>h3]:text-foreground [&>p]:max-w-md",
2051
2007
  icon: /* @__PURE__ */ I(re, { className: "h-12 w-12 text-destructive/60" }),
@@ -2056,7 +2012,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2056
2012
  variant: "outline",
2057
2013
  size: "sm",
2058
2014
  "data-testid": "list-error-retry",
2059
- onClick: () => st((e) => e + 1),
2015
+ onClick: () => lt((e) => e + 1),
2060
2016
  children: [/* @__PURE__ */ I(ye, { className: "h-4 w-4 mr-1.5" }), A("list.retry")]
2061
2017
  })
2062
2018
  }) : W && U.length === 0 ? /* @__PURE__ */ L("div", {
@@ -2097,19 +2053,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2097
2053
  }) : void 0
2098
2054
  });
2099
2055
  })() : /* @__PURE__ */ I(Me, {
2100
- schema: ln,
2056
+ schema: dn,
2101
2057
  ...D,
2102
- ...tn ? {} : { data: U },
2058
+ ...rn ? {} : { data: U },
2103
2059
  loading: W,
2104
- onRowSelect: Tt,
2105
- ...F === "grid" && !J?.fields?.length && mt != null ? {
2060
+ onRowSelect: Dt,
2061
+ ...F === "grid" && !J?.fields?.length && gt != null ? {
2106
2062
  manualPagination: !0,
2107
- rowCount: mt,
2108
- page: ft,
2063
+ rowCount: gt,
2064
+ page: mt,
2109
2065
  pageSize: q,
2110
- onPageChange: (e) => pt(e),
2066
+ onPageChange: (e) => ht(e),
2111
2067
  onPageSizeChange: (e) => {
2112
- dt(e), pt(1);
2068
+ pt(e), ht(1);
2113
2069
  }
2114
2070
  } : {}
2115
2071
  })]
@@ -2128,7 +2084,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2128
2084
  })]
2129
2085
  })
2130
2086
  }),
2131
- M.bulkActions && M.bulkActions.length > 0 && wt.length > 0 && F !== "grid" && /* @__PURE__ */ L("div", {
2087
+ M.bulkActions && M.bulkActions.length > 0 && Et.length > 0 && F !== "grid" && /* @__PURE__ */ L("div", {
2132
2088
  className: "border-t border-primary/30 px-4 py-2 flex items-center gap-2 text-xs bg-primary/10 text-foreground shrink-0 shadow-sm",
2133
2089
  role: "region",
2134
2090
  "aria-label": "Bulk actions",
@@ -2138,9 +2094,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2138
2094
  /* @__PURE__ */ L("span", {
2139
2095
  className: "font-medium",
2140
2096
  children: [
2141
- wt.length,
2097
+ Et.length,
2142
2098
  " ",
2143
- wt.length === 1 ? "item" : "items",
2099
+ Et.length === 1 ? "item" : "items",
2144
2100
  " selected"
2145
2101
  ]
2146
2102
  }),
@@ -2152,7 +2108,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2152
2108
  variant: n ? "destructive" : "outline",
2153
2109
  size: "sm",
2154
2110
  className: "h-7 px-2.5 text-xs gap-1.5",
2155
- onClick: () => D.onBulkAction?.(e, wt),
2111
+ onClick: () => D.onBulkAction?.(e, Et),
2156
2112
  "data-testid": `bulk-action-${e}`,
2157
2113
  children: [r && /* @__PURE__ */ I(r, { className: "h-3 w-3" }), pe(e)]
2158
2114
  }, e);
@@ -2162,7 +2118,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2162
2118
  variant: "ghost",
2163
2119
  size: "sm",
2164
2120
  className: "h-7 px-2 text-xs ml-auto gap-1",
2165
- onClick: () => Tt([]),
2121
+ onClick: () => Dt([]),
2166
2122
  children: [/* @__PURE__ */ I(De, { className: "h-3 w-3" }), "Clear"]
2167
2123
  })
2168
2124
  ]
@@ -2175,7 +2131,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2175
2131
  className: "font-medium text-foreground/80",
2176
2132
  children: U.length === 1 ? A("list.recordCountOne", { count: U.length }) : A("list.recordCount", { count: U.length })
2177
2133
  }),
2178
- ct && /* @__PURE__ */ I("span", {
2134
+ ut && /* @__PURE__ */ I("span", {
2179
2135
  className: "text-amber-600",
2180
2136
  "data-testid": "data-limit-warning",
2181
2137
  children: A("list.dataLimitReached", { limit: q })
@@ -2188,7 +2144,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2188
2144
  value: String(q),
2189
2145
  onChange: (e) => {
2190
2146
  let t = Number(e.target.value);
2191
- dt(t), D.onPageSizeChange && D.onPageSizeChange(t);
2147
+ pt(t), D.onPageSizeChange && D.onPageSizeChange(t);
2192
2148
  },
2193
2149
  children: M.pagination.pageSizeOptions.map((e) => /* @__PURE__ */ I("option", {
2194
2150
  value: String(e),
@@ -2198,8 +2154,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2198
2154
  })
2199
2155
  ]
2200
2156
  }),
2201
- cn.isOverlay && /* @__PURE__ */ I(te, {
2202
- ...cn,
2157
+ un.isOverlay && /* @__PURE__ */ I(te, {
2158
+ ...un,
2203
2159
  title: M.label ? `${M.label} Detail` : M.objectName ? `${M.objectName.charAt(0).toUpperCase() + M.objectName.slice(1)} Detail` : "Record Detail",
2204
2160
  children: (e) => /* @__PURE__ */ I("div", {
2205
2161
  className: "space-y-3",
@@ -2218,24 +2174,24 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
2218
2174
  ]
2219
2175
  });
2220
2176
  });
2221
- K.displayName = "ListView";
2177
+ ot.displayName = "ListView";
2222
2178
  //#endregion
2223
2179
  //#region src/ObjectGallery.tsx
2224
- var ot = {
2180
+ var st = {
2225
2181
  small: "grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",
2226
2182
  medium: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
2227
2183
  large: "grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
2228
- }, st = {
2184
+ }, ct = {
2229
2185
  small: "aspect-square",
2230
2186
  medium: "aspect-[4/3]",
2231
2187
  large: "aspect-[16/10]"
2232
- }, ct = /* @__PURE__ */ new Set([
2188
+ }, lt = /* @__PURE__ */ new Set([
2233
2189
  "number",
2234
2190
  "currency",
2235
2191
  "percent",
2236
2192
  "integer",
2237
2193
  "decimal"
2238
- ]), lt = [
2194
+ ]), ut = [
2239
2195
  {
2240
2196
  bg: "from-indigo-500/15 via-indigo-500/5 to-purple-500/10",
2241
2197
  ring: "ring-indigo-500/15",
@@ -2267,12 +2223,12 @@ var ot = {
2267
2223
  text: "text-violet-600/70 dark:text-violet-300/70"
2268
2224
  }
2269
2225
  ];
2270
- function ut(e) {
2226
+ function dt(e) {
2271
2227
  let t = 5381;
2272
2228
  for (let n = 0; n < e.length; n++) t = (t << 5) + t + e.charCodeAt(n);
2273
- return lt[Math.abs(t) % lt.length];
2229
+ return ut[Math.abs(t) % ut.length];
2274
2230
  }
2275
- var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i, hidden: a }) => {
2231
+ var ft = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i, hidden: a }) => {
2276
2232
  let [o, s] = u(!1), c = !!e && !o;
2277
2233
  return /* @__PURE__ */ I("div", {
2278
2234
  className: E("w-full overflow-hidden relative", r),
@@ -2300,7 +2256,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2300
2256
  })
2301
2257
  })
2302
2258
  });
2303
- }, q = ({ imageUrl: e, title: t, placeholder: n }) => {
2259
+ }, pt = ({ imageUrl: e, title: t, placeholder: n }) => {
2304
2260
  let [r, i] = u(!1), a = !!e && !r;
2305
2261
  return /* @__PURE__ */ I("div", {
2306
2262
  className: E("flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br ring-1 ring-inset", n.bg, n.ring),
@@ -2315,8 +2271,8 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2315
2271
  children: t[0]?.toUpperCase()
2316
2272
  })
2317
2273
  });
2318
- }, ft = (e) => {
2319
- let { schema: n } = e, r = s(Ne), a = e.dataSource || r?.dataSource, d = Pe(n.bind), [m, h] = u([]), [g, _] = u(!1), [v, ee] = u(null), y = Ie({
2274
+ }, q = (e) => {
2275
+ let { schema: n } = e, i = s(Ne), a = e.dataSource || i?.dataSource, d = Pe(n.bind), [m, h] = u([]), [g, _] = u(!1), [v, ee] = u(null), y = Ie({
2320
2276
  navigation: n.navigation,
2321
2277
  objectName: n.objectName,
2322
2278
  onRowClick: e.onRowClick ?? e.onCardClick
@@ -2453,7 +2409,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2453
2409
  children: T.map((t) => {
2454
2410
  let n = e[t];
2455
2411
  if (n == null || n === "") return null;
2456
- let r = re(t), i = Ve(r) || r.type || "text", a = Be(i), o = r?.label && String(r.label).trim() ? String(r.label) : void 0, s = o != null && ct.has(i);
2412
+ let r = re(t), i = He(r) || r.type || "text", a = Ve(i), o = r?.label && String(r.label).trim() ? String(r.label) : void 0, s = o != null && lt.has(i);
2457
2413
  return /* @__PURE__ */ L("div", {
2458
2414
  className: E("text-xs text-muted-foreground truncate [&_*]:!text-xs", s && "flex items-baseline gap-1.5"),
2459
2415
  onClick: (e) => {
@@ -2468,8 +2424,8 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2468
2424
  })]
2469
2425
  }, t);
2470
2426
  })
2471
- }), M = (t, r) => {
2472
- let a = t.id ?? t._id ?? r, o = (w != null && t[w] != null && t[w] !== "" ? String(t[w]) : void 0) ?? i(v, t), s = t[x], c = ut(String(a) + "|" + o), l = E("group relative overflow-hidden border-border/60 bg-card", "transition-all duration-200 ease-out", "hover:shadow-lg hover:border-border hover:-translate-y-0.5", (e.onCardClick || e.onRowClick || n.navigation) && "cursor-pointer");
2427
+ }), M = (t, i) => {
2428
+ let a = t.id ?? t._id ?? i, o = (w != null && t[w] != null && t[w] !== "" ? String(t[w]) : void 0) ?? r(v, t), s = t[x], c = dt(String(a) + "|" + o), l = E("group relative overflow-hidden border-border/60 bg-card", "transition-all duration-200 ease-out", "hover:shadow-lg hover:border-border hover:-translate-y-0.5", (e.onCardClick || e.onRowClick || n.navigation) && "cursor-pointer");
2473
2429
  return ie && S === "contain" ? /* @__PURE__ */ L(f, {
2474
2430
  role: "listitem",
2475
2431
  className: l,
@@ -2481,7 +2437,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2481
2437
  className: "p-4",
2482
2438
  children: /* @__PURE__ */ L("div", {
2483
2439
  className: "flex items-start gap-3",
2484
- children: [/* @__PURE__ */ I(q, {
2440
+ children: [/* @__PURE__ */ I(pt, {
2485
2441
  imageUrl: s,
2486
2442
  title: o,
2487
2443
  placeholder: c
@@ -2504,11 +2460,11 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2504
2460
  "aria-hidden": !0,
2505
2461
  className: E("absolute inset-x-0 top-0 h-[3px] bg-gradient-to-r", c.bg)
2506
2462
  }),
2507
- /* @__PURE__ */ I(dt, {
2463
+ /* @__PURE__ */ I(ft, {
2508
2464
  imageUrl: s,
2509
2465
  title: o,
2510
2466
  coverFit: S,
2511
- aspectClass: st[C],
2467
+ aspectClass: ct[C],
2512
2468
  placeholder: c,
2513
2469
  hidden: !ie
2514
2470
  }),
@@ -2523,7 +2479,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2523
2479
  ]
2524
2480
  }, a);
2525
2481
  }, fe = (e) => /* @__PURE__ */ I("div", {
2526
- className: E("grid gap-4 p-4 auto-rows-min content-start", ot[C], n.className),
2482
+ className: E("grid gap-4 p-4 auto-rows-min content-start", st[C], n.className),
2527
2483
  role: "list",
2528
2484
  children: e.map((e, t) => M(e, t))
2529
2485
  });
@@ -2563,21 +2519,21 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
2563
2519
  })
2564
2520
  })] });
2565
2521
  };
2566
- e.register("object-gallery", ft, {
2522
+ e.register("object-gallery", q, {
2567
2523
  namespace: "plugin-list",
2568
2524
  label: "Gallery View",
2569
2525
  category: "view"
2570
2526
  });
2571
2527
  //#endregion
2572
2528
  //#region src/components/TabBar.tsx
2573
- function pt(e) {
2529
+ function mt(e) {
2574
2530
  return e ? Oe[e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("")] ?? null : null;
2575
2531
  }
2576
- function mt(e) {
2532
+ function ht(e) {
2577
2533
  return e.filter((e) => e.pinned || e.visible !== "false" && e.visible !== !1).sort((e, t) => (e.order ?? 0) - (t.order ?? 0));
2578
2534
  }
2579
- var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2580
- let i = a.useMemo(() => mt(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useCallback((e) => {
2535
+ var gt = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2536
+ let i = a.useMemo(() => ht(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useCallback((e) => {
2581
2537
  c(e.name), n?.(e);
2582
2538
  }, [n]);
2583
2539
  return i.length === 0 ? null : /* @__PURE__ */ I("div", {
@@ -2585,7 +2541,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2585
2541
  "data-testid": "view-tabs",
2586
2542
  role: "tablist",
2587
2543
  children: i.map((e) => {
2588
- let t = pt(e.icon), n = l === e.name;
2544
+ let t = mt(e.icon), n = l === e.name;
2589
2545
  return /* @__PURE__ */ L(d, {
2590
2546
  variant: "ghost",
2591
2547
  size: "sm",
@@ -2598,12 +2554,12 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2598
2554
  }, e.name);
2599
2555
  })
2600
2556
  });
2601
- }, gt = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2602
- let i = a.useMemo(() => mt(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useMemo(() => i.find((e) => e.name === l) ?? i[0], [i, l]), f = a.useCallback((e) => {
2557
+ }, _t = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2558
+ let i = a.useMemo(() => ht(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useMemo(() => i.find((e) => e.name === l) ?? i[0], [i, l]), f = a.useCallback((e) => {
2603
2559
  c(e.name), n?.(e);
2604
2560
  }, [n]);
2605
2561
  if (i.length === 0) return null;
2606
- let p = pt(u?.icon);
2562
+ let p = mt(u?.icon);
2607
2563
  return /* @__PURE__ */ I("div", {
2608
2564
  className: E("px-2 py-1", r),
2609
2565
  "data-testid": "view-tabs-select",
@@ -2627,7 +2583,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2627
2583
  align: "start",
2628
2584
  className: "w-56 max-h-72 overflow-y-auto",
2629
2585
  children: i.map((e) => {
2630
- let t = pt(e.icon);
2586
+ let t = mt(e.icon);
2631
2587
  return /* @__PURE__ */ L(_, {
2632
2588
  onClick: () => f(e),
2633
2589
  className: E("text-sm", l === e.name && "font-medium bg-muted"),
@@ -2641,7 +2597,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
2641
2597
  })] })
2642
2598
  });
2643
2599
  };
2644
- e.register("list-view", K, {
2600
+ e.register("list-view", ot, {
2645
2601
  namespace: "plugin-list",
2646
2602
  label: "List View",
2647
2603
  category: "Views",
@@ -2718,7 +2674,7 @@ e.register("list-view", K, {
2718
2674
  sort: [],
2719
2675
  options: {}
2720
2676
  }
2721
- }), e.register("list", K, {
2677
+ }), e.register("list", ot, {
2722
2678
  namespace: "view",
2723
2679
  skipFallback: !0,
2724
2680
  category: "view",
@@ -2790,4 +2746,4 @@ e.register("list-view", K, {
2790
2746
  ]
2791
2747
  });
2792
2748
  //#endregion
2793
- export { K as ListView, ft as ObjectGallery, ht as TabBar, gt as TabBarSelect, Je as UserFilters, Ue as ViewSwitcher, He as ViewSwitcherDropdown, tt as evaluateConditionalFormatting, W as normalizeFilterCondition, $e as normalizeFilters };
2749
+ export { ot as ListView, q as ObjectGallery, gt as TabBar, _t as TabBarSelect, Ye as UserFilters, We as ViewSwitcher, Ue as ViewSwitcherDropdown, G as evaluateConditionalFormatting, W as normalizeFilterCondition, tt as normalizeFilters };