@nivaro/react 0.3.36 → 0.3.38

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 (102) hide show
  1. package/dist/components/slots/CommentsSlot.js +44 -36
  2. package/dist/full.css +1 -1
  3. package/dist/hooks/useSessionRecorder.js +1 -1
  4. package/dist/index.d.ts +9 -1
  5. package/dist/shared/components/AgentBadge.js +26 -0
  6. package/dist/shared/components/AgentQuestionsCard.js +198 -0
  7. package/dist/shared/components/ItemEditForm.js +3329 -3263
  8. package/dist/shared/components/McpConnectionScope.js +480 -0
  9. package/dist/shared/components/MyWorkView.js +223 -208
  10. package/dist/shared/components/RecordReadView.js +620 -575
  11. package/dist/shared/components/chat/ChatPanel.js +683 -671
  12. package/dist/shared/components/imports/DownloadSampleButton.js +69 -0
  13. package/dist/shared/components/imports/ImportConsole.js +106 -104
  14. package/dist/shared/components/imports/RunDetailSheet.js +34 -32
  15. package/dist/shared/components/item-edit/FieldAffordances.js +32 -32
  16. package/dist/shared/components/item-edit/FormTour.js +279 -0
  17. package/dist/shared/components/item-edit/GroupSection.js +377 -360
  18. package/dist/shared/components/item-edit/PersonalDefaultControl.js +28 -28
  19. package/dist/shared/components/item-edit/entry/EntryStrip.js +30 -26
  20. package/dist/shared/components/item-edit/form-density.js +36 -0
  21. package/dist/shared/components/item-edit/useFormUsageBeacon.js +59 -46
  22. package/dist/shared/components/item-edit/usePersonalDefaults.js +312 -296
  23. package/dist/shared/components/layout-editor/AddPanel.js +349 -192
  24. package/dist/shared/components/layout-editor/DesignNode.js +126 -112
  25. package/dist/shared/components/layout-editor/EditorTopBar.js +123 -103
  26. package/dist/shared/components/layout-editor/LayoutEditor.js +829 -751
  27. package/dist/shared/components/layout-editor/PlaceTools.js +334 -0
  28. package/dist/shared/components/layout-editor/SlashInsert.js +252 -0
  29. package/dist/shared/components/layout-editor/StructureMenu.js +285 -242
  30. package/dist/shared/components/layout-editor/add-target.js +54 -43
  31. package/dist/shared/components/layout-editor/ai-forms/AiComposer.js +238 -155
  32. package/dist/shared/components/layout-editor/ai-forms/AiFormsButton.js +1 -1
  33. package/dist/shared/components/layout-editor/ai-forms/ai-forms-api.js +15 -12
  34. package/dist/shared/components/layout-editor/dnd/LayoutDndProvider.js +347 -189
  35. package/dist/shared/components/layout-editor/dnd/TrashZone.js +60 -32
  36. package/dist/shared/components/layout-editor/dnd/UndoChip.js +76 -0
  37. package/dist/shared/components/layout-editor/dnd/merge-drop.js +33 -0
  38. package/dist/shared/components/layout-editor/dnd/multi-drop.js +87 -0
  39. package/dist/shared/components/layout-editor/dnd/node.js +115 -105
  40. package/dist/shared/components/layout-editor/dnd/sensors.js +23 -0
  41. package/dist/shared/components/layout-editor/dnd/trash-drop.js +34 -28
  42. package/dist/shared/components/layout-editor/dnd/trash-links.js +97 -0
  43. package/dist/shared/components/layout-editor/even-row.js +86 -0
  44. package/dist/shared/components/layout-editor/field-list.js +99 -0
  45. package/dist/shared/components/layout-editor/format-painter.js +102 -0
  46. package/dist/shared/components/layout-editor/grid-guides.js +15 -13
  47. package/dist/shared/components/layout-editor/inspector/BehaviourSettings.js +150 -132
  48. package/dist/shared/components/layout-editor/inspector/BulkInspector.js +57 -53
  49. package/dist/shared/components/layout-editor/inspector/EvenRowAction.js +31 -0
  50. package/dist/shared/components/layout-editor/inspector/GroupInspector.js +154 -141
  51. package/dist/shared/components/layout-editor/inspector/Inspector.js +209 -178
  52. package/dist/shared/components/layout-editor/inspector/LookTab.js +106 -98
  53. package/dist/shared/components/layout-editor/inspector/RulesTab.js +38 -37
  54. package/dist/shared/components/layout-editor/inspector/kit.js +280 -223
  55. package/dist/shared/components/layout-editor/keyboard-move.js +15 -15
  56. package/dist/shared/components/layout-editor/lint/LabelStyle.js +201 -0
  57. package/dist/shared/components/layout-editor/lint/LintPanel.js +132 -84
  58. package/dist/shared/components/layout-editor/lint/lint-api.js +65 -28
  59. package/dist/shared/components/layout-editor/nav/NavTools.js +14 -12
  60. package/dist/shared/components/layout-editor/nav/ZoomControls.js +145 -0
  61. package/dist/shared/components/layout-editor/nav/useEditorNav.js +34 -32
  62. package/dist/shared/components/layout-editor/nav/view-prefs.js +100 -15
  63. package/dist/shared/components/layout-editor/outputs/LayoutFile.js +89 -0
  64. package/dist/shared/components/layout-editor/outputs/OutputsButton.js +272 -195
  65. package/dist/shared/components/layout-editor/outputs/layout-file-plan.js +176 -0
  66. package/dist/shared/components/layout-editor/outputs/output-api.js +71 -37
  67. package/dist/shared/components/layout-editor/overview/describe-conditions.js +16 -11
  68. package/dist/shared/components/layout-editor/overview/purpose.js +5 -5
  69. package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
  70. package/dist/shared/components/layout-editor/pin.js +37 -19
  71. package/dist/shared/components/layout-editor/place-clip.js +257 -0
  72. package/dist/shared/components/layout-editor/preview/PreviewModes.js +27 -26
  73. package/dist/shared/components/layout-editor/preview/PreviewPanes.js +148 -117
  74. package/dist/shared/components/layout-editor/preview/SampleRecord.js +113 -0
  75. package/dist/shared/components/layout-editor/preview/preview-model.js +79 -60
  76. package/dist/shared/components/layout-editor/preview/sample-record.js +105 -0
  77. package/dist/shared/components/layout-editor/removed-log.js +151 -0
  78. package/dist/shared/components/layout-editor/reuse/LibraryRows.js +109 -78
  79. package/dist/shared/components/layout-editor/reuse/linked-sections.js +373 -0
  80. package/dist/shared/components/layout-editor/revert-element.js +140 -0
  81. package/dist/shared/components/layout-editor/section-structure.js +193 -170
  82. package/dist/shared/components/layout-editor/settings/EntrySection.js +63 -45
  83. package/dist/shared/components/layout-editor/settings/LayoutSection.js +63 -32
  84. package/dist/shared/components/layout-editor/settings/ResolveSettings.js +179 -137
  85. package/dist/shared/components/layout-editor/settings/WhoSection.js +18 -17
  86. package/dist/shared/components/layout-editor/settings/settings-registry.js +24 -0
  87. package/dist/shared/components/layout-editor/shortcuts.js +21 -16
  88. package/dist/shared/components/layout-editor/structure-ops.js +221 -195
  89. package/dist/shared/components/layout-editor/usage/UsagePanel.js +133 -85
  90. package/dist/shared/components/layout-editor/usage/refusal-lens.js +130 -0
  91. package/dist/shared/components/layout-editor/usage/usage-api.js +12 -11
  92. package/dist/shared/components/panels/CommentPanel.js +47 -45
  93. package/dist/shared/components/panels/RevisionsPanel.js +66 -64
  94. package/dist/shared/components/panels/TaskPanel.js +395 -332
  95. package/dist/shared/components/profile/AgentsPanel.js +196 -147
  96. package/dist/shared/components/profile/ConnectionRollback.js +329 -0
  97. package/dist/shared/components/profile/MyDefaultsCard.js +526 -520
  98. package/dist/shared/lib/entry-config.js +22 -22
  99. package/dist/shared/lib/form-usage-beacon.js +91 -55
  100. package/dist/shared/lib/layout-lint.js +530 -284
  101. package/dist/shared/lib/layout-resolve.js +58 -44
  102. package/package.json +1 -1
