@nivaro/react 0.3.35 → 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 (106) 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 +13 -4
  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 -572
  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 +80 -63
  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 +146 -131
  25. package/dist/shared/components/layout-editor/EditorCanvas.js +25 -17
  26. package/dist/shared/components/layout-editor/EditorTopBar.js +268 -206
  27. package/dist/shared/components/layout-editor/LayoutEditor.js +810 -731
  28. package/dist/shared/components/layout-editor/PlaceTools.js +334 -0
  29. package/dist/shared/components/layout-editor/SlashInsert.js +252 -0
  30. package/dist/shared/components/layout-editor/StructureMenu.js +285 -242
  31. package/dist/shared/components/layout-editor/add-target.js +54 -43
  32. package/dist/shared/components/layout-editor/ai-forms/AiComposer.js +238 -155
  33. package/dist/shared/components/layout-editor/ai-forms/AiFormsButton.js +1 -1
  34. package/dist/shared/components/layout-editor/ai-forms/ai-forms-api.js +15 -12
  35. package/dist/shared/components/layout-editor/dnd/LayoutDndProvider.js +379 -185
  36. package/dist/shared/components/layout-editor/dnd/TrashZone.js +96 -0
  37. package/dist/shared/components/layout-editor/dnd/UndoChip.js +76 -0
  38. package/dist/shared/components/layout-editor/dnd/merge-drop.js +33 -0
  39. package/dist/shared/components/layout-editor/dnd/multi-drop.js +87 -0
  40. package/dist/shared/components/layout-editor/dnd/node.js +115 -105
  41. package/dist/shared/components/layout-editor/dnd/rail-drop.js +4 -4
  42. package/dist/shared/components/layout-editor/dnd/sensors.js +23 -0
  43. package/dist/shared/components/layout-editor/dnd/trash-drop.js +58 -0
  44. package/dist/shared/components/layout-editor/dnd/trash-links.js +97 -0
  45. package/dist/shared/components/layout-editor/even-row.js +86 -0
  46. package/dist/shared/components/layout-editor/field-list.js +99 -0
  47. package/dist/shared/components/layout-editor/format-painter.js +102 -0
  48. package/dist/shared/components/layout-editor/grid-guides.js +15 -13
  49. package/dist/shared/components/layout-editor/inspector/BehaviourSettings.js +150 -132
  50. package/dist/shared/components/layout-editor/inspector/BulkInspector.js +57 -53
  51. package/dist/shared/components/layout-editor/inspector/EvenRowAction.js +31 -0
  52. package/dist/shared/components/layout-editor/inspector/GroupInspector.js +154 -141
  53. package/dist/shared/components/layout-editor/inspector/Inspector.js +209 -178
  54. package/dist/shared/components/layout-editor/inspector/LookTab.js +106 -98
  55. package/dist/shared/components/layout-editor/inspector/RulesTab.js +38 -37
  56. package/dist/shared/components/layout-editor/inspector/kit.js +280 -223
  57. package/dist/shared/components/layout-editor/keyboard-move.js +15 -15
  58. package/dist/shared/components/layout-editor/lint/LabelStyle.js +201 -0
  59. package/dist/shared/components/layout-editor/lint/LintPanel.js +132 -84
  60. package/dist/shared/components/layout-editor/lint/lint-api.js +65 -28
  61. package/dist/shared/components/layout-editor/nav/NavTools.js +14 -12
  62. package/dist/shared/components/layout-editor/nav/ZoomControls.js +145 -0
  63. package/dist/shared/components/layout-editor/nav/useEditorNav.js +34 -32
  64. package/dist/shared/components/layout-editor/nav/view-prefs.js +100 -15
  65. package/dist/shared/components/layout-editor/outputs/LayoutFile.js +89 -0
  66. package/dist/shared/components/layout-editor/outputs/OutputsButton.js +272 -195
  67. package/dist/shared/components/layout-editor/outputs/layout-file-plan.js +176 -0
  68. package/dist/shared/components/layout-editor/outputs/output-api.js +71 -37
  69. package/dist/shared/components/layout-editor/overview/describe-conditions.js +16 -11
  70. package/dist/shared/components/layout-editor/overview/purpose.js +5 -5
  71. package/dist/shared/components/layout-editor/panel-frame.js +1 -1
  72. package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
  73. package/dist/shared/components/layout-editor/personal-default-marks.js +40 -0
  74. package/dist/shared/components/layout-editor/pin.js +37 -19
  75. package/dist/shared/components/layout-editor/place-clip.js +257 -0
  76. package/dist/shared/components/layout-editor/preview/PreviewModes.js +27 -26
  77. package/dist/shared/components/layout-editor/preview/PreviewPanes.js +149 -118
  78. package/dist/shared/components/layout-editor/preview/SampleRecord.js +113 -0
  79. package/dist/shared/components/layout-editor/preview/preview-model.js +79 -60
  80. package/dist/shared/components/layout-editor/preview/sample-record.js +105 -0
  81. package/dist/shared/components/layout-editor/removed-log.js +151 -0
  82. package/dist/shared/components/layout-editor/reuse/LibraryRows.js +109 -78
  83. package/dist/shared/components/layout-editor/reuse/linked-sections.js +373 -0
  84. package/dist/shared/components/layout-editor/revert-element.js +140 -0
  85. package/dist/shared/components/layout-editor/section-structure.js +193 -170
  86. package/dist/shared/components/layout-editor/settings/EntrySection.js +63 -45
  87. package/dist/shared/components/layout-editor/settings/LayoutSection.js +63 -32
  88. package/dist/shared/components/layout-editor/settings/ResolveSettings.js +179 -137
  89. package/dist/shared/components/layout-editor/settings/WhoSection.js +18 -17
  90. package/dist/shared/components/layout-editor/settings/settings-registry.js +24 -0
  91. package/dist/shared/components/layout-editor/shortcuts.js +21 -16
  92. package/dist/shared/components/layout-editor/structure-ops.js +221 -195
  93. package/dist/shared/components/layout-editor/usage/UsagePanel.js +133 -85
  94. package/dist/shared/components/layout-editor/usage/refusal-lens.js +130 -0
  95. package/dist/shared/components/layout-editor/usage/usage-api.js +12 -11
  96. package/dist/shared/components/panels/CommentPanel.js +47 -45
  97. package/dist/shared/components/panels/RevisionsPanel.js +66 -64
  98. package/dist/shared/components/panels/TaskPanel.js +395 -332
  99. package/dist/shared/components/profile/AgentsPanel.js +196 -147
  100. package/dist/shared/components/profile/ConnectionRollback.js +329 -0
  101. package/dist/shared/components/profile/MyDefaultsCard.js +526 -520
  102. package/dist/shared/lib/entry-config.js +22 -22
  103. package/dist/shared/lib/form-usage-beacon.js +91 -55
  104. package/dist/shared/lib/layout-lint.js +530 -284
  105. package/dist/shared/lib/layout-resolve.js +58 -44
  106. 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
  }