@nivaro/react 0.3.36 → 0.3.37

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 +11 -10
  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,10 +1,10 @@
1
- import { jsxs as n, jsx as e, Fragment as P } from "react/jsx-runtime";
2
- import { useState as o, useRef as D, useEffect as b, useCallback as V } from "react";
3
- import { get as $, post as F, del as I, patch as A } from "../../lib/commands.js";
1
+ import { jsxs as n, jsx as e, Fragment as O } from "react/jsx-runtime";
2
+ import { useState as o, useRef as D, useEffect as k, useCallback as P } from "react";
3
+ import { get as $, post as V, del as A, patch as F } from "../../lib/commands.js";
4
4
  import { useOptionalNivaroClient as G } from "../../shared/context.js";
5
5
  function J(r) {
6
- var d, l, a, i;
7
- return r && ([(d = r.first_name) == null ? void 0 : d[0], (l = r.last_name) == null ? void 0 : l[0]].filter(Boolean).join("").toUpperCase() || ((i = (a = r.email) == null ? void 0 : a[0]) == null ? void 0 : i.toUpperCase())) || "?";
6
+ var d, l, i, a;
7
+ return r && ([(d = r.first_name) == null ? void 0 : d[0], (l = r.last_name) == null ? void 0 : l[0]].filter(Boolean).join("").toUpperCase() || ((a = (i = r.email) == null ? void 0 : i[0]) == null ? void 0 : a.toUpperCase())) || "?";
8
8
  }