@@ -1,309 +1,321 @@
1
- import { useQueryClient as Qe, useQuery as ze } from "@tanstack/react-query";
2
- import { useRef as F, useMemo as Ee, useState as ce, useEffect as z, useCallback as a, createContext as He, useContext as Ie } from "react";
3
- import { useNivaroClient as _e } from "../../context.js";
4
- import { get as Be, put as oe, del as Je } from "../../lib/commands.js";
5
- import { isEmptyValue as g, pickDefault as ue, cascadeParents as C, orderTopDown as Ue, captureContext as We } from "../../lib/personal-defaults.js";
6
- import { titleCase as Ne } from "../../lib/utils.js";
7
- const Ge = He(null);
8
- function it() {
9
- return Ie(Ge);
1
+ import { useQueryClient as ze, useQuery as Be } from "@tanstack/react-query";
2
+ import { useRef as S, useMemo as Ne, useState as ue, useEffect as I, useCallback as l, createContext as He, useContext as Ie } from "react";
3
+ import { useNivaroClient as Ue } from "../../context.js";
4
+ import { get as _e, put as ae, del as Je } from "../../lib/commands.js";
5
+ import { isEmptyValue as v, pickDefault as ie, cascadeParents as K, orderTopDown as We, captureContext as Ge } from "../../lib/personal-defaults.js";
6
+ import { titleCase as Te } from "../../lib/utils.js";
7
+ const Xe = He(null);
8
+ function lt() {
9
+ return Ie(Xe);
10
10
  }
11
- function j(o) {
12
- return ["field-defaults", o];
11
+ function Q(i) {
12
+ return ["field-defaults", i];
13
13
  }
14
- function O(o) {
15
- return Array.isArray(o) ? o.map(O) : o && typeof o == "object" && "id" in o ? o.id : o;
14
+ function Y(i) {
15
+ return Array.isArray(i) ? i.map(Y) : i && typeof i == "object" && "id" in i ? i.id : i;
16
16
  }
17
- const Xe = /* @__PURE__ */ new Set(["integer", "bigInteger", "float", "decimal", "number", "double"]), Ze = /* @__PURE__ */ new Set(["date"]), et = /* @__PURE__ */ new Set(["dateTime", "datetime", "timestamp", "time"]);
18
- function q(o, i, v) {
19
- if (g(o) && g(i)) return !0;
20
- if (v && !Array.isArray(o) && !Array.isArray(i) && !g(o) && !g(i)) {
21
- const S = O(o), b = O(i);
22
- if (Xe.has(v)) {
23
- const d = Number(S), p = Number(b);
24
- if (Number.isFinite(d) && Number.isFinite(p)) return d === p;
25
- } else if (Ze.has(v)) {
26
- const d = (A) => {
27
- var V;
28
- return (V = /^(\d{4}-\d{2}-\d{2})/.exec(String(A))) == null ? void 0 : V[1];
29
- }, p = d(S), f = d(b);
30
- if (p && f) return p === f;
31
- } else if (et.has(v)) {
32
- const d = Date.parse(String(S)), p = Date.parse(String(b));
33
- if (Number.isFinite(d) && Number.isFinite(p)) return d === p;
17
+ const Ze = /* @__PURE__ */ new Set(["integer", "bigInteger", "float", "decimal", "number", "double"]), et = /* @__PURE__ */ new Set(["date"]), tt = /* @__PURE__ */ new Set(["dateTime", "datetime", "timestamp", "time"]);
18
+ function E(i, f, F) {
19
+ if (v(i) && v(f)) return !0;
20
+ if (F && !Array.isArray(i) && !Array.isArray(f) && !v(i) && !v(f)) {
21
+ const M = Y(i), k = Y(f);
22
+ if (Ze.has(F)) {
23
+ const p = Number(M), m = Number(k);
24
+ if (Number.isFinite(p) && Number.isFinite(m)) return p === m;
25
+ } else if (et.has(F)) {
26
+ const p = (R) => {
27
+ var $;
28
+ return ($ = /^(\d{4}-\d{2}-\d{2})/.exec(String(R))) == null ? void 0 : $[1];
29
+ }, m = p(M), d = p(k);
30
+ if (m && d) return m === d;
31
+ } else if (tt.has(F)) {
32
+ const p = Date.parse(String(M)), m = Date.parse(String(k));
33
+ if (Number.isFinite(p) && Number.isFinite(m)) return p === m;
34
34
  }
35
35
  }
36
- const D = (S) => {
37
- const b = O(S);
38
- return Array.isArray(b) ? b.map((d) => String(d)).sort() : String(b);
36
+ const N = (M) => {
37
+ const k = Y(M);
38
+ return Array.isArray(k) ? k.map((p) => String(p)).sort() : String(k);
39
39
  };
40
- return JSON.stringify(D(o)) === JSON.stringify(D(i));
40
+ return JSON.stringify(N(i)) === JSON.stringify(N(f));
41
41
  }
42
- function lt(o, i) {
43
- let v = 0;
44
- for (const [D, S] of o) {
45
- const b = i.get(D);
46
- for (const d of S) b != null && b.has(String(d)) || v++;
42
+ function ft(i, f) {
43
+ let F = 0;
44
+ for (const [N, M] of i) {
45
+ const k = f.get(N);
46
+ for (const p of M) k != null && k.has(String(p)) || F++;
47
47
  }
48
- return v;
48
+ return F;
49
49
  }
50
- function tt(o) {
51
- return Array.isArray(o) ? o : g(o) ? [] : [o];
50
+ function rt(i) {
51
+ return Array.isArray(i) ? i : v(i) ? [] : [i];
52
52
  }
53
- function ft(o) {
54
- const { collection: i, isNew: v, disabled: D, enabled: S = !0, ready: b = !0 } = o, d = _e(), p = Qe(), f = F(o);
55
- f.current = o;
56
- const { data: A, isError: V } = ze({
57
- queryKey: j(i),
58
- queryFn: () => d.request(Be("/field-defaults/mine", { collection: i })).then((e) => e.data ?? []),
53
+ function dt(i) {
54
+ const { collection: f, isNew: F, disabled: N, enabled: M = !0, ready: k = !0 } = i, p = Ue(), m = ze(), d = S(i);
55
+ d.current = i;
56
+ const { data: R, isError: $ } = Be({
57
+ queryKey: Q(f),
58
+ queryFn: () => p.request(_e("/field-defaults/mine", { collection: f })).then((e) => e.data ?? []),
59
59
  staleTime: 5 * 6e4,
60
- enabled: !!i && S
61
- }), H = Ee(() => {
60
+ enabled: !!f && M
61
+ }), U = Ne(() => {
62
62
  const e = /* @__PURE__ */ new Map();
63
- for (const t of A ?? []) {
63
+ for (const t of R ?? []) {
64
64
  const r = e.get(t.field) ?? [];
65
65
  r.push(t), e.set(t.field, r);
66
66
  }
67
67
  return e;
68
- }, [A]), W = F(H);
69
- W.current = H;
70
- const y = F(/* @__PURE__ */ new Map()), [G, Te] = ce(() => /* @__PURE__ */ new Map()), P = F(/* @__PURE__ */ new Map()), [ae, Ce] = ce(() => /* @__PURE__ */ new Map()), E = F(/* @__PURE__ */ new Set()), I = F(!0);
71
- z(() => (I.current = !0, () => {
72
- I.current = !1;
68
+ }, [R]), Z = S(U);
69
+ Z.current = U;
70
+ const g = S(/* @__PURE__ */ new Map()), [ee, Oe] = ue(() => /* @__PURE__ */ new Map()), q = S(/* @__PURE__ */ new Map()), [le, Ce] = ue(() => /* @__PURE__ */ new Map()), T = S(/* @__PURE__ */ new Set()), z = S(/* @__PURE__ */ new Map()), _ = S(!0);
71
+ I(() => (_.current = !0, () => {
72
+ _.current = !1;
73
73
  }), []);
74
- const m = a(() => {
75
- I.current && (Te((e) => {
76
- const t = y.current;
74
+ const b = l(() => {
75
+ _.current && (Oe((e) => {
76
+ const t = g.current;
77
77
  return e.size === t.size && [...t].every(([r, n]) => e.get(r) === n) ? e : new Map(t);
78
78
  }), Ce((e) => {
79
- const t = P.current;
79
+ const t = q.current;
80
80
  return e.size === t.size && [...t].every(([r, n]) => e.get(r) === n) ? e : new Map(t);
81
81
  }));
82
- }, []), c = a((e) => {
82
+ }, []), o = l((e) => {
83
83
  var n;
84
- const t = f.current, r = (n = t.readValue) == null ? void 0 : n.call(t, e);
84
+ const t = d.current, r = (n = t.readValue) == null ? void 0 : n.call(t, e);
85
85
  return r !== void 0 ? r : t.draftRef.current[e];
86
- }, []), N = a(
86
+ }, []), O = l(
87
87
  (e) => {
88
88
  const t = {};
89
- for (const r of e) t[r] = c(r);
89
+ for (const r of e) t[r] = o(r);
90
90
  return t;
91
91
  },
92
- [c]
93
- ), M = a(async (e, t) => {
94
- const r = f.current, s = (await Promise.all(
95
- tt(O(t)).map(async (l) => {
96
- if (!r.valueLabel) return String(l);
92
+ [o]
93
+ ), D = l(async (e, t) => {
94
+ const r = d.current, s = (await Promise.all(
95
+ rt(Y(t)).map(async (u) => {
96
+ if (!r.valueLabel) return String(u);
97
97
  try {
98
- return await r.valueLabel(e, l) ?? null;
98
+ return await r.valueLabel(e, u) ?? null;
99
99
  } catch {
100
100
  return null;
101
101
  }
102
102
  })
103
- )).filter((l) => !!l);
103
+ )).filter((u) => !!u);
104
104
  return s.length > 0 ? s.join(", ") : null;
105
- }, []), K = F(0), _ = a(
105
+ }, []), j = S(0), J = l(
106
106
  async (e, t, r) => {
107
107
  const n = await t;
108
- K.current === r && (P.current.set(e, n), m());
108
+ j.current === r && (q.current.set(e, n), b());
109
109
  },
110
- [m]
111
- ), X = a(
110
+ [b]
111
+ ), te = l(
112
112
  async (e, t) => {
113
- var s, l;
114
- const r = ((l = (s = f.current).fieldLabel) == null ? void 0 : l.call(s, e)) ?? e, n = await M(e, t);
113
+ var s, u;
114
+ const r = ((u = (s = d.current).fieldLabel) == null ? void 0 : u.call(s, e)) ?? e, n = await D(e, t);
115
115
  return n ? `Your default is for ${r} “${n}”` : `Your saved default is for a different ${r}`;
116
116
  },
117
- [M]
118
- ), B = a((e, t, r) => {
119
- const n = f.current;
120
- if (n.setFieldValue(e, t, r), g(t)) {
121
- y.current.delete(e);
117
+ [D]
118
+ ), W = l((e, t, r) => {
119
+ const n = d.current;
120
+ if (n.setFieldValue(e, t, r), v(t)) {
121
+ g.current.delete(e);
122
122
  return;
123
123
  }
124
- y.current.set(e, t), P.current.delete(e), n.markAutoFilled([e]);
125
- }, []), ie = a(
124
+ g.current.set(e, t), q.current.delete(e), n.markAutoFilled([e]);
125
+ }, []), fe = l(
126
126
  async (e, t) => {
127
- var Se, Ae, Pe, Me, Re, qe;
128
- const r = f.current, n = () => K.current !== t, s = W.current.get(e) ?? [];
127
+ var Ae, Pe, Me, Re, qe, De;
128
+ const r = d.current, n = () => j.current !== t, s = Z.current.get(e) ?? [];
129
129
  if (s.length === 0 || !r.layoutAllows(e)) return [];
130
- if (E.current.has(e) || !(((Se = r.canFill) == null ? void 0 : Se.call(r, e)) ?? !0)) return [];
131
- const l = c(e), w = !g(l);
132
- if (w && !(((Ae = r.replaceable) == null ? void 0 : Ae.call(r, e, l)) ?? !1)) return [];
133
- const T = new Set(s.flatMap((u) => Object.keys(u.context ?? {}))), U = N(T), { pick: h, fillParents: R, blockedBy: Y } = ue(s, U);
134
- if (!h) {
135
- if (Y) {
136
- const u = (Pe = s.find(
137
- (k) => k.context && Y in k.context && !q(k.context[Y], U[Y])
138
- )) == null ? void 0 : Pe.context[Y];
139
- await _(e, X(Y, u), t);
130
+ if (T.current.has(e) || !(((Ae = r.canFill) == null ? void 0 : Ae.call(r, e)) ?? !0)) return [];
131
+ const u = o(e), y = !v(u);
132
+ if (y && !(((Pe = r.replaceable) == null ? void 0 : Pe.call(r, e, u)) ?? !1)) return [];
133
+ const P = new Set(s.flatMap((a) => Object.keys(a.context ?? {}))), w = O(P), { pick: c, fillParents: h, blockedBy: C } = ie(s, w);
134
+ if (!c) {
135
+ if (C) {
136
+ const a = (Me = s.find(
137
+ (x) => x.context && C in x.context && !E(x.context[C], w[C])
138
+ )) == null ? void 0 : Me.context[C];
139
+ await J(e, te(C, a), t);
140
140
  }
141
141
  return [];
142
142
  }
143
- const ke = C(e, r.rulesFor).reverse(), Le = [
144
- ...ke.filter((u) => u in R),
145
- ...Object.keys(R).filter((u) => !ke.includes(u))
146
- ], se = [], $ = () => {
147
- for (const [u, k] of se.reverse())
148
- q(c(u), k) ? B(u, null, k) : y.current.delete(u);
143
+ const V = K(e, r.rulesFor).reverse(), Qe = [
144
+ ...V.filter((a) => a in h),
145
+ ...Object.keys(h).filter((a) => !V.includes(a))
146
+ ], X = [], L = () => {
147
+ for (const [a, x] of X.reverse())
148
+ E(o(a), x) ? W(a, null, x) : g.current.delete(a);
149
149
  };
150
- for (const u of Le) {
151
- const k = R[u], De = r.layoutAllows(u) && !E.current.has(u) && (((Me = r.canFill) == null ? void 0 : Me.call(r, u)) ?? !0) ? await r.revalidate(u, k) : !1;
150
+ for (const a of Qe) {
151
+ const x = h[a], Ee = r.layoutAllows(a) && !T.current.has(a) && (((Re = r.canFill) == null ? void 0 : Re.call(r, a)) ?? !0) ? await r.revalidate(a, x) : !1;
152
152
  if (n()) return [];
153
- if (De === null)
154
- return $(), [];
155
- if (!De || !g(c(u)))
156
- return $(), await _(e, X(u, k), t), [];
157
- B(u, k), se.push([u, k]);
153
+ if (Ee === null)
154
+ return L(), [];
155
+ if (!Ee || !v(o(a)))
156
+ return L(), await J(e, te(a, x), t), [];
157
+ W(a, x), X.push([a, x]);
158
158
  }
159
- const Fe = await r.revalidate(e, h.value);
159
+ const Se = await r.revalidate(e, c.value);
160
160
  if (n()) return [];
161
- if (Fe === null)
162
- return $(), [];
163
- if (!Fe)
164
- return $(), await _(
161
+ if (Se === null)
162
+ return L(), [];
163
+ if (!Se)
164
+ return L(), await J(
165
165
  e,
166
- M(e, h.value).then(
167
- (u) => u ? `Your default "${u}" is no longer available` : "Your saved default is no longer available"
166
+ D(e, c.value).then(
167
+ (a) => a ? `Your default "${a}" is no longer available` : "Your saved default is no longer available"
168
168
  ),
169
169
  t
170
170
  ), [];
171
- if (!q(c(e), l) || !(((Re = r.canFill) == null ? void 0 : Re.call(r, e)) ?? !0))
172
- return $(), [];
173
- const xe = ue(s, N(T));
174
- return ((qe = xe.pick) == null ? void 0 : qe.id) !== h.id || Object.keys(xe.fillParents).length > 0 ? ($(), "stale") : (B(e, h.value, w ? l : void 0), [...se.map(([u]) => u), e]);
171
+ if (!E(o(e), u) || !(((qe = r.canFill) == null ? void 0 : qe.call(r, e)) ?? !0))
172
+ return L(), [];
173
+ const xe = ie(s, O(P));
174
+ return ((De = xe.pick) == null ? void 0 : De.id) !== c.id || Object.keys(xe.fillParents).length > 0 ? (L(), "stale") : (W(e, c.value, y ? u : void 0), z.current.set(
175
+ e,
176
+ X.map(([a]) => a)
177
+ ), [...X.map(([a]) => a), e]);
175
178
  },
176
- [c, N, _, X, M, B]
177
- ), le = a(
179
+ [o, O, J, te, D, W]
180
+ ), de = l(
178
181
  async (e, t) => {
179
182
  for (let r = 0; r < 3; r++) {
180
- const n = await ie(e, t);
183
+ const n = await fe(e, t);
181
184
  if (n !== "stale") return n;
182
185
  }
183
186
  return [];
184
187
  },
185
- [ie]
186
- ), Z = a(
188
+ [fe]
189
+ ), re = l(
187
190
  async (e) => {
188
191
  var n, s;
189
- const t = K.current, r = /* @__PURE__ */ new Set();
190
- for (const l of e) {
191
- if (!I.current || K.current !== t) return;
192
- for (const w of await le(l, t)) r.add(w);
193
- m();
192
+ const t = j.current, r = /* @__PURE__ */ new Set();
193
+ for (const u of e) {
194
+ if (!_.current || j.current !== t) return;
195
+ for (const y of await de(u, t)) r.add(y);
196
+ b();
194
197
  }
195
- if (K.current === t) {
196
- for (const l of r)
197
- y.current.has(l) && ((s = (n = f.current).afterApply) == null || s.call(n, l, y.current.get(l)));
198
- m();
198
+ if (j.current === t) {
199
+ for (const u of r)
200
+ g.current.has(u) && ((s = (n = d.current).afterApply) == null || s.call(n, u, g.current.get(u)));
201
+ b();
199
202
  }
200
203
  },
201
- [le, m]
202
- ), ee = a(() => {
203
- const e = f.current;
204
- return Ue(
205
- [...W.current.keys()].filter((t) => e.layoutAllows(t)),
204
+ [de, b]
205
+ ), ne = l(() => {
206
+ const e = d.current;
207
+ return We(
208
+ [...Z.current.keys()].filter((t) => e.layoutAllows(t)),
206
209
  e.rulesFor
207
210
  );
208
- }, []), te = F(!1);
209
- z(() => {
210
- !v || D || !b || te.current || A === void 0 || (te.current = !0, Z(ee()));
211
- }, [v, D, b, A, Z, ee]), z(() => {
211
+ }, []), se = S(!1);
212
+ I(() => {
213
+ !F || N || !k || se.current || R === void 0 || (se.current = !0, re(ne()));
214
+ }, [F, N, k, R, re, ne]), I(() => {
212
215
  let e = !1;
213
- for (const [t, r] of y.current)
214
- q(c(t), r) || (y.current.delete(t), e = !0);
215
- for (const t of P.current.keys())
216
- g(c(t)) || (P.current.delete(t), e = !0);
217
- e && m();
216
+ for (const [t, r] of g.current)
217
+ E(o(t), r) || (g.current.delete(t), e = !0);
218
+ for (const t of q.current.keys())
219
+ v(o(t)) || (q.current.delete(t), e = !0);
220
+ e && b();
218
221
  });
219
- const L = F(/* @__PURE__ */ new Set()), Q = F(/* @__PURE__ */ new Map()), [Oe, Ve] = ce(0), Ke = a(
222
+ const B = S(/* @__PURE__ */ new Set()), H = S(/* @__PURE__ */ new Map()), [Ve, Ke] = ue(0), Ye = l(
220
223
  (e) => {
221
- let t = y.current.delete(e);
222
- if (P.current.delete(e) && (t = !0), E.current.delete(e), Q.current.delete(e), !f.current.isNew) {
223
- t && m();
224
+ let t = g.current.delete(e);
225
+ if (q.current.delete(e) && (t = !0), T.current.delete(e), H.current.delete(e), !d.current.isNew) {
226
+ t && b();
224
227
  return;
225
228
  }
226
- const r = f.current.rulesFor;
227
- for (const [n, s] of [...y.current])
228
- C(n, r).includes(e) && (Q.current.set(n, s), y.current.delete(n), t = !0);
229
- t && m(), L.current.add(e), Ve((n) => n + 1);
229
+ const r = d.current.rulesFor;
230
+ for (const [n, s] of [...g.current])
231
+ K(n, r).includes(e) && (H.current.set(n, s), g.current.delete(n), t = !0);
232
+ t && b(), B.current.add(e), Ke((n) => n + 1);
230
233
  },
231
- [m]
234
+ [b]
232
235
  );
233
- z(() => {
234
- if (L.current.size === 0 || f.current.disabled) return;
235
- const e = [...L.current];
236
- L.current.clear();
237
- const t = new Map(Q.current);
238
- Q.current.clear();
239
- const r = f.current, n = [];
240
- for (const s of ee()) {
236
+ I(() => {
237
+ if (B.current.size === 0 || d.current.disabled) return;
238
+ const e = [...B.current];
239
+ B.current.clear();
240
+ const t = new Map(H.current);
241
+ H.current.clear();
242
+ const r = d.current, n = [];
243
+ for (const s of ne()) {
241
244
  if (t.has(s)) {
242
- const w = t.get(s), T = c(s);
243
- if (q(T, w)) r.setFieldValue(s, null, w);
244
- else if (!g(T)) continue;
245
+ const y = t.get(s), P = o(s);
246
+ if (E(P, y)) r.setFieldValue(s, null, y);
247
+ else if (!v(P)) continue;
245
248
  n.push(s);
246
249
  continue;
247
250
  }
248
- const l = C(s, r.rulesFor);
249
- e.some((w) => l.includes(w)) && P.current.has(s) && g(c(s)) && (P.current.delete(s), n.push(s));
251
+ const u = K(s, r.rulesFor);
252
+ e.some((y) => u.includes(y)) && q.current.has(s) && v(o(s)) && (q.current.delete(s), n.push(s));
250
253
  }
251
- m(), n.length > 0 && Z(n);
252
- }, [Oe]);
253
- const re = a(
254
+ b(), n.length > 0 && re(n);
255
+ }, [Ve]);
256
+ const ce = l(
254
257
  (e) => {
255
- const t = f.current;
256
- if (!y.current.has(e)) return;
257
- const r = [
258
- e,
259
- ...[...y.current.keys()].filter(
260
- (n) => n !== e && C(n, t.rulesFor).includes(e)
261
- )
262
- ];
263
- for (const n of r) {
264
- const s = y.current.get(n);
265
- q(c(n), s) && t.setFieldValue(n, null, s), y.current.delete(n);
258
+ var P;
259
+ const t = d.current, r = g.current;
260
+ if (!r.has(e)) return;
261
+ const n = (w) => K(w, t.rulesFor), s = /* @__PURE__ */ new Set([e]);
262
+ for (let w = !0; w; ) {
263
+ w = !1;
264
+ for (const c of r.keys())
265
+ s.has(c) || n(c).some((h) => s.has(h)) && (s.add(c), w = !0);
266
+ for (const c of [...s])
267
+ for (const h of z.current.get(c) ?? []) {
268
+ if (s.has(h) || !r.has(h)) continue;
269
+ [...r.keys()].some(
270
+ (V) => V !== h && !s.has(V) && ((z.current.get(V) ?? []).includes(h) || n(V).includes(h))
271
+ ) || (s.add(h), w = !0);
272
+ }
266
273
  }
267
- E.current.add(e), m();
274
+ const u = (w) => n(w).length, y = [];
275
+ for (const w of [...s].sort((c, h) => u(h) - u(c))) {
276
+ const c = r.get(w);
277
+ E(o(w), c) && (t.setFieldValue(w, null, c), y.push(w)), r.delete(w), z.current.delete(w), T.current.add(w);
278
+ }
279
+ y.length && ((P = t.onUndone) == null || P.call(t, y)), b();
268
280
  },
269
- [c, m]
270
- ), Ye = a(
281
+ [o, b]
282
+ ), $e = l(
271
283
  (e) => {
272
- if (!y.current.has(e)) return;
273
- const t = y.current.get(e);
274
- q(c(e), t) && f.current.setFieldValue(e, null, t), y.current.delete(e), E.current.add(e), m();
284
+ if (!g.current.has(e)) return;
285
+ const t = g.current.get(e);
286
+ E(o(e), t) && d.current.setFieldValue(e, null, t), g.current.delete(e), T.current.add(e), b();
275
287
  },
276
- [c, m]
277
- ), J = `${i}|${v ? "new" : "saved"}|${o.resetKey ?? ""}`, fe = F(J);
278
- z(() => {
279
- fe.current !== J && (fe.current = J, y.current.clear(), P.current.clear(), E.current.clear(), Q.current.clear(), L.current.clear(), te.current = !1, K.current += 1, m());
280
- }, [J, m]);
281
- const ne = a((e) => ae.get(e) ?? null, [ae]), $e = a(() => y.current, []), x = a(
288
+ [o, b]
289
+ ), G = `${f}|${F ? "new" : "saved"}|${i.resetKey ?? ""}`, ye = S(G);
290
+ I(() => {
291
+ ye.current !== G && (ye.current = G, g.current.clear(), q.current.clear(), T.current.clear(), z.current.clear(), H.current.clear(), B.current.clear(), se.current = !1, j.current += 1, b());
292
+ }, [G, b]);
293
+ const oe = l((e) => le.get(e) ?? null, [le]), je = l(() => g.current, []), A = l(
282
294
  (e) => {
283
- const t = H.get(e) ?? [];
295
+ const t = U.get(e) ?? [];
284
296
  if (t.length === 0) return null;
285
297
  const r = new Set(t.flatMap((n) => Object.keys(n.context ?? {})));
286
- return ue(t, N(r)).pick;
298
+ return ie(t, O(r)).pick;
287
299
  },
288
- [H, N]
289
- ), de = a(() => {
290
- p.invalidateQueries({ queryKey: j(i) });
291
- }, [p, i]), ye = a(
292
- (e) => !g(c(e)),
293
- [c]
294
- ), we = a(
300
+ [U, O]
301
+ ), pe = l(() => {
302
+ m.invalidateQueries({ queryKey: Q(f) });
303
+ }, [m, f]), we = l(
304
+ (e) => !v(o(e)),
305
+ [o]
306
+ ), me = l(
295
307
  (e) => {
296
308
  var n, s;
297
- const t = c(e);
298
- if (g(t)) return !1;
299
- const r = x(e);
300
- return !!r && q(r.value, t, (s = (n = f.current).fieldType) == null ? void 0 : s.call(n, e));
309
+ const t = o(e);
310
+ if (v(t)) return !1;
311
+ const r = A(e);
312
+ return !!r && E(r.value, t, (s = (n = d.current).fieldType) == null ? void 0 : s.call(n, e));
301
313
  },
302
- [c, x]
303
- ), pe = a(
314
+ [o, A]
315
+ ), he = l(
304
316
  async (e) => {
305
- const t = f.current, r = [
306
- ...[...C(e, t.rulesFor)].reverse().filter((n) => t.layoutAllows(n) && !g(c(n))),
317
+ const t = d.current, r = [
318
+ ...[...K(e, t.rulesFor)].reverse().filter((n) => t.layoutAllows(n) && !v(o(n))),
307
319
  e
308
320
  ];
309
321
  return Promise.all(
@@ -311,132 +323,136 @@ function ft(o) {
311
323
  r.map(
312
324
  async (n) => {
313
325
  var s;
314
- return await M(n, c(n)) ?? ((s = t.fieldLabel) == null ? void 0 : s.call(t, n)) ?? Ne(n);
326
+ return await D(n, o(n)) ?? ((s = t.fieldLabel) == null ? void 0 : s.call(t, n)) ?? Te(n);
315
327
  }
316
328
  )
317
329
  );
318
330
  },
319
- [c, M]
320
- ), me = a(
331
+ [o, D]
332
+ ), ge = l(
321
333
  async (e) => {
322
- const t = f.current, r = c(e);
323
- if (g(r)) throw new Error("Pick a value first");
324
- const n = C(e, t.rulesFor), s = N([e, ...n]), l = (w) => d.request(
325
- oe("/field-defaults/mine", {
326
- collection: i,
327
- field: w,
328
- value: O(s[w]),
329
- context: We(w, s, t.rulesFor)
334
+ const t = d.current, r = o(e);
335
+ if (v(r)) throw new Error("Pick a value first");
336
+ const n = K(e, t.rulesFor), s = O([e, ...n]), u = (y) => p.request(
337
+ ae("/field-defaults/mine", {
338
+ collection: f,
339
+ field: y,
340
+ value: Y(s[y]),
341
+ context: Ge(y, s, t.rulesFor)
330
342
  })
331
343
  );
332
344
  try {
333
- await l(e);
334
- for (const w of [...n].reverse())
335
- t.layoutAllows(w) && !g(s[w]) && await l(w);
345
+ await u(e);
346
+ for (const y of [...n].reverse())
347
+ t.layoutAllows(y) && !v(s[y]) && await u(y);
336
348
  } finally {
337
- await p.invalidateQueries({ queryKey: j(i) });
349
+ await m.invalidateQueries({ queryKey: Q(f) });
338
350
  }
339
351
  },
340
- [d, p, i, c, N]
341
- ), he = a(
352
+ [p, m, f, o, O]
353
+ ), be = l(
342
354
  async (e) => {
343
- const t = x(e);
355
+ const t = A(e);
344
356
  if (!t) throw new Error("You have no default here to update");
345
- const r = c(e);
346
- if (g(r)) throw new Error("Pick a value first");
357
+ const r = o(e);
358
+ if (v(r)) throw new Error("Pick a value first");
347
359
  try {
348
- await d.request(
349
- oe("/field-defaults/mine", {
350
- collection: i,
360
+ await p.request(
361
+ ae("/field-defaults/mine", {
362
+ collection: f,
351
363
  field: e,
352
- value: O(r),
364
+ value: Y(r),
353
365
  context: t.context ?? {}
354
366
  })
355
367
  );
356
368
  } finally {
357
- await p.invalidateQueries({ queryKey: j(i) });
369
+ await m.invalidateQueries({ queryKey: Q(f) });
358
370
  }
359
371
  },
360
- [d, p, i, c, x]
361
- ), ge = a(
372
+ [p, m, f, o, A]
373
+ ), ve = l(
362
374
  async (e) => {
363
- const t = f.current, r = x(e), n = (r == null ? void 0 : r.context) ?? {}, s = [...C(e, t.rulesFor)].reverse(), l = [
364
- ...s.filter((h) => h in n),
365
- ...Object.keys(n).filter((h) => !s.includes(h))
366
- ], w = (h) => {
367
- var R;
368
- return ((R = t.fieldLabel) == null ? void 0 : R.call(t, h)) ?? Ne(h);
369
- }, [T, ...U] = await Promise.all([
370
- M(e, c(e)).then((h) => h ?? w(e)),
371
- ...l.map((h) => M(h, n[h]).then((R) => R ?? w(h)))
375
+ const t = d.current, r = A(e), n = (r == null ? void 0 : r.context) ?? {}, s = [...K(e, t.rulesFor)].reverse(), u = [
376
+ ...s.filter((c) => c in n),
377
+ ...Object.keys(n).filter((c) => !s.includes(c))
378
+ ], y = (c) => {
379
+ var h;
380
+ return ((h = t.fieldLabel) == null ? void 0 : h.call(t, c)) ?? Te(c);
381
+ }, [P, ...w] = await Promise.all([
382
+ D(e, o(e)).then((c) => c ?? y(e)),
383
+ ...u.map((c) => D(c, n[c]).then((h) => h ?? y(c)))
372
384
  ]);
373
- return { value: T, context: U };
385
+ return { value: P, context: w };
374
386
  },
375
- [c, x, M]
376
- ), be = a(
387
+ [o, A, D]
388
+ ), ke = l(
377
389
  async (e) => {
378
- const t = x(e);
379
- return t ? (await d.request(Je(`/field-defaults/mine/${t.id}`)), y.current.delete(e) && (E.current.add(e), m()), await p.invalidateQueries({ queryKey: j(i) }), t) : null;
390
+ const t = A(e);
391
+ return t ? (await p.request(Je(`/field-defaults/mine/${t.id}`)), g.current.delete(e) && (T.current.add(e), b()), await m.invalidateQueries({ queryKey: Q(f) }), t) : null;
380
392
  },
381
- [d, p, i, x, m]
382
- ), ve = a(
393
+ [p, m, f, A, b]
394
+ ), Fe = l(
383
395
  async (e) => {
384
- await d.request(
385
- oe("/field-defaults/mine", {
386
- collection: i,
396
+ await p.request(
397
+ ae("/field-defaults/mine", {
398
+ collection: f,
387
399
  field: e.field,
388
400
  value: e.value,
389
401
  context: e.context ?? {}
390
402
  })
391
- ), await p.invalidateQueries({ queryKey: j(i) });
403
+ ), await m.invalidateQueries({ queryKey: Q(f) });
392
404
  },
393
- [d, p, i]
394
- ), je = Ee(
405
+ [p, m, f]
406
+ ), Le = Ne(
395
407
  () => ({
396
- allowed: (e) => (f.current.enabled ?? !0) && f.current.layoutAllows(e),
397
- loaded: A !== void 0 || V,
398
- failed: A === void 0 && V,
399
- isNew: v,
400
- defaultFor: x,
401
- isDefault: we,
402
- save: me,
403
- update: he,
404
- describeUpdate: ge,
405
- clear: be,
406
- restore: ve,
407
- refresh: de,
408
- hasValue: ye,
409
- describeSave: pe,
410
- applied: (e) => G.has(e),
411
- hintFor: ne,
412
- undo: re
408
+ allowed: (e) => (d.current.enabled ?? !0) && d.current.layoutAllows(e),
409
+ manageable: (e) => {
410
+ var t, r;
411
+ return ((r = (t = d.current).layoutManage) == null ? void 0 : r.call(t, e)) ?? !0;
412
+ },
413
+ loaded: R !== void 0 || $,
414
+ failed: R === void 0 && $,
415
+ isNew: F,
416
+ defaultFor: A,
417
+ isDefault: me,
418
+ save: ge,
419
+ update: be,
420
+ describeUpdate: ve,
421
+ clear: ke,
422
+ restore: Fe,
423
+ refresh: pe,
424
+ hasValue: we,
425
+ describeSave: he,
426
+ applied: (e) => ee.has(e),
427
+ hintFor: oe,
428
+ undo: ce
413
429
  }),
414
430
  [
431
+ R,
432
+ $,
433
+ F,
415
434
  A,
416
- V,
417
- v,
418
- x,
419
- we,
420
435
  me,
421
- he,
422
436
  ge,
423
437
  be,
424
438
  ve,
425
- de,
426
- ye,
439
+ ke,
440
+ Fe,
427
441
  pe,
428
- G,
429
- ne,
430
- re
442
+ we,
443
+ he,
444
+ ee,
445
+ oe,
446
+ ce
431
447
  ]
432
448
  );
433
- return { ledger: G, hintFor: ne, undo: re, onPersonChange: Ke, release: Ye, appliedNow: $e, context: je };
449
+ return { ledger: ee, hintFor: oe, undo: ce, onPersonChange: Ye, release: $e, appliedNow: je, context: Le };
434
450
  }
435
451
  export {
436
- Ge as PersonalDefaultsContext,
437
- lt as linksBeyond,
438
- j as personalDefaultsKey,
439
- q as sameDefaultValue,
440
- ft as usePersonalDefaults,
441
- it as usePersonalDefaultsApi
452
+ Xe as PersonalDefaultsContext,
453
+ ft as linksBeyond,
454
+ Q as personalDefaultsKey,
455
+ E as sameDefaultValue,
456
+ dt as usePersonalDefaults,
457
+ lt as usePersonalDefaultsApi
442
458
  };