@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.
- package/dist/components/slots/CommentsSlot.js +44 -36
- package/dist/full.css +1 -1
- package/dist/hooks/useSessionRecorder.js +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/shared/components/AgentBadge.js +26 -0
- package/dist/shared/components/AgentQuestionsCard.js +198 -0
- package/dist/shared/components/ItemEditForm.js +3329 -3263
- package/dist/shared/components/McpConnectionScope.js +480 -0
- package/dist/shared/components/MyWorkView.js +223 -208
- package/dist/shared/components/RecordReadView.js +620 -575
- package/dist/shared/components/chat/ChatPanel.js +683 -671
- package/dist/shared/components/imports/DownloadSampleButton.js +69 -0
- package/dist/shared/components/imports/ImportConsole.js +106 -104
- package/dist/shared/components/imports/RunDetailSheet.js +34 -32
- package/dist/shared/components/item-edit/FieldAffordances.js +32 -32
- package/dist/shared/components/item-edit/FormTour.js +279 -0
- package/dist/shared/components/item-edit/GroupSection.js +377 -360
- package/dist/shared/components/item-edit/PersonalDefaultControl.js +28 -28
- package/dist/shared/components/item-edit/entry/EntryStrip.js +30 -26
- package/dist/shared/components/item-edit/form-density.js +36 -0
- package/dist/shared/components/item-edit/useFormUsageBeacon.js +59 -46
- package/dist/shared/components/item-edit/usePersonalDefaults.js +312 -296
- package/dist/shared/components/layout-editor/AddPanel.js +349 -192
- package/dist/shared/components/layout-editor/DesignNode.js +126 -112
- package/dist/shared/components/layout-editor/EditorTopBar.js +123 -103
- package/dist/shared/components/layout-editor/LayoutEditor.js +829 -751
- package/dist/shared/components/layout-editor/PlaceTools.js +334 -0
- package/dist/shared/components/layout-editor/SlashInsert.js +252 -0
- package/dist/shared/components/layout-editor/StructureMenu.js +285 -242
- package/dist/shared/components/layout-editor/add-target.js +54 -43
- package/dist/shared/components/layout-editor/ai-forms/AiComposer.js +238 -155
- package/dist/shared/components/layout-editor/ai-forms/AiFormsButton.js +1 -1
- package/dist/shared/components/layout-editor/ai-forms/ai-forms-api.js +15 -12
- package/dist/shared/components/layout-editor/dnd/LayoutDndProvider.js +347 -189
- package/dist/shared/components/layout-editor/dnd/TrashZone.js +60 -32
- package/dist/shared/components/layout-editor/dnd/UndoChip.js +76 -0
- package/dist/shared/components/layout-editor/dnd/merge-drop.js +33 -0
- package/dist/shared/components/layout-editor/dnd/multi-drop.js +87 -0
- package/dist/shared/components/layout-editor/dnd/node.js +115 -105
- package/dist/shared/components/layout-editor/dnd/sensors.js +23 -0
- package/dist/shared/components/layout-editor/dnd/trash-drop.js +34 -28
- package/dist/shared/components/layout-editor/dnd/trash-links.js +97 -0
- package/dist/shared/components/layout-editor/even-row.js +86 -0
- package/dist/shared/components/layout-editor/field-list.js +99 -0
- package/dist/shared/components/layout-editor/format-painter.js +102 -0
- package/dist/shared/components/layout-editor/grid-guides.js +15 -13
- package/dist/shared/components/layout-editor/inspector/BehaviourSettings.js +150 -132
- package/dist/shared/components/layout-editor/inspector/BulkInspector.js +57 -53
- package/dist/shared/components/layout-editor/inspector/EvenRowAction.js +31 -0
- package/dist/shared/components/layout-editor/inspector/GroupInspector.js +154 -141
- package/dist/shared/components/layout-editor/inspector/Inspector.js +209 -178
- package/dist/shared/components/layout-editor/inspector/LookTab.js +106 -98
- package/dist/shared/components/layout-editor/inspector/RulesTab.js +38 -37
- package/dist/shared/components/layout-editor/inspector/kit.js +280 -223
- package/dist/shared/components/layout-editor/keyboard-move.js +15 -15
- package/dist/shared/components/layout-editor/lint/LabelStyle.js +201 -0
- package/dist/shared/components/layout-editor/lint/LintPanel.js +132 -84
- package/dist/shared/components/layout-editor/lint/lint-api.js +65 -28
- package/dist/shared/components/layout-editor/nav/NavTools.js +14 -12
- package/dist/shared/components/layout-editor/nav/ZoomControls.js +145 -0
- package/dist/shared/components/layout-editor/nav/useEditorNav.js +34 -32
- package/dist/shared/components/layout-editor/nav/view-prefs.js +100 -15
- package/dist/shared/components/layout-editor/outputs/LayoutFile.js +89 -0
- package/dist/shared/components/layout-editor/outputs/OutputsButton.js +272 -195
- package/dist/shared/components/layout-editor/outputs/layout-file-plan.js +176 -0
- package/dist/shared/components/layout-editor/outputs/output-api.js +71 -37
- package/dist/shared/components/layout-editor/overview/describe-conditions.js +16 -11
- package/dist/shared/components/layout-editor/overview/purpose.js +5 -5
- package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
- package/dist/shared/components/layout-editor/pin.js +37 -19
- package/dist/shared/components/layout-editor/place-clip.js +257 -0
- package/dist/shared/components/layout-editor/preview/PreviewModes.js +27 -26
- package/dist/shared/components/layout-editor/preview/PreviewPanes.js +148 -117
- package/dist/shared/components/layout-editor/preview/SampleRecord.js +113 -0
- package/dist/shared/components/layout-editor/preview/preview-model.js +79 -60
- package/dist/shared/components/layout-editor/preview/sample-record.js +105 -0
- package/dist/shared/components/layout-editor/removed-log.js +151 -0
- package/dist/shared/components/layout-editor/reuse/LibraryRows.js +109 -78
- package/dist/shared/components/layout-editor/reuse/linked-sections.js +373 -0
- package/dist/shared/components/layout-editor/revert-element.js +140 -0
- package/dist/shared/components/layout-editor/section-structure.js +193 -170
- package/dist/shared/components/layout-editor/settings/EntrySection.js +63 -45
- package/dist/shared/components/layout-editor/settings/LayoutSection.js +63 -32
- package/dist/shared/components/layout-editor/settings/ResolveSettings.js +179 -137
- package/dist/shared/components/layout-editor/settings/WhoSection.js +18 -17
- package/dist/shared/components/layout-editor/settings/settings-registry.js +24 -0
- package/dist/shared/components/layout-editor/shortcuts.js +21 -16
- package/dist/shared/components/layout-editor/structure-ops.js +221 -195
- package/dist/shared/components/layout-editor/usage/UsagePanel.js +133 -85
- package/dist/shared/components/layout-editor/usage/refusal-lens.js +130 -0
- package/dist/shared/components/layout-editor/usage/usage-api.js +12 -11
- package/dist/shared/components/panels/CommentPanel.js +47 -45
- package/dist/shared/components/panels/RevisionsPanel.js +66 -64
- package/dist/shared/components/panels/TaskPanel.js +395 -332
- package/dist/shared/components/profile/AgentsPanel.js +196 -147
- package/dist/shared/components/profile/ConnectionRollback.js +329 -0
- package/dist/shared/components/profile/MyDefaultsCard.js +526 -520
- package/dist/shared/lib/entry-config.js +22 -22
- package/dist/shared/lib/form-usage-beacon.js +91 -55
- package/dist/shared/lib/layout-lint.js +530 -284
- package/dist/shared/lib/layout-resolve.js +58 -44
- package/package.json +1 -1
|
@@ -6,25 +6,26 @@ import { createPortal as Te } from "react-dom";
|
|
|
6
6
|
import { toast as R } from "sonner";
|
|
7
7
|
import { useNivaroClient as oe, useItemEditAuth as Fe, useDrilldown as Me } from "../../context.js";
|
|
8
8
|
import { useDebounced as Ie } from "../../hooks/useDebounced.js";
|
|
9
|
-
import { get as W, post as
|
|
9
|
+
import { get as W, post as Q, patch as je, del as Oe } from "../../lib/commands.js";
|
|
10
10
|
import { usePresenceOnlinePoll as Le } from "../../lib/presence-live.js";
|
|
11
|
-
import { useRecordSignalPeers as Ae, useRecordSignalSender as Ke, signalSentence as
|
|
12
|
-
import { invalidateRecordTasks as
|
|
11
|
+
import { useRecordSignalPeers as Ae, useRecordSignalSender as Ke, signalSentence as Be } from "../../lib/presence-signals.js";
|
|
12
|
+
import { invalidateRecordTasks as Qe } from "../../lib/record-tasks.js";
|
|
13
13
|
import { formatRelative as le } from "../../lib/utils.js";
|
|
14
|
+
import { AgentBadge as ze } from "../AgentBadge.js";
|
|
14
15
|
import { AutolinkedText as se } from "../AutolinkedText.js";
|
|
15
|
-
import { InboundRequestPopover as
|
|
16
|
-
import { UserAvatar as
|
|
17
|
-
import { Avatar as
|
|
16
|
+
import { InboundRequestPopover as Ue } from "../integrations/InboundRequest.js";
|
|
17
|
+
import { UserAvatar as We } from "../UserAvatar.js";
|
|
18
|
+
import { Avatar as He, AvatarFallback as Xe } from "../ui/avatar.js";
|
|
18
19
|
import { Button as J } from "../ui/button.js";
|
|
19
20
|
import { Separator as xe } from "../ui/separator.js";
|
|
20
|
-
import { Textarea as
|
|
21
|
-
import { RecordEventPathSheet as
|
|
21
|
+
import { Textarea as Ge } from "../ui/textarea.js";
|
|
22
|
+
import { RecordEventPathSheet as Je } from "./IntegrationActivitySection.js";
|
|
22
23
|
const ye = ["👍", "✅", "👀", "🎉", "❤️", "😂"];
|
|
23
|
-
function
|
|
24
|
+
function Ve(t) {
|
|
24
25
|
var d, c, b, m;
|
|
25
26
|
return [(d = t.first_name) == null ? void 0 : d[0], (c = t.last_name) == null ? void 0 : c[0]].filter(Boolean).join("").toUpperCase() || ((m = (b = t.email) == null ? void 0 : b[0]) == null ? void 0 : m.toUpperCase()) || "?";
|
|
26
27
|
}
|
|
27
|
-
function
|
|
28
|
+
function Ze({ comment: t }) {
|
|
28
29
|
const i = (t.mentions ?? []).filter(
|
|
29
30
|
(d) => {
|
|
30
31
|
var c;
|
|
@@ -59,7 +60,7 @@ function Ve({ comment: t }) {
|
|
|
59
60
|
function re(t) {
|
|
60
61
|
return [t.first_name, t.last_name].filter(Boolean).join(" ") || t.email;
|
|
61
62
|
}
|
|
62
|
-
function
|
|
63
|
+
function Ye(t, i) {
|
|
63
64
|
const c = t.slice(0, i).match(/(^|\s)@([a-zA-Z0-9._-]{2,})$/);
|
|
64
65
|
return c ? { start: i - c[2].length - 1, query: c[2] } : null;
|
|
65
66
|
}
|
|
@@ -97,7 +98,7 @@ function ae({
|
|
|
97
98
|
staleTime: 5 * 6e4
|
|
98
99
|
}), T = m ? j.filter(
|
|
99
100
|
(n) => n.name.toLowerCase().replace(/\s+/g, "-").startsWith(k.toLowerCase())
|
|
100
|
-
).slice(0, 3) : [], w = !!m && k.length >= 2 && "owners".startsWith(k.toLowerCase()), C = !!m && k.length >= 2 && (N.length > 0 || w || T.length > 0), o = N.length + (w ? 1 : 0) + T.length, [y, D] = v(null),
|
|
101
|
+
).slice(0, 3) : [], w = !!m && k.length >= 2 && "owners".startsWith(k.toLowerCase()), C = !!m && k.length >= 2 && (N.length > 0 || w || T.length > 0), o = N.length + (w ? 1 : 0) + T.length, [y, D] = v(null), z = Z(null);
|
|
101
102
|
V(() => {
|
|
102
103
|
if (!C || !b.current) {
|
|
103
104
|
D(null);
|
|
@@ -107,14 +108,14 @@ function ae({
|
|
|
107
108
|
D({ top: n.bottom + 4, left: n.left, width: Math.min(n.width, 360) });
|
|
108
109
|
const l = (_) => {
|
|
109
110
|
var S;
|
|
110
|
-
(S =
|
|
111
|
+
(S = z.current) != null && S.contains(_.target) || h(null);
|
|
111
112
|
}, x = () => h(null);
|
|
112
113
|
return window.addEventListener("scroll", l, !0), window.addEventListener("resize", x), () => {
|
|
113
114
|
window.removeEventListener("scroll", l, !0), window.removeEventListener("resize", x);
|
|
114
115
|
};
|
|
115
116
|
}, [C]);
|
|
116
117
|
function L(n) {
|
|
117
|
-
const l =
|
|
118
|
+
const l = Ye(n.value, n.selectionStart ?? n.value.length);
|
|
118
119
|
h(l), l || f(0);
|
|
119
120
|
}
|
|
120
121
|
function q(n) {
|
|
@@ -145,7 +146,7 @@ function ae({
|
|
|
145
146
|
}
|
|
146
147
|
return /* @__PURE__ */ s("div", { className: "relative", children: [
|
|
147
148
|
/* @__PURE__ */ e(
|
|
148
|
-
|
|
149
|
+
Ge,
|
|
149
150
|
{
|
|
150
151
|
...d,
|
|
151
152
|
ref: b,
|
|
@@ -162,7 +163,7 @@ function ae({
|
|
|
162
163
|
/* @__PURE__ */ s(
|
|
163
164
|
"div",
|
|
164
165
|
{
|
|
165
|
-
ref:
|
|
166
|
+
ref: z,
|
|
166
167
|
className: "fixed z-[110] max-h-60 overflow-y-auto rounded-md border border-slate-200 bg-white shadow-lg dark:border-border dark:bg-popover",
|
|
167
168
|
style: { top: y.top, left: y.left, width: y.width },
|
|
168
169
|
onMouseDown: (n) => n.preventDefault(),
|
|
@@ -270,26 +271,26 @@ function be(t) {
|
|
|
270
271
|
return "system";
|
|
271
272
|
}
|
|
272
273
|
}
|
|
273
|
-
const
|
|
274
|
+
const et = {
|
|
274
275
|
people: "People",
|
|
275
276
|
system: "System",
|
|
276
277
|
integration: "Integration"
|
|
277
|
-
},
|
|
278
|
-
function
|
|
278
|
+
}, tt = "integrations:";
|
|
279
|
+
function nt({
|
|
279
280
|
note: t,
|
|
280
281
|
collection: i,
|
|
281
282
|
item: d
|
|
282
283
|
}) {
|
|
283
284
|
var C;
|
|
284
|
-
const c = Me(), [b, m] = v(!1), h = t.source === "external" && !!t.provider && !t.provider.startsWith(
|
|
285
|
-
mutationFn: (o) => E.request(
|
|
285
|
+
const c = Me(), [b, m] = v(!1), h = t.source === "external" && !!t.provider && !t.provider.startsWith(tt), E = oe(), f = fe(), [k, M] = v(!1), I = O({
|
|
286
|
+
mutationFn: (o) => E.request(Q(`/comments/${t.comment_id}/reactions`, { emoji: o })),
|
|
286
287
|
onSuccess: () => {
|
|
287
288
|
M(!1), f.invalidateQueries({ queryKey: ["comments-related"] }), f.invalidateQueries({ queryKey: ["row-comment-counts"] });
|
|
288
289
|
},
|
|
289
290
|
onError: () => R.error("Failed to react")
|
|
290
291
|
}), [p, g] = v(!1), N = O({
|
|
291
292
|
mutationFn: () => E.request(
|
|
292
|
-
|
|
293
|
+
Q(`/integration-events/${encodeURIComponent(t.provider ?? "")}/replay`, {
|
|
293
294
|
entry_id: t.id.replace(/^external:/, "")
|
|
294
295
|
})
|
|
295
296
|
),
|
|
@@ -344,7 +345,7 @@ function tt({
|
|
|
344
345
|
) : /* @__PURE__ */ e("span", { className: "truncate text-[11px] text-slate-400", children: t.context })),
|
|
345
346
|
/* @__PURE__ */ e("span", { className: "text-[11px] text-slate-400", children: le(t.created_at) }),
|
|
346
347
|
t.source === "inbound" && t.inbound && /* @__PURE__ */ e(
|
|
347
|
-
|
|
348
|
+
Ue,
|
|
348
349
|
{
|
|
349
350
|
activityId: t.inbound.activity_id,
|
|
350
351
|
callerName: t.label,
|
|
@@ -429,7 +430,7 @@ function tt({
|
|
|
429
430
|
] })
|
|
430
431
|
] }),
|
|
431
432
|
h && t.provider && /* @__PURE__ */ e(
|
|
432
|
-
|
|
433
|
+
Je,
|
|
433
434
|
{
|
|
434
435
|
target: b ? {
|
|
435
436
|
source: t.provider,
|
|
@@ -442,7 +443,7 @@ function tt({
|
|
|
442
443
|
)
|
|
443
444
|
] });
|
|
444
445
|
}
|
|
445
|
-
function
|
|
446
|
+
function Ct({
|
|
446
447
|
collection: t,
|
|
447
448
|
item: i,
|
|
448
449
|
title: d,
|
|
@@ -460,7 +461,7 @@ function wt({
|
|
|
460
461
|
j(!0);
|
|
461
462
|
try {
|
|
462
463
|
const a = await h.request(
|
|
463
|
-
|
|
464
|
+
Q("/ai/cleanup", { text: p })
|
|
464
465
|
);
|
|
465
466
|
(r = a.data) != null && r.text && g(a.data.text);
|
|
466
467
|
} catch {
|
|
@@ -477,7 +478,7 @@ function wt({
|
|
|
477
478
|
const r = Date.now();
|
|
478
479
|
r - o.current < 2500 || (o.current = r, C("start"));
|
|
479
480
|
}, [p, C]), V(() => () => C("stop"), [C]);
|
|
480
|
-
const [y, D] = v(null), [
|
|
481
|
+
const [y, D] = v(null), [z, L] = v(null), [q, A] = v(""), n = !i || i === "new", l = ["comments", t, String(i)], { data: x, isLoading: _, isError: S } = U({
|
|
481
482
|
queryKey: l,
|
|
482
483
|
queryFn: () => h.request(W("/comments", { collection: t, item: i })).then((r) => r.data),
|
|
483
484
|
enabled: !n
|
|
@@ -488,7 +489,7 @@ function wt({
|
|
|
488
489
|
staleTime: 3e4
|
|
489
490
|
}), ie = K ?? [], $ = G(() => {
|
|
490
491
|
const r = F.map((u) => ({ kind: "comment", at: u.created_at, comment: u })), a = ie.map((u) => ({ kind: "related", at: u.created_at, note: u }));
|
|
491
|
-
return [...r, ...a].sort((u,
|
|
492
|
+
return [...r, ...a].sort((u, B) => new Date(B.at).getTime() - new Date(u.at).getTime());
|
|
492
493
|
}, [F, ie]), [H, ve] = v(() => /* @__PURE__ */ new Set()), [X, ke] = v(""), Ne = G(() => {
|
|
493
494
|
const r = { people: 0, system: 0, integration: 0 };
|
|
494
495
|
for (const a of $) r[be(a)]++;
|
|
@@ -500,7 +501,7 @@ function wt({
|
|
|
500
501
|
const u = new Set(a);
|
|
501
502
|
return u.has(r) ? u.delete(r) : u.add(r), u;
|
|
502
503
|
}), _e = H.size > 0 || X.trim() !== "", ee = O({
|
|
503
|
-
mutationFn: (r) => h.request(
|
|
504
|
+
mutationFn: (r) => h.request(Q("/comments", { collection: t, item: i, text: r })),
|
|
504
505
|
onSuccess: () => {
|
|
505
506
|
f.invalidateQueries({ queryKey: l }), g("");
|
|
506
507
|
},
|
|
@@ -516,12 +517,12 @@ function wt({
|
|
|
516
517
|
onSuccess: () => f.invalidateQueries({ queryKey: l }),
|
|
517
518
|
onError: () => R.error("Failed to delete comment")
|
|
518
519
|
}), ce = O({
|
|
519
|
-
mutationFn: ({ id: r, emoji: a }) => h.request(
|
|
520
|
+
mutationFn: ({ id: r, emoji: a }) => h.request(Q(`/comments/${r}/reactions`, { emoji: a })),
|
|
520
521
|
onSuccess: () => f.invalidateQueries({ queryKey: l }),
|
|
521
522
|
onError: () => R.error("Failed to react")
|
|
522
523
|
}), [me, ue] = v(null), Ce = O({
|
|
523
524
|
mutationFn: (r) => h.request(
|
|
524
|
-
|
|
525
|
+
Q("/tasks", {
|
|
525
526
|
collection: t,
|
|
526
527
|
item: i,
|
|
527
528
|
title: r.text.replace(/<[^>]*>/g, "").replace(/@\[([^\]]+)\]/g, "@$1").slice(0, 200),
|
|
@@ -529,7 +530,7 @@ function wt({
|
|
|
529
530
|
})
|
|
530
531
|
),
|
|
531
532
|
onSuccess: () => {
|
|
532
|
-
|
|
533
|
+
Qe(f, t, i), R.success("Task created from comment — assigned to you");
|
|
533
534
|
},
|
|
534
535
|
onError: () => R.error("Could not create a task")
|
|
535
536
|
});
|
|
@@ -647,7 +648,7 @@ function wt({
|
|
|
647
648
|
"data-note-typing": !0,
|
|
648
649
|
children: [
|
|
649
650
|
/* @__PURE__ */ e("span", { className: "h-1.5 w-1.5 animate-pulse rounded-full bg-nvr-cyan" }),
|
|
650
|
-
|
|
651
|
+
Be(w, "writing a note"),
|
|
651
652
|
"…"
|
|
652
653
|
]
|
|
653
654
|
}
|
|
@@ -667,7 +668,7 @@ function wt({
|
|
|
667
668
|
className: `inline-flex items-center gap-1 rounded-full border px-2 py-px text-[11px] font-medium transition-colors ${a ? "border-nvr-cyan/40 bg-nvr-cyan/10 text-nvr-navy dark:text-nvr-cyan" : "border-slate-200 text-slate-400 line-through decoration-slate-300 dark:border-border"} disabled:opacity-50`,
|
|
668
669
|
title: r === "people" ? "Comments and notes people wrote" : r === "system" ? "State changes, change reasons, addendums and imports" : "Events an integration recorded",
|
|
669
670
|
children: [
|
|
670
|
-
|
|
671
|
+
et[r],
|
|
671
672
|
/* @__PURE__ */ e("span", { className: "tabular-nums text-[10px] opacity-70", children: u })
|
|
672
673
|
]
|
|
673
674
|
},
|
|
@@ -700,32 +701,33 @@ function wt({
|
|
|
700
701
|
] }, r)) }) : S ? /* @__PURE__ */ e("p", { className: "py-6 text-center text-[12px] text-red-500", children: "Failed to load comments." }) : $.length === 0 ? /* @__PURE__ */ e("p", { className: "py-6 text-center text-[12px] text-slate-400", children: "No notes yet." }) : Y.length === 0 ? /* @__PURE__ */ e("p", { className: "py-6 text-center text-[12px] text-slate-400", children: "No notes match — clear the search or turn a filter back on." }) : /* @__PURE__ */ e("div", { className: "nvr-stagger-direct space-y-4", children: Y.map((r) => {
|
|
701
702
|
if (r.kind === "related")
|
|
702
703
|
return /* @__PURE__ */ e("div", { className: "nvr-section-enter", children: /* @__PURE__ */ e(
|
|
703
|
-
|
|
704
|
+
nt,
|
|
704
705
|
{
|
|
705
706
|
note: r.note,
|
|
706
707
|
collection: t,
|
|
707
708
|
item: String(i)
|
|
708
709
|
}
|
|
709
710
|
) }, r.note.id);
|
|
710
|
-
const a = r.comment, u = E === a.user.id,
|
|
711
|
+
const a = r.comment, u = E === a.user.id, B = y === a.id;
|
|
711
712
|
return /* @__PURE__ */ s("div", { className: "nvr-section-enter group flex gap-3", children: [
|
|
712
713
|
/* @__PURE__ */ e(
|
|
713
|
-
|
|
714
|
+
We,
|
|
714
715
|
{
|
|
715
716
|
userId: a.user.id,
|
|
716
717
|
className: "h-8 w-8",
|
|
717
|
-
fallback: /* @__PURE__ */ e(
|
|
718
|
+
fallback: /* @__PURE__ */ e(He, { className: "h-8 w-8 shrink-0", children: /* @__PURE__ */ e(Xe, { className: "bg-nvr-cyan/15 text-[11px] font-bold text-nvr-navy", children: Ve(a.user) }) })
|
|
718
719
|
}
|
|
719
720
|
),
|
|
720
721
|
/* @__PURE__ */ s("div", { className: "min-w-0 flex-1", children: [
|
|
721
722
|
/* @__PURE__ */ s("div", { className: "flex items-center gap-2", children: [
|
|
722
723
|
/* @__PURE__ */ e("span", { className: "text-[13px] font-medium text-slate-800", children: re(a.user) }),
|
|
724
|
+
/* @__PURE__ */ e(ze, { label: a.via_agent }),
|
|
723
725
|
/* @__PURE__ */ e("span", { className: "text-[11px] text-slate-400", children: le(a.created_at) }),
|
|
724
726
|
a.updated_at && a.updated_at !== a.created_at && /* @__PURE__ */ e("span", { className: "text-[10px] text-slate-300", children: "(edited)" }),
|
|
725
|
-
!
|
|
727
|
+
!B && /* @__PURE__ */ s(
|
|
726
728
|
"div",
|
|
727
729
|
{
|
|
728
|
-
className: `ml-auto flex items-center gap-1 transition-opacity group-hover:opacity-100 focus-within:opacity-100 ${
|
|
730
|
+
className: `ml-auto flex items-center gap-1 transition-opacity group-hover:opacity-100 focus-within:opacity-100 ${z === a.id ? "opacity-100" : "opacity-0"}`,
|
|
729
731
|
children: [
|
|
730
732
|
/* @__PURE__ */ e(
|
|
731
733
|
"button",
|
|
@@ -738,7 +740,7 @@ function wt({
|
|
|
738
740
|
children: /* @__PURE__ */ e(Ee, { className: "h-3 w-3" })
|
|
739
741
|
}
|
|
740
742
|
),
|
|
741
|
-
u && (
|
|
743
|
+
u && (z === a.id ? /* @__PURE__ */ s(ne, { children: [
|
|
742
744
|
/* @__PURE__ */ e(
|
|
743
745
|
"button",
|
|
744
746
|
{
|
|
@@ -792,7 +794,7 @@ function wt({
|
|
|
792
794
|
}
|
|
793
795
|
)
|
|
794
796
|
] }),
|
|
795
|
-
|
|
797
|
+
B ? /* @__PURE__ */ s("div", { className: "mt-1.5 space-y-2", children: [
|
|
796
798
|
/* @__PURE__ */ e(
|
|
797
799
|
ae,
|
|
798
800
|
{
|
|
@@ -833,8 +835,8 @@ function wt({
|
|
|
833
835
|
)
|
|
834
836
|
] })
|
|
835
837
|
] }) : /* @__PURE__ */ e("p", { className: "mt-0.5 whitespace-pre-wrap text-[13px] leading-relaxed text-slate-600", children: /* @__PURE__ */ e(se, { text: a.text }) }),
|
|
836
|
-
!
|
|
837
|
-
!
|
|
838
|
+
!B && /* @__PURE__ */ e(Ze, { comment: a }),
|
|
839
|
+
!B && /* @__PURE__ */ s("div", { className: "mt-1 flex flex-wrap items-center gap-1", children: [
|
|
838
840
|
(a.reactions ?? []).map((P) => /* @__PURE__ */ s(
|
|
839
841
|
"button",
|
|
840
842
|
{
|
|
@@ -883,5 +885,5 @@ function wt({
|
|
|
883
885
|
);
|
|
884
886
|
}
|
|
885
887
|
export {
|
|
886
|
-
|
|
888
|
+
Ct as CommentPanel
|
|
887
889
|
};
|