@declarion/react 0.87.0 → 0.89.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.
Files changed (90) hide show
  1. package/dist-lib/app.js +28 -28
  2. package/dist-lib/components/actions/ActionButton.js +86 -85
  3. package/dist-lib/components/actions/ActionResultDialog.impl.js +47 -47
  4. package/dist-lib/components/actions/ActionRunner.js +47 -47
  5. package/dist-lib/components/actions/ObjectActionBar.js +9 -9
  6. package/dist-lib/components/actions/RowActionsKebab.js +19 -19
  7. package/dist-lib/components/agents/AgentChatPanel.impl.js +53 -53
  8. package/dist-lib/components/chrome/AssociationTabs.js +21 -21
  9. package/dist-lib/components/chrome/RecordHeader.js +33 -40
  10. package/dist-lib/components/detail-layout/AssociatedBlock.js +387 -381
  11. package/dist-lib/components/detail-layout/ChildrenBlock.js +12 -13
  12. package/dist-lib/components/detail-layout/ChildrenTimeline.js +198 -198
  13. package/dist-lib/components/detail-layout/DraggableChildrenTable.js +114 -114
  14. package/dist-lib/components/detail-layout/EditableChildrenTable.js +160 -160
  15. package/dist-lib/components/detail-layout/EvidenceBlock.js +20 -21
  16. package/dist-lib/components/detail-layout/PropertiesBlock.js +45 -39
  17. package/dist-lib/components/detail-layout/QuickAddForm.js +9 -9
  18. package/dist-lib/components/detail-layout/TimelineComposer.js +87 -89
  19. package/dist-lib/components/detail-layout/widgets/EntityScorecardWidget.js +100 -99
  20. package/dist-lib/components/fields/FileReferenceField.js +9 -9
  21. package/dist-lib/components/fields/StructureField.js +57 -47
  22. package/dist-lib/components/fields/TimestampField.js +59 -54
  23. package/dist-lib/components/fields/cells/factories/money.js +14 -23
  24. package/dist-lib/components/fields/cells/factories/nextRun.js +1 -1
  25. package/dist-lib/components/fields/cells/factories/text.js +18 -3
  26. package/dist-lib/components/fields/cells/factories/timestamp.js +24 -12
  27. package/dist-lib/components/file-widgets/DocumentCard.js +108 -106
  28. package/dist-lib/components/layout/Layout.js +306 -361
  29. package/dist-lib/components/layout/Rail.js +42 -41
  30. package/dist-lib/components/layout/Sidebar.js +132 -117
  31. package/dist-lib/components/layout/TabStrip.js +116 -115
  32. package/dist-lib/components/layout/TenantChip.js +47 -54
  33. package/dist-lib/components/layout/TopBar.js +108 -105
  34. package/dist-lib/components/list/InlineEditCell.js +23 -23
  35. package/dist-lib/components/list/QuickPeek.js +65 -66
  36. package/dist-lib/components/pages/DocumentsMenu.js +42 -42
  37. package/dist-lib/components/pages/ExportMenu.js +25 -25
  38. package/dist-lib/components/pages/RecordDocumentsPanel.js +35 -35
  39. package/dist-lib/components/pages/RecordNotesPanel.js +94 -93
  40. package/dist-lib/components/pages/SmartDetailPage.impl.js +421 -417
  41. package/dist-lib/components/pages/SmartListPage.impl.js +293 -295
  42. package/dist-lib/components/pages/SmartRecordListPage.impl.js +310 -310
  43. package/dist-lib/components/pages/auth/AuthShell.js +73 -73
  44. package/dist-lib/components/pages/auth/SignIn.js +32 -32
  45. package/dist-lib/components/pages/auth/SignUp.impl.js +3 -3
  46. package/dist-lib/components/pages/auth/SignUpCode.js +9 -9
  47. package/dist-lib/components/pages/list/ListFloatbar.js +12 -12
  48. package/dist-lib/components/pages/list/ListHeader.js +19 -19
  49. package/dist-lib/components/pages/list/ListNoRows.js +15 -15
  50. package/dist-lib/components/pages/list/ListToolbar.js +145 -145
  51. package/dist-lib/components/pages/list/useActiveView.js +14 -5
  52. package/dist-lib/components/pages/list/useListQuery.js +121 -81
  53. package/dist-lib/components/pages/list/useListRowInteraction.js +70 -70
  54. package/dist-lib/components/pages/list/useRowMenu.js +7 -7
  55. package/dist-lib/components/pages/profile/Preferences.impl.js +81 -78
  56. package/dist-lib/components/pages/profile/Profile.impl.js +191 -189
  57. package/dist-lib/components/pages/tenant-params/TenantParamsPage.impl.js +166 -158
  58. package/dist-lib/components/shared/ChangePasswordDialog.impl.js +23 -23
  59. package/dist-lib/components/shared/MarkdownRenderer.js +9 -9
  60. package/dist-lib/hooks/useAuth.js +11 -11
  61. package/dist-lib/hooks/useBranding.js +4 -4
  62. package/dist-lib/hooks/useDisplayTimeZone.js +8 -0
  63. package/dist-lib/hooks/useFollowAgentOpen.js +24 -24
  64. package/dist-lib/hooks/useImpersonation.js +6 -6
  65. package/dist-lib/hooks/useMutations.js +23 -23
  66. package/dist-lib/hooks/useObjectStatus.js +5 -5
  67. package/dist-lib/hooks/useParams.js +59 -51
  68. package/dist-lib/hooks/useProperties.js +8 -8
  69. package/dist-lib/hooks/useRowTenant.js +18 -6
  70. package/dist-lib/hooks/useText.js +9 -7
  71. package/dist-lib/hooks/useUiPreferences.js +71 -0
  72. package/dist-lib/index.d.ts +22 -6
  73. package/dist-lib/index.js +127 -126
  74. package/dist-lib/lib/actions.js +116 -84
  75. package/dist-lib/lib/child-config.js +10 -1
  76. package/dist-lib/lib/format-count.js +16 -1
  77. package/dist-lib/lib/language.js +23 -21
  78. package/dist-lib/lib/money-text.js +29 -0
  79. package/dist-lib/lib/profile.js +4 -0
  80. package/dist-lib/lib/role-label.js +8 -0
  81. package/dist-lib/lib/schema-routing.js +34 -14
  82. package/dist-lib/lib/shortcut.js +10 -0
  83. package/dist-lib/lib/timestamp.js +93 -31
  84. package/dist-lib/stores/auth.js +9 -8
  85. package/dist-lib/stores/preferences.js +56 -17
  86. package/dist-lib/testing.d.ts +1 -1
  87. package/dist-lib/testing.js +25 -28
  88. package/dist-lib/types/schema.js +33 -27
  89. package/dist-lib/{useResponsiveMode-D3SKz5z4.d.ts → useResponsiveMode-9_eJT18k.d.ts} +5 -5
  90. package/package.json +1 -1
@@ -1,69 +1,70 @@
1
1
  import { ApiError as e } from "../../types/api.js";
2
2
  import { coerceDisplayString as t } from "../../lib/display-value.js";
3
3
  import { formatOffsetTimestamp as n, formatWireDateTime as r } from "../../lib/timestamp.js";
4
- import { entityAllowsCreateRoute as i, entityAllowsMutation as a, extractPkValues as o, fieldDisplayName as s, getDisplayValue as c, getPrimaryKeyFields as l, pkValuesFromId as u, pkValuesToId as d, resolveRefRecordLabel as f, rowAllowsMutation as p, rowSetInTenant as m } from "../../types/schema.js";
5
- import { useEmbed as ee } from "../../embed/EmbedContext.js";
6
- import { useFirstScreenSettled as te } from "../../lib/capabilityPrefetch.js";
7
- import { useAuthStore as ne } from "../../stores/auth.js";
8
- import { useSchema as re } from "../../hooks/useSchema.js";
4
+ import { entityAllowsCreateRoute as i, entityAllowsMutation as a, extractPkValues as o, fieldDisplayName as s, getDisplayValue as c, getPrimaryKeyFields as l, isUserEditableField as u, pkValuesFromId as d, pkValuesToId as f, resolveRefRecordLabel as p, rowAllowsMutation as m, rowSetInTenant as ee } from "../../types/schema.js";
5
+ import { useEmbed as te } from "../../embed/EmbedContext.js";
6
+ import { useFirstScreenSettled as ne } from "../../lib/capabilityPrefetch.js";
7
+ import { useAuthStore as re } from "../../stores/auth.js";
8
+ import { useSchema as ie } from "../../hooks/useSchema.js";
9
+ import { buildActionBody as ae, executeAction as oe } from "../../api/data.js";
9
10
  import { Icon as h } from "../primitives/Icons.js";
10
11
  import { Btn as g } from "../primitives/Btn.js";
11
- import { IconBtn as ie } from "../primitives/IconBtn.js";
12
- import { useText as ae } from "../../hooks/useText.js";
13
- import { useResponsiveMode as oe } from "../../hooks/useResponsiveMode.js";
14
- import { Spinner as se } from "../primitives/Spinner.js";
15
- import { DynamicIcon as _ } from "../shared/DynamicIcon.js";
16
- import { buildActionBody as ce, executeAction as le } from "../../api/data.js";
17
- import { useTabStore as ue } from "../../stores/tabs.js";
18
- import { useReportEmbedDirty as de } from "../../embed/embed-dirty.js";
19
- import { useEmbedNavigate as fe } from "../../embed/useEmbedNavigate.js";
12
+ import { IconBtn as se } from "../primitives/IconBtn.js";
13
+ import { useText as _ } from "../../hooks/useText.js";
14
+ import { useResponsiveMode as ce } from "../../hooks/useResponsiveMode.js";
15
+ import { Spinner as le } from "../primitives/Spinner.js";
16
+ import { DynamicIcon as ue } from "../shared/DynamicIcon.js";
17
+ import { useTabStore as de } from "../../stores/tabs.js";
18
+ import { useReportEmbedDirty as fe } from "../../embed/embed-dirty.js";
19
+ import { useEmbedNavigate as pe } from "../../embed/useEmbedNavigate.js";
20
20
  import { useTabNavigate as v } from "../../hooks/useTabNavigate.js";