9
9
  function K(r) {
10
10
  return r ? [r.first_name, r.last_name].filter(Boolean).join(" ") || r.email : "Unknown";
@@ -13,26 +13,26 @@ function Q(r) {
13
13
  const d = Date.now() - new Date(r).getTime(), l = Math.floor(d / 6e4);
14
14
  if (l < 1) return "just now";
15
15
  if (l < 60) return `${l}m ago`;
16
- const a = Math.floor(l / 60);
17
- return a < 24 ? `${a}h ago` : `${Math.floor(a / 24)}d ago`;
16
+ const i = Math.floor(l / 60);
17
+ return i < 24 ? `${i}h ago` : `${Math.floor(i / 24)}d ago`;
18
18
  }
19
19
  function et({
20
20
  collection: r,
21
21
  itemId: d,
22
22
  labelOverride: l,
23
- defaultExpanded: a
23
+ defaultExpanded: i
24
24
  }) {
25
- const i = G(), [f, w] = o(!1), [u, C] = o([]), [q, x] = o(!1), [h, L] = o(""), [g, _] = o(!1), [U, k] = o(null), [p, v] = o(""), [M, j] = o(null), [S, E] = o(null), [W, H] = o(!1), s = D(!0), B = D(!1);
26
- b(() => (s.current = !0, () => {
25
+ const a = G(), [f, w] = o(!1), [u, C] = o([]), [q, x] = o(!1), [h, _] = o(""), [g, L] = o(!1), [U, b] = o(null), [p, v] = o(""), [M, j] = o(null), [S, E] = o(null), [W, H] = o(!1), s = D(!0), B = D(!1);
26
+ k(() => (s.current = !0, () => {
27
27
  s.current = !1;
28
- }), []), b(() => {
29
- !B.current && a !== void 0 && (B.current = !0, w(a));
30
- }, [a]);
31
- const m = V(async () => {
32
- if (!(!i || !d)) {
28
+ }), []), k(() => {
29
+ !B.current && i !== void 0 && (B.current = !0, w(i));
30
+ }, [i]);
31
+ const m = P(async () => {
32
+ if (!(!a || !d)) {
33
33
  x(!0);
34
34
  try {
35
- const t = await i.request(
35
+ const t = await a.request(
36
36
  $("/comments", { collection: r, item: String(d) })
37
37
  );
38
38
  s.current && C(t.data ?? []);
@@ -42,39 +42,39 @@ function et({
42
42
  s.current && x(!1);
43
43
  }
44
44
  }
45
- }, [i, r, d]);
46
- b(() => {
45
+ }, [a, r, d]);
46
+ k(() => {
47
47
  m();
48
48
  }, [m]);
49
49
  async function T(t) {
50
- if (t.preventDefault(), !(!i || !h.trim() || g)) {
51
- _(!0);
50
+ if (t.preventDefault(), !(!a || !h.trim() || g)) {
51
+ L(!0);
52
52
  try {
53
- await i.request(
54
- F("/comments", { collection: r, item: String(d), text: h.trim() })
55
- ), L(""), await m();
53
+ await a.request(
54
+ V("/comments", { collection: r, item: String(d), text: h.trim() })
55
+ ), _(""), await m();
56
56
  } catch {
57
57
  } finally {
58
- s.current && _(!1);
58
+ s.current && L(!1);
59
59
  }
60
60
  }
61
61
  }
62
62
  async function N(t) {
63
- if (!(!i || !p.trim()))
63
+ if (!(!a || !p.trim()))
64
64
  try {
65
- await i.request(A(`/comments/${t}`, { text: p.trim() })), k(null), v(""), await m();
65
+ await a.request(F(`/comments/${t}`, { text: p.trim() })), b(null), v(""), await m();
66
66
  } catch {
67
67
  }
68
68
  }
69
69
  async function R(t) {
70
- if (i) {
70
+ if (a) {
71
71
  if (M === t) {
72
72
  j(null);
73
73
  return;
74
74
  }
75
75
  j(t), E(null), H(!1);
76
76
  try {
77
- const y = await i.request($(`/comments/${t}/history`));
77
+ const y = await a.request($(`/comments/${t}/history`));
78
78
  s.current && E(y.data ?? []);
79
79
  } catch {
80
80
  s.current && H(!0);
@@ -82,9 +82,9 @@ function et({
82
82
  }
83
83
  }
84
84
  async function z(t) {
85
- if (i)
85
+ if (a)
86
86
  try {
87
- await i.request(I(`/comments/${t}`)), await m();
87
+ await a.request(A(`/comments/${t}`)), await m();
88
88
  } catch {
89
89
  }
90
90
  }
@@ -136,7 +136,7 @@ function et({
136
136
  "textarea",
137
137
  {
138
138
  value: h,
139
- onChange: (t) => L(t.target.value),
139
+ onChange: (t) => _(t.target.value),
140
140
  placeholder: "Write a comment…",
141
141
  rows: 3,
142
142
  "data-nf-comment-textarea": !0
@@ -161,14 +161,22 @@ function et({
161
161
  "Comment deleted by ",
162
162
  t.deleted_by_name ?? "unknown"
163
163
  ] }) }) }) }, t.id);
164
- const O = !!t.edited;
164
+ const I = !!t.edited;
165
165
  return /* @__PURE__ */ n("div", { "data-nf-comment": !0, children: [
166
166
  /* @__PURE__ */ e("div", { "data-nf-avatar": !0, children: J(t.user) }),
167
167
  /* @__PURE__ */ n("div", { "data-nf-comment-body": !0, children: [
168
168
  /* @__PURE__ */ n("div", { "data-nf-comment-header": !0, children: [
169
169
  /* @__PURE__ */ e("span", { "data-nf-comment-author": !0, children: K(t.user) }),
170
+ t.via_agent && /* @__PURE__ */ e(
171
+ "span",
172
+ {
173
+ "data-nf-comment-agent": !0,
174
+ title: "Made by an AI assistant acting as this person",
175
+ children: t.via_agent
176
+ }
177
+ ),
170
178
  /* @__PURE__ */ e("span", { "data-nf-comment-time": !0, children: Q(t.created_at) }),
171
- O && /* @__PURE__ */ e(
179
+ I && /* @__PURE__ */ e(
172
180
  "button",
173
181
  {
174
182
  type: "button",
@@ -178,7 +186,7 @@ function et({
178
186
  children: "(edited)"
179
187
  }
180
188
  ),
181
- /* @__PURE__ */ e("div", { "data-nf-comment-actions": !0, children: !y && /* @__PURE__ */ n(P, { children: [
189
+ /* @__PURE__ */ e("div", { "data-nf-comment-actions": !0, children: !y && /* @__PURE__ */ n(O, { children: [
182
190
  /* @__PURE__ */ e(
183
191
  "button",
184
192
  {
@@ -186,7 +194,7 @@ function et({
186
194
  "data-nf-icon-btn": !0,
187
195
  title: "Edit",
188
196
  onClick: () => {
189
- k(t.id), v(t.text);
197
+ b(t.id), v(t.text);
190
198
  },
191
199
  children: /* @__PURE__ */ n(
192
200
  "svg",
@@ -266,7 +274,7 @@ function et({
266
274
  type: "button",
267
275
  "data-nf-btn-ghost": !0,
268
276
  onClick: () => {
269
- k(null), v("");
277
+ b(null), v("");
270
278
  },
271
279
  children: "✕ Cancel"
272
280
  }