21
- import { usePageStateStore as pe } from "../../stores/page-state.js";
22
- import { applyRowState as me, resolveActionLayoutForSlot as y } from "../../lib/actions.js";
23
- import { useScreenIsLive as he } from "../../stores/realtime.js";
24
- import { useActionRunner as ge } from "../actions/ActionRunner.js";
21
+ import { usePageStateStore as me } from "../../stores/page-state.js";
22
+ import { applyRowState as he, resolveActionLayoutForSlot as y } from "../../lib/actions.js";
23
+ import { useScreenIsLive as ge } from "../../stores/realtime.js";
24
+ import { useActionRunner as b } from "../actions/ActionRunner.js";
25
25
  import { canonicalUrl as _e } from "../../lib/canonical-url.js";
26
26
  import { useRegisterRetainedQuery as ve } from "../../hooks/usePageStateRuntime.js";
27
- import { useBrandingChrome as b } from "../../hooks/useBrandingChrome.js";
28
- import { objectQueryKey as ye, useObject as be } from "../../hooks/useObject.js";
29
- import { discardFile as x } from "../file-widgets/upload.js";
30
- import { FileDraftScope as S, useFileDraftScope as xe } from "../file-widgets/draft-scope.js";
31
- import { getEntityFileField as Se, getSchemaFieldValue as C, serializeSchemaFieldValue as w } from "../file-widgets/host.js";
27
+ import { useBrandingChrome as x } from "../../hooks/useBrandingChrome.js";
28
+ import { objectQueryKey as ye, useObject as S } from "../../hooks/useObject.js";
29
+ import { discardFile as be } from "../file-widgets/upload.js";
30
+ import { FileDraftScope as C, useFileDraftScope as xe } from "../file-widgets/draft-scope.js";
31
+ import { getEntityFileField as w, getSchemaFieldValue as Se, serializeSchemaFieldValue as T } from "../file-widgets/host.js";
32
32
  import { buildFilesPayload as Ce, collectCommittedFileIds as we } from "../file-widgets/payload.js";
33
33
  import { useCreateObject as Te, useRestoreEntity as Ee, useUpdateObject as De } from "../../hooks/useMutations.js";
34
34
  import { useScreenBack as Oe } from "../../hooks/useScreenBack.js";
35
35
  import { usePlainScrollRestoration as ke } from "../../lib/scroll-restoration.js";
36
36
  import { DetailSkeleton as Ae } from "../shared/LoadingSkeleton.js";
37
- import { dispatchAction as T } from "../../lib/action-dispatch.js";
37
+ import { dispatchAction as E } from "../../lib/action-dispatch.js";
38
38
  import { ResponsiveActionBar as je } from "../actions/ResponsiveActionBar.js";
39
39
  import { useRowTenant as Me } from "../../hooks/useRowTenant.js";
40
40
  import { effectiveScreenForRecord as Ne, variantActionCodesForRecord as Pe } from "../../lib/variants.js";
41
- import { RefreshControl as E } from "../shared/RefreshControl.js";
41
+ import { RefreshControl as D } from "../shared/RefreshControl.js";
42
42
  import { useUnsavedInput as Fe } from "../../hooks/useUnsavedInput.js";
43
43
  import { AssociationTabs as Ie } from "../chrome/AssociationTabs.js";
44
- import { DocumentsMenu as D } from "./DocumentsMenu.js";
44
+ import { DocumentsMenu as O } from "./DocumentsMenu.js";
45
45
  import { canManageDocumentTemplates as Le } from "../../lib/document-templates.js";
46
46
  import { RecordPanels as Re } from "./RecordPanels.js";
47
- import { StatusGroupsDisplay as ze } from "../shared/StatusGroupsDisplay.js";
48
- import { LayoutRenderer as Be } from "../detail-layout/LayoutRenderer.js";
49
- import { ErrorSummary as Ve } from "../detail-layout/ErrorSummary.js";
50
- import { DetailHighlights as He, highlightedFieldCodes as Ue } from "../detail-layout/DetailHighlights.js";
51
- import { DetailAuditStrip as We } from "../detail-layout/DetailAuditStrip.js";
52
- import { EvidenceBlock as Ge } from "../detail-layout/EvidenceBlock.js";
53
- import { RecordHeader as O } from "../chrome/RecordHeader.js";
54
- import { PageShell as Ke } from "../chrome/PageShell.js";
55
- import { findInvalidEmailFields as qe, findMissingRequiredFields as Je, validatePendingChildren as Ye } from "../../lib/children-validation.js";
56
- import { takePeekDraft as Xe } from "../list/peekDraftStore.js";
57
- import { resolveCard as Ze } from "./list/cardProjection.js";
58
- import { useCallback as k, useEffect as A, useMemo as j, useRef as M, useState as N } from "react";
59
- import { Fragment as Qe, jsx as P, jsxs as F } from "react/jsx-runtime";
60
- import { useLocation as $e, useParams as et, useSearchParams as tt } from "react-router";
47
+ import { showsOnNewRecord as ze } from "../../lib/child-config.js";
48
+ import { StatusGroupsDisplay as Be } from "../shared/StatusGroupsDisplay.js";
49
+ import { LayoutRenderer as Ve } from "../detail-layout/LayoutRenderer.js";
50
+ import { ErrorSummary as He } from "../detail-layout/ErrorSummary.js";
51
+ import { DetailHighlights as Ue, highlightedFieldCodes as We } from "../detail-layout/DetailHighlights.js";
52
+ import { DetailAuditStrip as Ge } from "../detail-layout/DetailAuditStrip.js";
53
+ import { EvidenceBlock as Ke } from "../detail-layout/EvidenceBlock.js";
54
+ import { RecordHeader as k } from "../chrome/RecordHeader.js";
55
+ import { PageShell as qe } from "../chrome/PageShell.js";
56
+ import { findInvalidEmailFields as Je, findMissingRequiredFields as Ye, validatePendingChildren as Xe } from "../../lib/children-validation.js";
57
+ import { takePeekDraft as Ze } from "../list/peekDraftStore.js";
58
+ import { resolveCard as Qe } from "./list/cardProjection.js";
59
+ import { useCallback as A, useEffect as j, useMemo as M, useRef as N, useState as P } from "react";
60
+ import { Fragment as $e, jsx as F, jsxs as I } from "react/jsx-runtime";
61
+ import { useLocation as et, useParams as tt, useSearchParams as nt } from "react-router";
61
62
  //#region src/components/pages/SmartDetailPage.impl.tsx
62
- var nt = () => {}, rt = { expand: ["evidence"] };
63
- function I(e, t) {
63
+ var rt = () => {}, it = { expand: ["evidence"] };
64
+ function L(e, t) {
64
65
  return e.length === t.length && JSON.stringify(e) === JSON.stringify(t);
65
66
  }
66
- function it({ entity: e, formData: t, record: n, isNew: r, pendingStatuses: i, pendingProperties: a, pendingChildren: o, childrenSnapshot: s }) {
67
+ function at({ entity: e, formData: t, record: n, isNew: r, pendingStatuses: i, pendingProperties: a, pendingChildren: o, childrenSnapshot: s }) {
67
68
  let c = {}, l = Ce({
68
69
  entity: e,
69
70
  formData: t,
@@ -72,12 +73,12 @@ function it({ entity: e, formData: t, record: n, isNew: r, pendingStatuses: i, p
72
73
  }), u = we(l);
73
74
  if (r) for (let [n, r] of Object.entries(t)) {
74
75
  if (e.files?.has(n)) continue;
75
- let t = w(e, n, r);
76
+ let t = T(e, n, r);
76
77
  t !== "" && t != null && (c[n] = t);
77
78
  }
78
79
  else for (let [r, i] of Object.entries(t)) {
79
80
  if (e.files?.has(r)) continue;
80
- let t = n ? C(e, n, r) : void 0, a = w(e, r, i), o = w(e, r, t);
81
+ let t = n ? Se(e, n, r) : void 0, a = T(e, r, i), o = T(e, r, t);
81
82
  (a === "" ? null : a) !== (o === "" || o === void 0 ? null : o) && (c[r] = a);
82
83
  }
83
84
  if (Object.keys(l).length > 0 && (c.$files = l), Object.keys(i).length > 0 && (c.$statuses = Object.entries(i).map(([e, t]) => ({
@@ -93,7 +94,7 @@ function it({ entity: e, formData: t, record: n, isNew: r, pendingStatuses: i, p
93
94
  let { _key: t, _deleted: n, _dirty: r, ...i } = e;
94
95
  return i;
95
96
  }), a = s?.[t] ?? [];
96
- (r || !I(i, a)) && (e[t] = i);
97
+ (r || !L(i, a)) && (e[t] = i);
97
98
  }
98
99
  Object.keys(e).length > 0 && (c.$children = e);
99
100
  }
@@ -102,52 +103,52 @@ function it({ entity: e, formData: t, record: n, isNew: r, pendingStatuses: i, p
102
103
  committedFileIds: u
103
104
  };
104
105
  }
105
- function at(e, n) {
106
+ function ot(e, n) {
106
107
  if (e) {
107
- let t = o(e, n), r = d(t);
108
+ let t = o(e, n), r = f(t);
108
109
  if (r.replace(/^\|+|\|+$/g, "")) return r;
109
110
  }
110
111
  return n.id == null ? crypto.randomUUID() : t(n.id);
111
112
  }
112
- function ot({ screenCode: e }) {
113
- return /* @__PURE__ */ P(S, { children: /* @__PURE__ */ P(st, { screenCode: e }) });
113
+ function st({ screenCode: e }) {
114
+ return /* @__PURE__ */ F(C, { children: /* @__PURE__ */ F(ct, { screenCode: e }) });
114
115
  }
115
- function st({ screenCode: t }) {
116
- let f = ae(), g = ae("errors"), { id: se } = et(), _ = fe(), [ce, le] = tt(), { data: v } = re(), me = ne((e) => e.user), y = xe(), ge = oe(), b = v?.screens[t], S = b?.entity ? v?.entities[b.entity] : void 0, w = b?.entity, T = a(S, "create"), je = Me(S), Pe = (() => {
117
- if (!S || !S.singleton || !S.prefilter) return;
118
- let e = l(S);
116
+ function ct({ screenCode: t }) {
117
+ let p = _(), ae = _("errors"), { id: oe } = tt(), g = pe(), [le, ue] = nt(), { data: v } = ie(), he = re((e) => e.user), y = xe(), b = ce(), x = v?.screens[t], C = x?.entity ? v?.entities[x.entity] : void 0, T = x?.entity, E = a(C, "create"), je = Me(C), Pe = (() => {
118
+ if (!C || !C.singleton || !C.prefilter) return;
119
+ let e = l(C);
119
120
  if (e.length !== 1) return;
120
- let t = S.prefilter[e[0]];
121
- if (t === "$caller.user_id") return me?.id;
122
- if (t === "$caller.tenant_id") return me?.tenant?.id;
123
- })(), E = Pe !== void 0, D = E ? Pe : se, O = !E && D === "new", I = j(() => {
124
- if (!D || O) return;
125
- if (!S) return D;
126
- let e = l(S);
127
- if (e.length === 1) return { [e[0]]: D };
128
- let t = u(D, e.length);
121
+ let t = C.prefilter[e[0]];
122
+ if (t === "$caller.user_id") return he?.id;
123
+ if (t === "$caller.tenant_id") return he?.tenant?.id;
124
+ })(), D = Pe !== void 0, O = D ? Pe : oe, k = !D && O === "new", L = M(() => {
125
+ if (!O || k) return;
126
+ if (!C) return O;
127
+ let e = l(C);
128
+ if (e.length === 1) return { [e[0]]: O };
129
+ let t = d(O, e.length);
129
130
  if (!t) return;
130
131
  let n = {};
131
132
  for (let r = 0; r < e.length; r++) n[e[r]] = t[r] ?? "";
132
133
  return n;
133
134
  }, [
134
- D,
135
135
  O,
136
- S
137
- ]), ot = j(() => {
138
- if (I) return typeof I == "string" ? I : d(I);
139
- }, [I]), st = be(w, I, rt), { data: L, isLoading: lt, error: dt } = st;
140
- te(!lt);
141
- let mt = he(S?.realtime, w ?? ""), ht = w ? mt : !1;
142
- ve(ye(w, I, rt), !O);
143
- let gt = Te(w ?? ""), _t = De(w ?? ""), vt = Ee(w ?? ""), yt = Object.keys(S?.status_groups ?? {}).length > 0, R = L?.data, z = p(S, "update", R, je.tenantId), bt = !!R && a(S, "update") && !m(S, R, je.tenantId), xt = p(S, "restore", R, je.tenantId), St = R?.$statuses, Ct = R?.$properties, wt = ce.get("edit") === "true", [Tt, Et] = N(O || wt), [B, Dt] = N({}), [V, Ot] = N({}), [H, kt] = N({}), [U, W] = N(void 0), [At, jt] = N(!1), [Mt, G] = N(void 0), [Nt, Pt] = N(!1), Ft = O ? T : z, K = Tt && Ft, It = ee();
144
- de(K && !O, It.enabled);
145
- let [Lt, Rt] = N(() => {
146
- let e = parseInt(b?.sidebar_width || "380", 10);
136
+ k,
137
+ C
138
+ ]), st = M(() => {
139
+ if (L) return typeof L == "string" ? L : f(L);
140
+ }, [L]), ct = S(T, L, it), { data: ut, isLoading: dt, error: pt } = ct;
141
+ ne(!dt);
142
+ let gt = ge(C?.realtime, T ?? ""), _t = T ? gt : !1;
143
+ ve(ye(T, L, it), !k);
144
+ let vt = Te(T ?? ""), yt = De(T ?? ""), bt = Ee(T ?? ""), xt = Object.keys(C?.status_groups ?? {}).length > 0, R = ut?.data, z = m(C, "update", R, je.tenantId), St = !!R && a(C, "update") && !ee(C, R, je.tenantId), Ct = m(C, "restore", R, je.tenantId), wt = R?.$statuses, Tt = R?.$properties, Et = le.get("edit") === "true", [Dt, Ot] = P(k || Et), [B, kt] = P({}), [V, At] = P({}), [H, jt] = P({}), [U, W] = P(void 0), [Mt, Nt] = P(!1), [Pt, G] = P(void 0), [Ft, It] = P(!1), Lt = k ? E : z, K = Dt && Lt, Rt = te();
145
+ fe(K && !k, Rt.enabled);
146
+ let [zt, Bt] = P(() => {
147
+ let e = parseInt(x?.sidebar_width || "380", 10);
147
148
  return isNaN(e) ? 380 : e;
148
- }), zt = M(null), q = M(null), Bt = k((e) => {
149
+ }), Vt = N(null), q = N(null), Ht = A((e) => {
149
150
  e.preventDefault();
150
- let t = zt.current;
151
+ let t = Vt.current;
151
152
  if (!t) return;
152
153
  let n = t.offsetWidth;
153
154
  q.current = {
@@ -159,77 +160,77 @@ function st({ screenCode: t }) {
159
160
  let n = q.current.startX - e.clientX, r = Math.max(280, Math.min(800, q.current.startW + n));
160
161
  t.style.width = `${r}px`;
161
162
  }, i = () => {
162
- q.current && t && Rt(parseInt(t.style.width, 10) || q.current.startW), q.current = null, document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", i);
163
+ q.current && t && Bt(parseInt(t.style.width, 10) || q.current.startW), q.current = null, document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", i);
163
164
  };
164
165
  document.addEventListener("mousemove", r), document.addEventListener("mouseup", i);
165
- }, []), J = L?.data, Y = Ne(S, b, J ?? {});
166
- A(() => {
166
+ }, []), J = ut?.data, Y = Ne(C, x, J ?? {});
167
+ j(() => {
167
168
  let e = parseInt(Y?.sidebar_width || "380", 10);
168
- Rt(Number.isNaN(e) ? 380 : e);
169
+ Bt(Number.isNaN(e) ? 380 : e);
169
170
  }, [Y?.sidebar_width]);
170
- let X = typeof J?.$row_version == "string" ? J.$row_version : void 0, Vt = J?.$refs, Ht = M(X);
171
- A(() => {
171
+ let X = typeof J?.$row_version == "string" ? J.$row_version : void 0, Ut = J?.$refs, Wt = N(X);
172
+ j(() => {
172
173
  if (!X) return;
173
- let e = Ht.current;
174
- Ht.current = X, e && e !== X && Tt && jt(!0);
175
- }, [Tt, X]);
176
- let Ut = !!S?.soft_delete && J != null && J[S.soft_delete] != null, Z = $e(), Wt = M(null);
177
- ke({ scrollElementRef: Wt });
178
- let Gt = !O && dt instanceof e && dt.status === 404, Kt = O && !i(S), qt = M(null);
179
- A(() => {
180
- if (!Gt) return;
174
+ let e = Wt.current;
175
+ Wt.current = X, e && e !== X && Dt && Nt(!0);
176
+ }, [Dt, X]);
177
+ let Gt = !!C?.soft_delete && J != null && J[C.soft_delete] != null, Z = et(), Kt = N(null);
178
+ ke({ scrollElementRef: Kt });
179
+ let qt = !k && pt instanceof e && pt.status === 404, Jt = k && !i(C), Yt = N(null);
180
+ j(() => {
181
+ if (!qt) return;
181
182
  let e = _e(Z);
182
- qt.current !== e && (qt.current = e, pe.getState().kill(e));
183
- }, [Gt, Z]);
184
- let { openTab: Jt, updateTabTitle: Yt, findTabByPathname: Xt } = ue();
185
- A(() => {
186
- if (!S || E || It.enabled) return;
187
- let e = Z.pathname, t = f(Y?.display?.name) || f(S.display.name), n = Y?.display?.icon || S.display.icon;
188
- Jt({
183
+ Yt.current !== e && (Yt.current = e, me.getState().kill(e));
184
+ }, [qt, Z]);
185
+ let { openTab: Xt, updateTabTitle: Zt, findTabByPathname: Qt } = de();
186
+ j(() => {
187
+ if (!C || D || Rt.enabled) return;
188
+ let e = Z.pathname, t = p(Y?.display?.name) || p(C.display.name), n = Y?.display?.icon || C.display.icon;
189
+ Xt({
189
190
  pathname: e,
190
191
  search: "",
191
- title: O ? f("record.new_title", "New {name}", { name: t }) : t,
192
- derivedTitle: !O,
192
+ title: k ? p("record.new_title", "New {name}", { name: t }) : t,
193
+ derivedTitle: !k,
193
194
  icon: n,
194
195
  closable: !0
195
196
  });
196
197
  }, [
197
198
  Z.pathname,
198
- f,
199
+ p,
199
200
  Y?.display?.icon,
200
- S?.display.icon,
201
- O,
202
- E,
203
- It.enabled
204
- ]), A(() => {
205
- if (!J || !S || E || It.enabled) return;
206
- let e = Xt(Z.pathname);
201
+ C?.display.icon,
202
+ k,
203
+ D,
204
+ Rt.enabled
205
+ ]), j(() => {
206
+ if (!J || !C || D || Rt.enabled) return;
207
+ let e = Qt(Z.pathname);
207
208
  if (e) {
208
- let t = f(Y?.display?.name) || f(S.display.name), n = c(f, J, S), r = n && !String(n).startsWith("/") ? String(n) : t;
209
- Yt(e.id, r, r === t);
209
+ let t = p(Y?.display?.name) || p(C.display.name), n = c(p, J, C), r = n && !String(n).startsWith("/") ? String(n) : t;
210
+ Zt(e.id, r, r === t);
210
211
  }
211
212
  }, [
212
213
  J,
213
- f,
214
- S?.display.display_field,
214
+ p,
215
+ C?.display.display_field,
215
216
  Z.pathname,
216
- E,
217
- It.enabled
217
+ D,
218
+ Rt.enabled
218
219
  ]);
219
- let Zt = j(() => {
220
- if (!S || !Ft) return /* @__PURE__ */ new Set();
220
+ let $t = M(() => {
221
+ if (!C || !Lt) return /* @__PURE__ */ new Set();
221
222
  let e = /* @__PURE__ */ new Set();
222
- for (let [t, n] of S.fields) !n.auto && !n.primary && e.add(t);
223
- for (let [t] of S.files ?? []) e.add(t);
223
+ for (let [t, n] of C.fields) u(n) && e.add(t);
224
+ for (let [t] of C.files ?? []) e.add(t);
224
225
  return e;
225
- }, [S, Ft]);
226
- A(() => {
227
- if (wt && J && S && z) {
228
- if (Tt || Et(!0), Object.keys(B).length === 0) {
229
- let e = D ? Xe(D) : null;
226
+ }, [C, Lt]);
227
+ j(() => {
228
+ if (Et && J && C && z) {
229
+ if (Dt || Ot(!0), Object.keys(B).length === 0) {
230
+ let e = O ? Ze(O) : null;
230
231
  if (e) {
231
232
  let t = Ce({
232
- entity: S,
233
+ entity: C,
233
234
  formData: e,
234
235
  record: void 0,
235
236
  isNew: !0
@@ -237,22 +238,22 @@ function st({ screenCode: t }) {
237
238
  we(t).forEach((e) => {
238
239
  y.registerDraft({
239
240
  fileId: e,
240
- discard: () => x(e)
241
+ discard: () => be(e)
241
242
  });
242
243
  });
243
244
  }
244
245
  let t = {};
245
- Zt.forEach((n) => {
246
+ $t.forEach((n) => {
246
247
  let r = e ? e[n] : void 0;
247
248
  if (r !== void 0) {
248
249
  t[n] = r;
249
250
  return;
250
251
  }
251
- let i = C(S, J, n);
252
- t[n] = Se(S, n) ? i ?? null : i ?? "";
253
- }), Dt(t);
252
+ let i = Se(C, J, n);
253
+ t[n] = w(C, n) ? i ?? null : i ?? "";
254
+ }), kt(t);
254
255
  }
255
- if (S.children !== void 0 && S.children.length > 0 && U === void 0) {
256
+ if (C.children !== void 0 && C.children.length > 0 && U === void 0) {
256
257
  let e = J.$children;
257
258
  if (e && Object.keys(e).length > 0) {
258
259
  let t = {};
@@ -260,229 +261,229 @@ function st({ screenCode: t }) {
260
261
  let e = v?.entities[n];
261
262
  t[n] = r.map((t) => ({
262
263
  ...t,
263
- _key: at(e, t)
264
+ _key: ot(e, t)
264
265
  }));
265
266
  }
266
267
  W(t), G(e);
267
268
  } else W({}), G({});
268
269
  }
269
- le((e) => {
270
+ ue((e) => {
270
271
  let t = new URLSearchParams(e);
271
272
  return t.delete("edit"), t;
272
273
  }, { replace: !0 });
273
274
  }
274
275
  }, [
275
- wt,
276
+ Et,
276
277
  J,
277
- Zt,
278
+ $t,
278
279
  z,
279
- S,
280
+ C,
280
281
  U,
281
282
  v
282
- ]), A(() => {
283
- O && T && S?.children && S.children.length !== 0 && U === void 0 && (W({}), G({}));
283
+ ]), j(() => {
284
+ k && E && C?.children && C.children.length !== 0 && U === void 0 && (W({}), G({}));
284
285
  }, [
285
- O,
286
- T,
287
- S?.children
286
+ k,
287
+ E,
288
+ C?.children
288
289
  ]);
289
- let Qt = k(async () => {
290
- if (await y.flushAllDrafts(), O) {
290
+ let en = A(async () => {
291
+ if (await y.flushAllDrafts(), k) {
291
292
  let e = Y?.route?.replace("/:id", "") ?? "/";
292
- _(e);
293
- } else Et(!1), Dt({}), Ot({}), kt({}), W(void 0), G(void 0), Pt(!1);
293
+ g(e);
294
+ } else Ot(!1), kt({}), At({}), jt({}), W(void 0), G(void 0), It(!1);
294
295
  }, [
295
296
  y,
296
- O,
297
+ k,
297
298
  Y,
298
- _
299
- ]), $t = k((e, t) => {
300
- Dt((n) => ({
299
+ g
300
+ ]), tn = A((e, t) => {
301
+ kt((n) => ({
301
302
  ...n,
302
303
  [e]: t
303
304
  }));
304
- }, []), Q = j(() => {
305
+ }, []), Q = M(() => {
305
306
  if (!Y?.route) return "/";
306
307
  let e = Y.route.split("/");
307
308
  return e.pop(), e.join("/") || "/";
308
- }, [Y]), en = j(() => !v?.screens || !Q || Q === "/" ? !1 : Object.values(v.screens).some((e) => e.route === Q), [v, Q]), tn = k(() => {
309
- if (!en) {
310
- _("/");
309
+ }, [Y]), nn = M(() => !v?.screens || !Q || Q === "/" ? !1 : Object.values(v.screens).some((e) => e.route === Q), [v, Q]), rn = A(() => {
310
+ if (!nn) {
311
+ g("/");
311
312
  return;
312
313
  }
313
- let e = Xt(Q)?.search ?? "";
314
- _(e ? `${Q}?${e}` : Q);
314
+ let e = Qt(Q)?.search ?? "";
315
+ g(e ? `${Q}?${e}` : Q);
315
316
  }, [
316
- en,
317
+ nn,
317
318
  Q,
318
- Xt,
319
- _
320
- ]), nn = Oe({ fallback: tn }), rn = !E && (nn.hasOriginBack || nn.allowFallbackBack && !!en), an = j(() => {
321
- if (!S) return {};
319
+ Qt,
320
+ g
321
+ ]), an = Oe({ fallback: rn }), on = !D && (an.hasOriginBack || an.allowFallbackBack && !!nn), sn = M(() => {
322
+ if (!C) return {};
322
323
  let e = {};
323
- for (let t of Je(S, B, O)) Zt.has(t) && (e[t] = f("record.field.required", "Required"));
324
- for (let t of qe(S, B)) Zt.has(t) && (e[t] = g("record.email_invalid", "This is not a valid email address."));
324
+ for (let t of Ye(C, B, k)) $t.has(t) && (e[t] = p("record.field.required", "Required"));
325
+ for (let t of Je(C, B)) $t.has(t) && (e[t] = ae("record.email_invalid", "This is not a valid email address."));
325
326
  return e;
326
327
  }, [
327
- f,
328
- g,
329
- S,
328
+ p,
329
+ ae,
330
+ C,
330
331
  B,
331
- O,
332
- Zt
333
- ]), on = Object.keys(an).length > 0, sn = j(() => S ? it({
334
- entity: S,
332
+ k,
333
+ $t
334
+ ]), cn = Object.keys(sn).length > 0, ln = M(() => C ? at({
335
+ entity: C,
335
336
  formData: B,
336
337
  record: J,
337
- isNew: O,
338
+ isNew: k,
338
339
  pendingStatuses: V,
339
340
  pendingProperties: H,
340
341
  pendingChildren: U,
341
- childrenSnapshot: Mt
342
+ childrenSnapshot: Pt
342
343
  }) : {
343
344
  payload: {},
344
345
  committedFileIds: []
345
346
  }, [
346
- S,
347
+ C,
347
348
  B,
348
349
  J,
349
- O,
350
+ k,
350
351
  V,
351
352
  H,
352
353
  U,
353
- Mt
354
- ]), cn = Object.keys(sn.payload).length > 0, ln = K && (O || cn);
355
- Fe(ln);
356
- let un = k(() => {
357
- if (!w || !S || O && !T || !O && !z || (Pt(!0), on)) return;
358
- let t = { ...sn.payload }, { committedFileIds: n } = sn;
359
- if (!O && !cn) {
360
- Et(!1), Ot({}), kt({}), W(void 0), G(void 0), Pt(!1);
354
+ Pt
355
+ ]), un = Object.keys(ln.payload).length > 0, dn = K && (k || un);
356
+ Fe(dn);
357
+ let fn = A(() => {
358
+ if (!T || !C || k && !E || !k && !z || (It(!0), cn)) return;
359
+ let t = { ...ln.payload }, { committedFileIds: n } = ln;
360
+ if (!k && !un) {
361
+ Ot(!1), At({}), jt({}), W(void 0), G(void 0), It(!1);
361
362
  return;
362
363
  }
363
- !O && X && (t.$row_version = X);
364
+ !k && X && (t.$row_version = X);
364
365
  let r = () => {
365
- Et(!1), jt(!1), Pt(!1), Ot({}), kt({}), W(void 0), G(void 0);
366
+ Ot(!1), Nt(!1), It(!1), At({}), jt({}), W(void 0), G(void 0);
366
367
  };
367
- O ? gt.mutate(t, { onSuccess: (e) => {
368
+ k ? vt.mutate(t, { onSuccess: (e) => {
368
369
  n.forEach((e) => y.markCommitted(e));
369
- let t = e.data, i = S ? o(S, t) : {}, a = d(i);
370
- _(a ? `${Q}/${encodeURIComponent(a)}` : Q, { replace: !0 }), r();
371
- } }) : I && _t.mutate({
372
- pkValues: I,
370
+ let t = e.data, i = C ? o(C, t) : {}, a = f(i);
371
+ g(a ? `${Q}/${encodeURIComponent(a)}` : Q, { replace: !0 }), r();
372
+ } }) : L && yt.mutate({
373
+ pkValues: L,
373
374
  data: t
374
375
  }, {
375
376
  onSuccess: () => {
376
377
  n.forEach((e) => y.markCommitted(e)), r();
377
378
  },
378
379
  onError: (t) => {
379
- t instanceof e && t.code === "entity.stale_object" && jt(!0);
380
+ t instanceof e && t.code === "entity.stale_object" && Nt(!0);
380
381
  }
381
382
  });
382
383
  }, [
383
384
  y,
384
- O,
385
- T,
385
+ k,
386
+ E,
386
387
  z,
387
- w,
388
- on,
389
- sn,
388
+ T,
390
389
  cn,
391
- gt,
392
- _t,
393
- S,
394
- _,
390
+ ln,
391
+ un,
392
+ vt,
393
+ yt,
394
+ C,
395
+ g,
395
396
  Q,
396
397
  X,
397
- I
398
- ]), dn = k((e, t) => {
398
+ L
399
+ ]), pn = A((e, t) => {
399
400
  W((n) => ({
400
401
  ...n ?? {},
401
402
  [e]: t
402
403
  }));
403
- }, []), fn = k(() => {
404
- I && !O && xt && vt.mutate(I);
404
+ }, []), mn = A(() => {
405
+ L && !k && Ct && bt.mutate(L);
405
406
  }, [
406
- I,
407
- O,
408
- xt,
409
- vt
410
- ]), pn = j(() => Ye(U, v), [U, v]), mn = Object.keys(pn).length > 0;
411
- if (!Y || !S) return null;
412
- if (!O && lt) return /* @__PURE__ */ P(Ae, {});
413
- if (Kt) return /* @__PURE__ */ F("div", {
407
+ L,
408
+ k,
409
+ Ct,
410
+ bt
411
+ ]), hn = M(() => Xe(U, v), [U, v]), gn = Object.keys(hn).length > 0;
412
+ if (!Y || !C) return null;
413
+ if (!k && dt) return /* @__PURE__ */ F(Ae, {});
414
+ if (Jt) return /* @__PURE__ */ I("div", {
414
415
  style: { padding: 24 },
415
- children: [/* @__PURE__ */ F("div", {
416
+ children: [/* @__PURE__ */ I("div", {
416
417
  style: {
417
418
  display: "flex",
418
419
  alignItems: "center",
419
420
  gap: 8,
420
421
  marginBottom: 8
421
422
  },
422
- children: [rn && /* @__PURE__ */ P(ie, {
423
- icon: /* @__PURE__ */ P(h.back, { size: 14 }),
424
- onClick: nn.goBack,
425
- title: f("record.back", "Back")
426
- }), /* @__PURE__ */ P("h1", {
423
+ children: [on && /* @__PURE__ */ F(se, {
424
+ icon: /* @__PURE__ */ F(h.back, { size: 14 }),
425
+ onClick: an.goBack,
426
+ title: p("record.back", "Back")
427
+ }), /* @__PURE__ */ F("h1", {
427
428
  style: {
428
429
  margin: 0,
429
430
  fontSize: 18,
430
431
  fontWeight: 600,
431
432
  color: "var(--text)"
432
433
  },
433
- children: f("record.create_closed.title", "Not Available")
434
+ children: p("record.create_closed.title", "Not Available")
434
435
  })]
435
- }), /* @__PURE__ */ P("p", {
436
+ }), /* @__PURE__ */ F("p", {
436
437
  style: { color: "var(--text-3)" },
437
- children: f("record.create_closed.body", "This record type is not created from a form.")
438
+ children: p("record.create_closed.body", "This record type is not created from a form.")
438
439
  })]
439
440
  });
440
- if (!O && !J || Gt) return /* @__PURE__ */ F("div", {
441
+ if (!k && !J || qt) return /* @__PURE__ */ I("div", {
441
442
  style: { padding: 24 },
442
- children: [/* @__PURE__ */ F("div", {
443
+ children: [/* @__PURE__ */ I("div", {
443
444
  style: {
444
445
  display: "flex",
445
446
  alignItems: "center",
446
447
  gap: 8,
447
448
  marginBottom: 8
448
449
  },
449
- children: [rn && /* @__PURE__ */ P(ie, {
450
- icon: /* @__PURE__ */ P(h.back, { size: 14 }),
451
- onClick: nn.goBack,
452
- title: f("record.back", "Back")
453
- }), /* @__PURE__ */ P("h1", {
450
+ children: [on && /* @__PURE__ */ F(se, {
451
+ icon: /* @__PURE__ */ F(h.back, { size: 14 }),
452
+ onClick: an.goBack,
453
+ title: p("record.back", "Back")
454
+ }), /* @__PURE__ */ F("h1", {
454
455
  style: {
455
456
  margin: 0,
456
457
  fontSize: 18,
457
458
  fontWeight: 600,
458
459
  color: "var(--text)"
459
460
  },
460
- children: f("record.missing.title", "Not Found")
461
+ children: p("record.missing.title", "Not Found")
461
462
  })]
462
- }), /* @__PURE__ */ P("p", {
463
+ }), /* @__PURE__ */ F("p", {
463
464
  style: { color: "var(--text-3)" },
464
- children: g("entity.not_found", "This record does not exist.")
465
+ children: ae("entity.not_found", "This record does not exist.")
465
466
  })]
466
467
  });
467
- let hn = S.display, gn = f(Y.display?.name) || f(hn.name), _n = c(f, J, S), vn = O ? f("record.new_title", "New {name}", { name: gn }) : _n ? String(_n) : gn, yn = gt.isPending || _t.isPending, bn = Y.responsive?.[ge.category]?.layout, xn = bn?.tabs ?? (ge.isPhone ? "sections" : void 0), Sn = bn?.header_card === !0 ? Ze({
468
- entity: S,
468
+ let _n = C.display, vn = p(Y.display?.name) || p(_n.name), yn = c(p, J, C), bn = k ? p("record.new_title", "New {name}", { name: vn }) : yn ? String(yn) : vn, xn = vt.isPending || yt.isPending, Sn = Y.responsive?.[b.category]?.layout, Cn = Sn?.tabs ?? (b.isPhone ? "sections" : void 0), wn = Sn?.header_card === !0 ? Qe({
469
+ entity: C,
469
470
  screen: Y
470
471
  }) : void 0, $ = {
471
472
  schema: v,
472
- entity: S,
473
- entityCode: w,
474
- recordId: ot ?? D ?? "",
473
+ entity: C,
474
+ entityCode: T,
475
+ recordId: st ?? O ?? "",
475
476
  record: K ? {
476
477
  ...J ?? {},
477
478
  ...B
478
479
  } : J ?? {},
479
- isNew: O,
480
+ isNew: k,
480
481
  mode: K ? "edit" : "display",
481
- onFieldChange: K ? $t : void 0,
482
- refs: Vt,
483
- headerFields: !O && J ? Ue(Y, S) : void 0,
482
+ onFieldChange: K ? tn : void 0,
483
+ refs: Ut,
484
+ headerFields: !k && J ? We(Y, C) : void 0,
484
485
  objectProperties: (() => {
485
- let e = Ct ?? [];
486
+ let e = Tt ?? [];
486
487
  if (!K || Object.keys(H).length === 0) return e.length > 0 ? e : void 0;
487
488
  let t = e.map((e) => H[e.property_code] === void 0 ? e : {
488
489
  ...e,
@@ -496,13 +497,13 @@ function st({ screenCode: t }) {
496
497
  });
497
498
  return t;
498
499
  })(),
499
- onSetProperty: O || !z ? void 0 : K ? (e, t) => kt((n) => ({
500
+ onSetProperty: k || !z ? void 0 : K ? (e, t) => jt((n) => ({
500
501
  ...n,
501
502
  [e]: t
502
503
  })) : void 0,
503
504
  isPropertyPending: !1,
504
505
  objectStatuses: (() => {
505
- let e = St ?? [];
506
+ let e = wt ?? [];
506
507
  if (!K || Object.keys(V).length === 0) return e.length > 0 ? e : void 0;
507
508
  let t = e.map((e) => V[e.group_code] === void 0 ? e : {
508
509
  ...e,
@@ -516,141 +517,144 @@ function st({ screenCode: t }) {
516
517
  });
517
518
  return t;
518
519
  })(),
519
- onSetStatus: O || !z ? void 0 : K ? (e, t) => Ot((n) => ({
520
+ onSetStatus: k || !z ? void 0 : K ? (e, t) => At((n) => ({
520
521
  ...n,
521
522
  [e]: t
522
523
  })) : void 0,
523
524
  isStatusPending: !1,
524
525
  pendingChildren: K ? U : void 0,
525
- onChildrenChange: K ? dn : void 0,
526
- childValidationErrors: K ? pn : void 0,
527
- fieldErrors: K && Nt ? an : void 0,
528
- detailTabsPresentation: xn,
529
- relatedRecordsPresentation: bn?.related_records
530
- }, Cn = !!Y.sidebar && Y.sidebar.length > 0, wn = bn?.sidebar === "hidden", Tn = Cn && !wn && !ge.isDesktop, En = Cn && !wn && ge.isDesktop, Dn = !O && J ? /* @__PURE__ */ P(He, {
526
+ onChildrenChange: K ? pn : void 0,
527
+ childValidationErrors: K ? hn : void 0,
528
+ fieldErrors: K && Ft ? sn : void 0,
529
+ detailTabsPresentation: Cn,
530
+ relatedRecordsPresentation: Sn?.related_records
531
+ }, Tn = !!Y.sidebar && (k ? Y.sidebar.some((e) => ze(e, C, v?.entities ?? {})) : Y.sidebar.length > 0), En = Sn?.sidebar === "hidden", Dn = Tn && !En && !b.isDesktop, On = Tn && !En && b.isDesktop, kn = !k && J ? /* @__PURE__ */ F(Ue, {
531
532
  screen: Y,
532
- entity: S,
533
- entityCode: w,
533
+ entity: C,
534
+ entityCode: T,
534
535
  record: J,
535
- refs: Vt,
536
- objectStatuses: St,
536
+ refs: Ut,
537
+ objectStatuses: wt,
537
538
  schema: v
538
- }) : void 0, On = /* @__PURE__ */ P(ut, {
539
- title: vn,
539
+ }) : void 0, An = /* @__PURE__ */ F(ft, {
540
+ title: bn,
540
541
  editing: K,
541
- isNew: O,
542
- isRecordDeleted: Ut,
543
- dirty: ln,
544
- isSaving: yn,
545
- hasChildErrors: mn,
546
- hasFieldErrors: Nt && on,
547
- canRestore: xt,
548
- entity: S,
542
+ isNew: k,
543
+ isRecordDeleted: Gt,
544
+ dirty: dn,
545
+ isSaving: xn,
546
+ hasChildErrors: gn,
547
+ hasFieldErrors: Ft && cn,
548
+ canRestore: Ct,
549
+ entity: C,
549
550
  screen: Y,
550
551
  globalActions: v?.actions,
551
- entityCode: w,
552
+ entityCode: T,
552
553
  record: J,
553
- id: D,
554
+ id: O,
554
555
  listRoute: Q,
555
- listRouteExists: !!en,
556
- highlights: Dn,
557
- showBack: rn,
558
- onBack: nn.goBack,
559
- onCancelEdit: Qt,
560
- onSave: un,
561
- onRestore: fn,
562
- isRestoring: vt.isPending,
556
+ listRouteExists: !!nn,
557
+ highlights: kn,
558
+ showBack: on,
559
+ onBack: an.goBack,
560
+ onCancelEdit: en,
561
+ onSave: fn,
562
+ onRestore: mn,
563
+ isRestoring: bt.isPending,
563
564
  refreshControl: {
564
- refetch: st.refetch,
565
- isLoading: st.isLoading,
566
- isLive: ht
565
+ refetch: ct.refetch,
566
+ isLoading: ct.isLoading,
567
+ isLive: _t
567
568
  },
568
- isRealtimeEntity: S?.realtime === !0,
569
+ isRealtimeEntity: C?.realtime === !0,
569
570
  canManageTemplates: Le(v)
570
- }), kn = Ut && /* @__PURE__ */ P(ft, {
571
+ }), jn = Gt && /* @__PURE__ */ F(mt, {
571
572
  tone: "danger",
572
- children: f("record.deleted_banner", "This record was deleted on {date}", { date: n(String(J[S.soft_delete])) })
573
- }), An = At && /* @__PURE__ */ P(ft, {
573
+ children: p("record.deleted_banner", "This record was deleted on {date}", { date: n(String(J[C.soft_delete]), {
574
+ zone: p.timeZone,
575
+ declared: !!(C.fields.get(C.soft_delete)?.timezone || C.default_timezone)
576
+ }) })
577
+ }), Mn = Mt && /* @__PURE__ */ F(mt, {
574
578
  tone: "warn",
575
- children: f("record.changed_on_server", "This record changed on the server while you were viewing or editing it.")
576
- }), jn = bt && J ? pt(f, S, J, Vt) : void 0, Mn = bt && /* @__PURE__ */ P(ft, {
579
+ children: p("record.changed_on_server", "This record changed on the server while you were viewing or editing it.")
580
+ }), Nn = St && J ? ht(p, C, J, Ut) : void 0, Pn = St && /* @__PURE__ */ F(mt, {
577
581
  tone: "info",
578
582
  testId: "record-other-tenant-banner",
579
- children: jn ? f("record.other_tenant_banner_named", "This record is set in the tenant {tenant}. Change it from that tenant.", { tenant: jn }) : f("record.other_tenant_banner", "This record is set in another tenant. Change it from that tenant.")
580
- }), Nn = K && Nt && on && /* @__PURE__ */ P(Ve, {
581
- errors: Object.entries(an).map(([e, t]) => {
582
- let n = S.fields.get(e);
583
+ children: Nn ? p("record.other_tenant_banner_named", "This record is set in the tenant {tenant}. Change it from that tenant.", { tenant: Nn }) : p("record.other_tenant_banner", "This record is set in another tenant. Change it from that tenant.")
584
+ }), Fn = K && Ft && cn && /* @__PURE__ */ F(He, {
585
+ errors: Object.entries(sn).map(([e, t]) => {
586
+ let n = C.fields.get(e);
583
587
  return {
584
588
  name: e,
585
- label: n ? s(f, n, e, v?.entities) : e,
589
+ label: n ? s(p, n, e, v?.entities) : e,
586
590
  message: t
587
591
  };
588
592
  }),
589
593
  onJump: (e) => {
590
- let t = document.getElementById(`${w}-${e}`);
594
+ let t = document.getElementById(`${T}-${e}`);
591
595
  t && (t.scrollIntoView({
592
596
  block: "center",
593
597
  behavior: "smooth"
594
598
  }), t.focus?.());
595
599
  }
596
- }), Pn = yt && !O && !(Y.items && Y.items.length > 0) && /* @__PURE__ */ P("div", {
600
+ }), In = xt && !k && !(Y.items && Y.items.length > 0) && /* @__PURE__ */ F("div", {
597
601
  className: "mb-4",
598
- children: /* @__PURE__ */ P(ze, {
599
- statusGroups: S.status_groups ?? {},
602
+ children: /* @__PURE__ */ F(Be, {
603
+ statusGroups: C.status_groups ?? {},
600
604
  objectStatuses: $.objectStatuses,
601
- onSetStatus: z && K ? (e, t) => Ot((n) => ({
605
+ onSetStatus: z && K ? (e, t) => At((n) => ({
602
606
  ...n,
603
607
  [e]: t
604
- })) : nt,
608
+ })) : rt,
605
609
  isPending: !1,
606
610
  mode: K ? "edit" : "display"
607
611
  })
608
- }), Fn = S.evidence_covered && !O && J && /* @__PURE__ */ P("div", {
612
+ }), Ln = C.evidence_covered && !k && J && /* @__PURE__ */ F("div", {
609
613
  className: "mb-4",
610
- children: /* @__PURE__ */ P(Ge, { evidence: J.$evidence })
611
- }), In = /* @__PURE__ */ F(Qe, { children: [
612
- Sn && (J || O) && /* @__PURE__ */ P(ct, {
613
- card: Sn,
614
- entity: S,
614
+ children: /* @__PURE__ */ F(Ke, { evidence: J.$evidence })
615
+ }), Rn = /* @__PURE__ */ I($e, { children: [
616
+ wn && (J || k) && /* @__PURE__ */ F(lt, {
617
+ card: wn,
618
+ entity: C,
615
619
  record: $.record,
616
620
  objectStatuses: $.objectStatuses,
617
621
  objectProperties: $.objectProperties
618
622
  }),
619
- Y.items && Y.items.length > 0 && (J || O) && v && /* @__PURE__ */ P(Be, {
623
+ Y.items && Y.items.length > 0 && (J || k) && v && /* @__PURE__ */ F(Ve, {
620
624
  nodes: Y.items,
621
625
  ctx: $
622
626
  }),
623
- !O && D && w && S.associations && Object.keys(S.associations).length > 0 && v && /* @__PURE__ */ P(Ie, {
624
- entityCode: w,
625
- recordId: ot ?? D ?? "",
626
- associations: S.associations,
627
+ !k && O && T && C.associations && Object.keys(C.associations).length > 0 && v && /* @__PURE__ */ F(Ie, {
628
+ entityCode: T,
629
+ recordId: st ?? O ?? "",
630
+ associations: C.associations,
627
631
  schema: v
628
632
  }),
629
- !O && D && w && /* @__PURE__ */ P(Re, {
630
- entity: S,
631
- entityCode: w,
632
- objectId: ot ?? D,
633
+ !k && O && T && /* @__PURE__ */ F(Re, {
634
+ entity: C,
635
+ entityCode: T,
636
+ objectId: st ?? O,
633
637
  schema: v
634
638
  }),
635
- !O && J && v && /* @__PURE__ */ P(We, {
639
+ !k && J && v && /* @__PURE__ */ F(Ge, {
636
640
  screen: Y,
637
- entity: S,
638
- entityCode: w,
641
+ entity: C,
642
+ entityCode: T,
639
643
  record: J,
640
- recordId: ot ?? D,
641
- refs: Vt,
644
+ recordId: st ?? O,
645
+ refs: Ut,
642
646
  schema: v
643
647
  })
644
- ] }), Ln = /* @__PURE__ */ F(Qe, { children: [
645
- On,
648
+ ] }), zn = /* @__PURE__ */ I($e, { children: [
646
649
  An,
647
- kn,
648
650
  Mn,
649
- Nn,
651
+ jn,
650
652
  Pn,
651
- Fn
653
+ Fn,
654
+ In,
655
+ Ln
652
656
  ] });
653
- return En ? /* @__PURE__ */ F("div", {
657
+ return On ? /* @__PURE__ */ I("div", {
654
658
  style: {
655
659
  height: "100%",
656
660
  display: "flex",
@@ -658,23 +662,23 @@ function st({ screenCode: t }) {
658
662
  background: "var(--background)"
659
663
  },
660
664
  children: [
661
- /* @__PURE__ */ P("div", {
665
+ /* @__PURE__ */ F("div", {
662
666
  style: {
663
667
  flex: 1,
664
668
  minWidth: 0,
665
669
  height: "100%"
666
670
  },
667
- children: /* @__PURE__ */ P(Ke, {
668
- scrollRef: Wt,
669
- header: Ln,
670
- children: In
671
+ children: /* @__PURE__ */ F(qe, {
672
+ scrollRef: Kt,
673
+ header: zn,
674
+ children: Rn
671
675
  })
672
676
  }),
673
- /* @__PURE__ */ P("div", {
677
+ /* @__PURE__ */ F("div", {
674
678
  className: "detail-resize-handle",
675
- onMouseDown: Bt,
676
- title: f("record.layout.drag_to_resize", "Drag to resize"),
677
- children: /* @__PURE__ */ P("div", { style: {
679
+ onMouseDown: Ht,
680
+ title: p("record.layout.drag_to_resize", "Drag to resize"),
681
+ children: /* @__PURE__ */ F("div", { style: {
678
682
  position: "absolute",
679
683
  top: 0,
680
684
  bottom: 0,
@@ -684,23 +688,23 @@ function st({ screenCode: t }) {
684
688
  background: "var(--border)"
685
689
  } })
686
690
  }),
687
- /* @__PURE__ */ P("div", {
688
- ref: zt,
691
+ /* @__PURE__ */ F("div", {
692
+ ref: Vt,
689
693
  style: {
690
694
  flexShrink: 0,
691
695
  height: "100%",
692
- width: `${Lt}px`
696
+ width: `${zt}px`
693
697
  },
694
- children: (J || O) && v && /* @__PURE__ */ P(Be, {
698
+ children: (J || k) && v && /* @__PURE__ */ F(Ve, {
695
699
  nodes: Y.sidebar,
696
700
  ctx: $
697
701
  })
698
702
  })
699
703
  ]
700
- }) : /* @__PURE__ */ F(Ke, {
701
- scrollRef: Wt,
702
- header: Ln,
703
- children: [In, Tn && (J || O) && v && /* @__PURE__ */ P("div", {
704
+ }) : /* @__PURE__ */ I(qe, {
705
+ scrollRef: Kt,
706
+ header: zn,
707
+ children: [Rn, Dn && (J || k) && v && /* @__PURE__ */ F("div", {
704
708
  "data-testid": "detail-sidebar-inline",
705
709
  style: {
706
710
  display: "flex",
@@ -708,25 +712,25 @@ function st({ screenCode: t }) {
708
712
  gap: 16,
709
713
  minWidth: 0
710
714
  },
711
- children: /* @__PURE__ */ P(Be, {
715
+ children: /* @__PURE__ */ F(Ve, {
712
716
  nodes: Y.sidebar,
713
717
  ctx: $
714
718
  })
715
719
  })]
716
720
  });
717
721
  }
718
- function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties: a }) {
719
- let o = ae(), s = (e) => {
720
- let s = L(o, n, e, r, i, a);
722
+ function lt({ card: e, entity: n, record: r, objectStatuses: i, objectProperties: a }) {
723
+ let o = _(), s = (e) => {
724
+ let s = ut(o, n, e, r, i, a);
721
725
  return s != null && t(s) !== "";
722
726
  }, l = (e) => {
723
- let s = L(o, n, e, r, i, a);
724
- return t(s) || /* @__PURE__ */ P("span", {
727
+ let s = ut(o, n, e, r, i, a);
728
+ return t(s) || /* @__PURE__ */ F("span", {
725
729
  style: { color: "var(--text-3)" },
726
730
  children: "-"
727
731
  });
728
- }, u = e.titleUsesDisplay ? c(o, r, n) : e.titleField ? L(o, n, e.titleField, r, i, a) : void 0, d = t(u) || o(n.display?.name) || o("record.fallback_title", "Record"), f = e.badgeFields.filter((t) => !e.hideEmptyFields || s(t)), p = e.bodyFields.filter((t) => !e.hideEmptyFields || s(t)), m = e.metaFields.filter((t) => !e.hideEmptyFields || s(t));
729
- return /* @__PURE__ */ F("section", {
732
+ }, u = e.titleUsesDisplay ? c(o, r, n) : e.titleField ? ut(o, n, e.titleField, r, i, a) : void 0, d = t(u) || o(n.display?.name) || o("record.fallback_title", "Record"), f = e.badgeFields.filter((t) => !e.hideEmptyFields || s(t)), p = e.bodyFields.filter((t) => !e.hideEmptyFields || s(t)), m = e.metaFields.filter((t) => !e.hideEmptyFields || s(t));
733
+ return /* @__PURE__ */ I("section", {
730
734
  "data-testid": "detail-header-card",
731
735
  style: {
732
736
  width: "100%",
@@ -739,9 +743,9 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
739
743
  boxSizing: "border-box"
740
744
  },
741
745
  children: [
742
- /* @__PURE__ */ F("div", {
746
+ /* @__PURE__ */ I("div", {
743
747
  style: { minWidth: 0 },
744
- children: [/* @__PURE__ */ P("div", {
748
+ children: [/* @__PURE__ */ F("div", {
745
749
  style: {
746
750
  fontSize: 15,
747
751
  lineHeight: 1.25,
@@ -750,7 +754,7 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
750
754
  overflowWrap: "anywhere"
751
755
  },
752
756
  children: d
753
- }), e.subtitleField && /* @__PURE__ */ P("div", {
757
+ }), e.subtitleField && /* @__PURE__ */ F("div", {
754
758
  style: {
755
759
  marginTop: 4,
756
760
  fontSize: 12.5,
@@ -761,14 +765,14 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
761
765
  children: l(e.subtitleField)
762
766
  })]
763
767
  }),
764
- f.length > 0 && /* @__PURE__ */ P("div", {
768
+ f.length > 0 && /* @__PURE__ */ F("div", {
765
769
  style: {
766
770
  display: "flex",
767
771
  flexWrap: "wrap",
768
772
  gap: 6,
769
773
  marginTop: 10
770
774
  },
771
- children: f.map((e) => /* @__PURE__ */ P("span", {
775
+ children: f.map((e) => /* @__PURE__ */ F("span", {
772
776
  style: {
773
777
  minWidth: 0,
774
778
  maxWidth: "100%",
@@ -783,7 +787,7 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
783
787
  children: l(e)
784
788
  }, e))
785
789
  }),
786
- p.length > 0 && /* @__PURE__ */ P("dl", {
790
+ p.length > 0 && /* @__PURE__ */ F("dl", {
787
791
  style: {
788
792
  display: "grid",
789
793
  gridTemplateColumns: "minmax(84px, max-content) minmax(0, 1fr)",
@@ -792,12 +796,12 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
792
796
  fontSize: 12.5,
793
797
  lineHeight: 1.35
794
798
  },
795
- children: p.map((e) => /* @__PURE__ */ F("div", {
799
+ children: p.map((e) => /* @__PURE__ */ I("div", {
796
800
  style: { display: "contents" },
797
- children: [/* @__PURE__ */ P("dt", {
801
+ children: [/* @__PURE__ */ F("dt", {
798
802
  style: { color: "var(--text-3)" },
799
- children: lt(o, n, e)
800
- }), /* @__PURE__ */ P("dd", {
803
+ children: dt(o, n, e)
804
+ }), /* @__PURE__ */ F("dd", {
801
805
  style: {
802
806
  margin: 0,
803
807
  color: "var(--text-2)",
@@ -808,7 +812,7 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
808
812
  })]
809
813
  }, e))
810
814
  }),
811
- m.length > 0 && /* @__PURE__ */ P("div", {
815
+ m.length > 0 && /* @__PURE__ */ F("div", {
812
816
  style: {
813
817
  display: "flex",
814
818
  flexWrap: "wrap",
@@ -817,13 +821,13 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
817
821
  color: "var(--text-3)",
818
822
  fontSize: 11.5
819
823
  },
820
- children: m.map((e) => /* @__PURE__ */ F("span", {
824
+ children: m.map((e) => /* @__PURE__ */ I("span", {
821
825
  style: {
822
826
  minWidth: 0,
823
827
  overflowWrap: "anywhere"
824
828
  },
825
829
  children: [
826
- lt(o, n, e),
830
+ dt(o, n, e),
827
831
  ": ",
828
832
  l(e)
829
833
  ]
@@ -832,7 +836,7 @@ function ct({ card: e, entity: n, record: r, objectStatuses: i, objectProperties
832
836
  ]
833
837
  });
834
838
  }
835
- function L(e, t, n, r, i, a) {
839
+ function ut(e, t, n, r, i, a) {
836
840
  if (n.startsWith("$status.")) {
837
841
  let t = n.slice(8), r = i?.find((e) => e.group_code === t);
838
842
  return e(r?.status_name) || r?.status_code;
@@ -841,16 +845,16 @@ function L(e, t, n, r, i, a) {
841
845
  let e = n.slice(10);
842
846
  return a?.find((t) => t.property_code === e)?.value;
843
847
  }
844
- return C(t, r, n);
848
+ return Se(t, r, n);
845
849
  }
846
- function lt(e, t, n) {
850
+ function dt(e, t, n) {
847
851
  if (n.startsWith("$status.")) return n.slice(8);
848
852
  if (n.startsWith("$property.")) return n.slice(10);
849
853
  let r = t.fields.get(n);
850
854
  return r ? s(e, r, n) : n;
851
855
  }
852
- function ut({ title: e, editing: t, isNew: n, isRecordDeleted: r, dirty: i, isSaving: a, hasChildErrors: o, hasFieldErrors: s, canRestore: c, entity: l, screen: u, globalActions: d, entityCode: f, record: p, id: m, listRoute: ee, listRouteExists: te, highlights: ne, showBack: re, onBack: ie, onCancelEdit: oe, onSave: ue, onRestore: de, isRestoring: he, refreshControl: ve, isRealtimeEntity: ye, canManageTemplates: be }) {
853
- let x = ae(), S = ae("errors"), xe = Me(l), { run: Se } = ge(), C = b("detail"), w = v(), Ce = fe(), we = y(u?.action_layout, l?.action_layout, l?.actions, d, "detail_toolbar"), Te = y(u?.action_layout, l?.action_layout, l?.actions, d, "detail"), Ee = me(x, Te, l?.actions, d, p ?? {}, [], xe, Pe(l, p ?? {})), De = me(x, we, l?.actions, d, p ?? {}, [], xe, Pe(l, p ?? {})), Oe = j(() => {
856
+ function ft({ title: e, editing: t, isNew: n, isRecordDeleted: r, dirty: i, isSaving: a, hasChildErrors: o, hasFieldErrors: s, canRestore: c, entity: l, screen: u, globalActions: d, entityCode: f, record: p, id: m, listRoute: ee, listRouteExists: te, highlights: ne, showBack: re, onBack: ie, onCancelEdit: se, onSave: ce, onRestore: de, isRestoring: fe, refreshControl: ge, isRealtimeEntity: ve, canManageTemplates: ye }) {
857
+ let S = _(), be = _("errors"), C = Me(l), { run: xe } = b(), w = x("detail"), Se = v(), T = pe(), Ce = y(u?.action_layout, l?.action_layout, l?.actions, d, "detail_toolbar"), we = y(u?.action_layout, l?.action_layout, l?.actions, d, "detail"), Te = he(S, we, l?.actions, d, p ?? {}, [], C, Pe(l, p ?? {})), Ee = he(S, Ce, l?.actions, d, p ?? {}, [], C, Pe(l, p ?? {})), De = M(() => {
854
858
  if (!l) return;
855
859
  let e = m ? [m] : [];
856
860
  return {
@@ -860,13 +864,13 @@ function ut({ title: e, editing: t, isNew: n, isRecordDeleted: r, dirty: i, isSa
860
864
  screenRoute: u?.route ?? "",
861
865
  selectedRows: p ? [p] : [],
862
866
  selectedIds: e,
863
- t: x,
864
- tabNavigate: (e, t) => w(e, {
867
+ t: S,
868
+ tabNavigate: (e, t) => Se(e, {
865
869
  title: t?.title,
866
870
  icon: t?.icon,
867
871
  search: t?.search
868
872
  }),
869
- runActionApi: (e, t) => le(e, t),
873
+ runActionApi: (e, t) => oe(e, t),
870
874
  recordHref: (e) => e === m && u?.route ? u.route.replace(":id", encodeURIComponent(e)) : null
871
875
  };
872
876
  }, [
@@ -875,34 +879,34 @@ function ut({ title: e, editing: t, isNew: n, isRecordDeleted: r, dirty: i, isSa
875
879
  u,
876
880
  m,
877
881
  p,
878
- x,
879
- w
880
- ]), ke = (e, t) => {
881
- let n = T(S, e, t, { row: p ?? void 0 });
882
+ S,
883
+ Se
884
+ ]), Oe = (e, t) => {
885
+ let n = E(be, e, t, { row: p ?? void 0 });
882
886
  if (n === null) return;
883
887
  let r = m ? [m] : [], i = e === "__delete" && te ? ee : null;
884
- return Se({
888
+ return xe({
885
889
  action: t,
886
- title: x(t.display?.name) || e,
890
+ title: S(t.display?.name) || e,
887
891
  row: p ?? void 0,
888
- execute: (e) => le(n, ce(e, r)),
892
+ execute: (e) => oe(n, ae(e, r)),
889
893
  onSuccess: i ? () => {
890
- pe.getState().kill(_e(location)), Ce(i, { replace: !0 });
894
+ me.getState().kill(_e(location)), T(i, { replace: !0 });
891
895
  } : void 0
892
896
  });
893
- }, Ae = C.isVisible("show_actions") && !n && m && Ee.length > 0 ? /* @__PURE__ */ P(je, {
894
- layout: Ee,
897
+ }, ke = w.isVisible("show_actions") && !n && m && Te.length > 0 ? /* @__PURE__ */ F(je, {
898
+ layout: Te,
895
899
  row: p,
896
- onRun: ke,
900
+ onRun: Oe,
897
901
  kind: "detail",
898
902
  entityActions: l?.actions,
899
903
  globalActions: d,
900
904
  reservedRightWidth: 0,
901
- widgetContext: Oe
902
- }) : null, Ne = !n && m ? /* @__PURE__ */ P(E, {
903
- liveObject: ve,
904
- realtime: ye
905
- }) : null, Fe = C.isVisible("show_actions") && !n && m && De.length > 0 ? /* @__PURE__ */ F("div", {
905
+ widgetContext: De
906
+ }) : null, Ae = !n && m ? /* @__PURE__ */ F(D, {
907
+ liveObject: ge,
908
+ realtime: ve
909
+ }) : null, Ne = w.isVisible("show_actions") && !n && m && Ee.length > 0 ? /* @__PURE__ */ I("div", {
906
910
  style: {
907
911
  display: "flex",
908
912
  justifyContent: "flex-end",
@@ -910,63 +914,63 @@ function ut({ title: e, editing: t, isNew: n, isRecordDeleted: r, dirty: i, isSa
910
914
  gap: 8,
911
915
  marginTop: 10
912
916
  },
913
- children: [Ae ? null : Ne, /* @__PURE__ */ P(je, {
914
- layout: De,
917
+ children: [ke ? null : Ae, /* @__PURE__ */ F(je, {
918
+ layout: Ee,
915
919
  row: p,
916
- onRun: ke,
920
+ onRun: Oe,
917
921
  kind: "detail",
918
922
  entityActions: l?.actions,
919
923
  globalActions: d,
920
924
  reservedRightWidth: 0,
921
- widgetContext: Oe,
922
- ariaLabel: Ae ? x("record.toolbar_actions", "Detail toolbar actions") : x("record.page_actions", "Page actions")
925
+ widgetContext: De,
926
+ ariaLabel: ke ? S("record.toolbar_actions", "Detail toolbar actions") : S("record.page_actions", "Page actions")
923
927
  })]
924
- }) : null, Ie = C.isVisible("show_actions") && !n && m && f ? /* @__PURE__ */ P(D, {
928
+ }) : null, Fe = w.isVisible("show_actions") && !n && m && f ? /* @__PURE__ */ F(O, {
925
929
  entityCode: f,
926
930
  scope: "detail",
927
931
  objectIds: [m],
928
932
  capability: l?.documents,
929
- canManageTemplates: be
930
- }) : null, Le = r ? c ? /* @__PURE__ */ P(g, {
933
+ canManageTemplates: ye
934
+ }) : null, Ie = r ? c ? /* @__PURE__ */ F(g, {
931
935
  kind: "primary",
932
- icon: P(he ? se : h.refresh, { size: 13 }),
936
+ icon: F(fe ? le : h.refresh, { size: 13 }),
933
937
  onClick: de,
934
- disabled: he,
935
- children: he ? x("record.restoring", "Restoring…") : x("record.restore", "Restore")
936
- }) : null : t ? /* @__PURE__ */ F(Qe, { children: [/* @__PURE__ */ P(g, {
937
- icon: /* @__PURE__ */ P(h.x, { size: 13 }),
938
- onClick: oe,
938
+ disabled: fe,
939
+ children: fe ? S("record.restoring", "Restoring…") : S("record.restore", "Restore")
940
+ }) : null : t ? /* @__PURE__ */ I($e, { children: [/* @__PURE__ */ F(g, {
941
+ icon: /* @__PURE__ */ F(h.x, { size: 13 }),
942
+ onClick: se,
939
943
  disabled: a,
940
- children: x("dialog.cancel", "Cancel")
941
- }), /* @__PURE__ */ P(g, {
944
+ children: S("dialog.cancel", "Cancel")
945
+ }), /* @__PURE__ */ F(g, {
942
946
  kind: "primary",
943
- icon: P(a ? se : h.save, { size: 13 }),
944
- onClick: ue,
947
+ icon: F(a ? le : h.save, { size: 13 }),
948
+ onClick: ce,
945
949
  disabled: a || o || s,
946
- title: o ? x("record.save.fix_child_rows", "Fix errors in child rows") : s ? x("record.save.fix_fields", "Fix the highlighted fields") : void 0,
947
- children: a ? x("dialog.saving", "Saving…") : x("dialog.save", "Save")
948
- })] }) : !n && m ? Ae ? /* @__PURE__ */ F("span", {
950
+ title: o ? S("record.save.fix_child_rows", "Fix errors in child rows") : s ? S("record.save.fix_fields", "Fix the highlighted fields") : void 0,
951
+ children: a ? S("dialog.saving", "Saving…") : S("dialog.save", "Save")
952
+ })] }) : !n && m ? ke ? /* @__PURE__ */ I("span", {
949
953
  style: { display: "contents" },
950
- children: [Ie, Ae]
951
- }) : Ie : null;
952
- return /* @__PURE__ */ F(Qe, { children: [/* @__PURE__ */ P(O, {
953
- icon: l?.display.icon ? /* @__PURE__ */ P(_, {
954
+ children: [Fe, ke]
955
+ }) : Fe : null;
956
+ return /* @__PURE__ */ I($e, { children: [/* @__PURE__ */ F(k, {
957
+ icon: l?.display.icon ? /* @__PURE__ */ F(ue, {
954
958
  name: l.display.icon,
955
959
  size: 16
956
960
  }) : void 0,
957
961
  title: e,
958
- description: x(u?.display?.description) || x(l?.display?.description),
962
+ description: S(u?.display?.description) || S(l?.display?.description),
959
963
  highlights: ne,
960
- identityControls: !r && !t && !n ? Ne : null,
964
+ identityControls: !r && !t && !n ? Ae : null,
961
965
  mode: n ? "create" : t ? "edit" : "display",
962
966
  dirty: i,
963
967
  showBack: re,
964
968
  onBack: ie,
965
- right: Le,
966
- showTitle: C.isVisible("show_title")
967
- }), Fe] });
969
+ right: Ie,
970
+ showTitle: w.isVisible("show_title")
971
+ }), Ne] });
968
972
  }
969
- var dt = {
973
+ var pt = {
970
974
  danger: {
971
975
  border: "var(--danger)",
972
976
  background: "var(--danger-soft)",
@@ -983,9 +987,9 @@ var dt = {
983
987
  color: "var(--accent)"
984
988
  }
985
989
  };
986
- function ft({ tone: e, testId: t, children: n }) {
987
- let r = dt[e];
988
- return /* @__PURE__ */ F("div", {
990
+ function mt({ tone: e, testId: t, children: n }) {
991
+ let r = pt[e];
992
+ return /* @__PURE__ */ I("div", {
989
993
  "data-testid": t,
990
994
  style: {
991
995
  display: "flex",
@@ -999,14 +1003,14 @@ function ft({ tone: e, testId: t, children: n }) {
999
1003
  color: r.color,
1000
1004
  fontSize: 12.5
1001
1005
  },
1002
- children: [P(e === "info" ? h.info : h.warning, { size: 14 }), /* @__PURE__ */ P("span", { children: n })]
1006
+ children: [F(e === "info" ? h.info : h.warning, { size: 14 }), /* @__PURE__ */ F("span", { children: n })]
1003
1007
  });
1004
1008
  }
1005
- function pt(e, t, n, r) {
1009
+ function ht(e, t, n, r) {
1006
1010
  let i = t.tenant_key, a = i ? t.fields.get(i) : void 0;
1007
1011
  if (!i || !a?.ref?.entity) return;
1008
1012
  let o = r?.[a.ref.entity]?.[String(n[i])];
1009
- if (o) return f(e, o, a.display?.ref_display_field || "$display", "") || void 0;
1013
+ if (o) return p(e, o, a.display?.ref_display_field || "$display", "") || void 0;
1010
1014
  }
1011
1015
  //#endregion
1012
- export { ot as SmartDetailPage };
1016
+ export { st as SmartDetailPage };