@nivaro/react 0.3.41 → 0.3.43
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/LayoutForm.js +100 -98
- package/dist/full.css +1 -1
- package/dist/hooks/useSessionRecorder.js +1 -1
- package/dist/index.d.ts +733 -15
- package/dist/index.js +820 -775
- package/dist/shared/components/ActivityEntry.js +154 -0
- package/dist/shared/components/AudienceConfirmPanel.js +98 -0
- package/dist/shared/components/BackgroundRunOffer.js +43 -31
- package/dist/shared/components/BroadcastView.js +225 -204
- package/dist/shared/components/CollectionBrowserView.js +3924 -3584
- package/dist/shared/components/ConfigHistory.js +153 -0
- package/dist/shared/components/ConfigReadBack.js +65 -0
- package/dist/shared/components/DataTable.js +379 -346
- package/dist/shared/components/ForceReloadBanner.js +47 -40
- package/dist/shared/components/IdleReloadWatcher.js +69 -0
- package/dist/shared/components/ItemEditForm.js +4041 -3853
- package/dist/shared/components/MyWorkView.js +278 -213
- package/dist/shared/components/NotificationBell.js +130 -121
- package/dist/shared/components/ProfileView.js +776 -1003
- package/dist/shared/components/RecentRecordsRail.js +34 -16
- package/dist/shared/components/RecordReadView.js +500 -477
- package/dist/shared/components/Skeletons.js +199 -0
- package/dist/shared/components/SlowNotice.js +63 -0
- package/dist/shared/components/Term.js +23 -0
- package/dist/shared/components/WidgetSlot.js +350 -353
- package/dist/shared/components/access/PermissionSummary.js +106 -0
- package/dist/shared/components/bulk/BulkActionButtons.js +76 -73
- package/dist/shared/components/chat/ChatPanel.js +902 -886
- package/dist/shared/components/chat/MemberPaging.js +70 -0
- package/dist/shared/components/chat/RoomParts.js +147 -117
- package/dist/shared/components/chat/ScreenClip.js +73 -69
- package/dist/shared/components/chat/chat-core.js +449 -396
- package/dist/shared/components/chat/huddle/huddle-store.js +48 -43
- package/dist/shared/components/help-videos/api.js +2 -5
- package/dist/shared/components/help-videos/viewer/HelpVideoMatchChip.js +79 -0
- package/dist/shared/components/help-videos/viewer/matchChip.js +50 -0
- package/dist/shared/components/imports/CollectionImportPanel.js +139 -133
- package/dist/shared/components/imports/RunDetailSheet.js +222 -227
- package/dist/shared/components/integrations/console/ErrorExplanation.js +121 -0
- package/dist/shared/components/integrations/console/PartnerDetail.js +175 -174
- package/dist/shared/components/integrations/console/SubmissionRow.js +36 -34
- package/dist/shared/components/integrations/console/drill/SubmissionDrill.js +50 -48
- package/dist/shared/components/item-edit/FieldComments.js +212 -0
- package/dist/shared/components/item-edit/FieldRow.js +340 -336
- package/dist/shared/components/item-edit/RecordHeaderActions.js +23 -22
- package/dist/shared/components/item-edit/RelationCombobox.js +231 -222
- package/dist/shared/components/item-edit/RuleHiddenNotes.js +55 -0
- package/dist/shared/components/item-edit/field-comments-context.js +6 -0
- package/dist/shared/components/item-edit/field-sources.js +33 -0
- package/dist/shared/components/item-edit/rule-hidden.js +30 -0
- package/dist/shared/components/layout-editor/HistoryPanel.js +113 -96
- package/dist/shared/components/layout-editor/editors/cascade-filters.js +170 -145
- package/dist/shared/components/layout-editor/inspector/Breadcrumb.js +22 -18
- package/dist/shared/components/layout-editor/inspector/GroupInspector.js +177 -159
- package/dist/shared/components/layout-editor/inspector/PickerTab.js +35 -34
- package/dist/shared/components/layout-editor/inspector/RulesTab.js +124 -111
- package/dist/shared/components/layout-editor/inspector/kit.js +292 -277
- package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
- package/dist/shared/components/list/CopyListLinkButton.js +41 -0
- package/dist/shared/components/list/InlineEdit.js +363 -0
- package/dist/shared/components/notifications/NotificationCenterView.js +213 -181
- package/dist/shared/components/notifications/NotificationDetailBits.js +205 -82
- package/dist/shared/components/notifications/NotificationRulesEditor.js +515 -0
- package/dist/shared/components/notifications/TestMyRules.js +137 -0
- package/dist/shared/components/notifications/changes-lines.js +24 -0
- package/dist/shared/components/notifications/why-lines.js +64 -0
- package/dist/shared/components/panels/CommentPanel.js +316 -281
- package/dist/shared/components/panels/LegalHoldBanner.js +38 -0
- package/dist/shared/components/panels/PipelinePanel.js +201 -196
- package/dist/shared/components/panels/RevisionsPanel.js +496 -479
- package/dist/shared/components/pipeline/PipelineEditorView.js +1587 -1560
- package/dist/shared/components/pipeline/PipelineStateOwners.js +116 -103
- package/dist/shared/components/profile/PersonDidPanel.js +188 -0
- package/dist/shared/components/profile/PersonProfile.js +57 -52
- package/dist/shared/components/queue/QueueWorklist.js +1526 -1365
- package/dist/shared/hooks/useSlowReason.js +39 -0
- package/dist/shared/lib/activity-sentence.js +670 -0
- package/dist/shared/lib/config-sentences.js +418 -0
- package/dist/shared/lib/core-glossary.js +229 -0
- package/dist/shared/lib/error-hints.js +159 -0
- package/dist/shared/lib/error-message.js +105 -0
- package/dist/shared/lib/error-toast.js +22 -0
- package/dist/shared/lib/field-comments.js +25 -0
- package/dist/shared/lib/filter-sentence.js +261 -0
- package/dist/shared/lib/glossary.js +55 -48
- package/dist/shared/lib/idle-reload.js +138 -0
- package/dist/shared/lib/layout-resolve.js +42 -29
- package/dist/shared/lib/list-inline-edit.js +190 -0
- package/dist/shared/lib/list-link.js +147 -0
- package/dist/shared/lib/nav-trail.js +107 -0
- package/dist/shared/lib/prefetch.js +259 -106
- package/dist/shared/lib/record-ref.js +72 -0
- package/dist/shared/lib/reload-holds.js +25 -0
- package/dist/shared/lib/safe-error.js +52 -24
- package/dist/shared/lib/skeleton-shapes.js +72 -0
- package/dist/shared/lib/slow-reason.js +63 -0
- package/package.json +1 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { jsxs as u, jsx as e, Fragment as f } from "react/jsx-runtime";
|
|
2
|
+
import { cellWidth as b } from "../lib/skeleton-shapes.js";
|
|
3
|
+
import { cn as h } from "../lib/utils.js";
|
|
4
|
+
const k = "block animate-pulse bg-[hsl(var(--nvr-skeleton))] motion-reduce:animate-none";
|
|
5
|
+
function s({
|
|
6
|
+
shape: r,
|
|
7
|
+
width: i,
|
|
8
|
+
className: o,
|
|
9
|
+
style: a
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ e(
|
|
12
|
+
"span",
|
|
13
|
+
{
|
|
14
|
+
"aria-hidden": !0,
|
|
15
|
+
className: h(k, "h-3 rounded", r === "avatar" ? "h-5 rounded-full" : r === "badge" ? "h-4 rounded-full" : "", r === "bool" ? "h-3.5 rounded-[4px]" : "", o),
|
|
16
|
+
style: { width: i, ...a }
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
function w({
|
|
21
|
+
columns: r,
|
|
22
|
+
rows: i = 12,
|
|
23
|
+
rowClassName: o = "h-8",
|
|
24
|
+
cellClassName: a = "px-3 py-1.5",
|
|
25
|
+
leadingCells: t = 0,
|
|
26
|
+
trailingCells: l = 0,
|
|
27
|
+
cellStyle: d,
|
|
28
|
+
barClassName: n
|
|
29
|
+
}) {
|
|
30
|
+
return /* @__PURE__ */ e(f, { children: Array.from({ length: i }, (c, x) => /* @__PURE__ */ u(
|
|
31
|
+
"tr",
|
|
32
|
+
{
|
|
33
|
+
"data-skeleton-row": "",
|
|
34
|
+
"aria-hidden": !0,
|
|
35
|
+
className: h("border-b border-slate-100 dark:border-slate-800", o),
|
|
36
|
+
children: [
|
|
37
|
+
Array.from({ length: t }, (m, p) => /* @__PURE__ */ e("td", { className: a, children: /* @__PURE__ */ e(s, { shape: "bool", width: 14, className: n }) }, `l${p}`)),
|
|
38
|
+
r.map((m, p) => /* @__PURE__ */ e("td", { style: d == null ? void 0 : d(m.key), className: a, children: /* @__PURE__ */ e(
|
|
39
|
+
"span",
|
|
40
|
+
{
|
|
41
|
+
className: h(
|
|
42
|
+
"flex h-5 items-center",
|
|
43
|
+
m.shape === "number" ? "justify-end" : "justify-start"
|
|
44
|
+
),
|
|
45
|
+
children: /* @__PURE__ */ e(
|
|
46
|
+
s,
|
|
47
|
+
{
|
|
48
|
+
shape: m.shape,
|
|
49
|
+
width: b(m.shape, x, p),
|
|
50
|
+
className: n
|
|
51
|
+
}
|
|
52
|
+
)
|
|
53
|
+
}
|
|
54
|
+
) }, m.key)),
|
|
55
|
+
Array.from({ length: l }, (m, p) => /* @__PURE__ */ e("td", { className: a, children: /* @__PURE__ */ e(s, { width: 16, className: n }) }, `t${p}`))
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
x
|
|
59
|
+
)) });
|
|
60
|
+
}
|
|
61
|
+
function v({
|
|
62
|
+
columns: r,
|
|
63
|
+
rows: i = 8,
|
|
64
|
+
header: o,
|
|
65
|
+
rowClassName: a = "h-9",
|
|
66
|
+
className: t
|
|
67
|
+
}) {
|
|
68
|
+
const l = (d) => d.width ? { width: d.width, flex: "none" } : { flex: `${d.grow ?? 1} 1 0%` };
|
|
69
|
+
return /* @__PURE__ */ u(
|
|
70
|
+
"div",
|
|
71
|
+
{
|
|
72
|
+
"data-skeleton": "list",
|
|
73
|
+
"aria-busy": "true",
|
|
74
|
+
className: h("divide-y divide-slate-100 dark:divide-slate-800", t),
|
|
75
|
+
children: [
|
|
76
|
+
o !== !1 && /* @__PURE__ */ e("div", { className: "flex h-9 items-center gap-3 bg-slate-50 px-3 dark:bg-muted", children: r.map((d, n) => /* @__PURE__ */ e(
|
|
77
|
+
"span",
|
|
78
|
+
{
|
|
79
|
+
className: "min-w-0 truncate text-[11px] font-medium text-slate-500 dark:text-slate-400",
|
|
80
|
+
style: l(d),
|
|
81
|
+
children: d.label ?? /* @__PURE__ */ e(s, { width: b("short", 0, n), className: "h-2.5" })
|
|
82
|
+
},
|
|
83
|
+
d.key
|
|
84
|
+
)) }),
|
|
85
|
+
Array.from({ length: i }, (d, n) => /* @__PURE__ */ e(
|
|
86
|
+
"div",
|
|
87
|
+
{
|
|
88
|
+
"aria-hidden": !0,
|
|
89
|
+
"data-skeleton-row": "",
|
|
90
|
+
className: h("flex items-center gap-3 px-3", a),
|
|
91
|
+
children: r.map((c, x) => /* @__PURE__ */ e(
|
|
92
|
+
"span",
|
|
93
|
+
{
|
|
94
|
+
className: h("min-w-0", c.shape === "number" && "flex justify-end"),
|
|
95
|
+
style: l(c),
|
|
96
|
+
children: /* @__PURE__ */ e(s, { shape: c.shape, width: b(c.shape, n, x) })
|
|
97
|
+
},
|
|
98
|
+
c.key
|
|
99
|
+
))
|
|
100
|
+
},
|
|
101
|
+
n
|
|
102
|
+
))
|
|
103
|
+
]
|
|
104
|
+
}
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
function $({
|
|
108
|
+
plan: r,
|
|
109
|
+
className: i
|
|
110
|
+
}) {
|
|
111
|
+
const o = r && r.sections.length > 0 ? r.sections : [
|
|
112
|
+
{
|
|
113
|
+
key: "a",
|
|
114
|
+
label: null,
|
|
115
|
+
fields: [6, 6, 6, 6, 12].map((a, t) => ({ key: `a${t}`, span: a }))
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
key: "b",
|
|
119
|
+
label: null,
|
|
120
|
+
fields: [4, 4, 4, 12].map((a, t) => ({ key: `b${t}`, span: a }))
|
|
121
|
+
}
|
|
122
|
+
];
|
|
123
|
+
return /* @__PURE__ */ u("div", { "data-skeleton": "form", "aria-busy": "true", className: h("space-y-4", i), children: [
|
|
124
|
+
r && r.tabs.length > 1 && /* @__PURE__ */ e("div", { className: "flex items-center gap-1 border-b border-slate-200 dark:border-border", children: r.tabs.map((a, t) => /* @__PURE__ */ e(
|
|
125
|
+
"span",
|
|
126
|
+
{
|
|
127
|
+
className: h(
|
|
128
|
+
"px-3 py-2 text-[12.5px] font-medium",
|
|
129
|
+
t === 0 ? "border-b-2 border-nvr-cyan text-slate-700 dark:text-slate-200" : "text-slate-400 dark:text-slate-500"
|
|
130
|
+
),
|
|
131
|
+
children: a
|
|
132
|
+
},
|
|
133
|
+
`${a}-${t}`
|
|
134
|
+
)) }),
|
|
135
|
+
o.map((a, t) => /* @__PURE__ */ u(
|
|
136
|
+
"section",
|
|
137
|
+
{
|
|
138
|
+
"aria-hidden": !0,
|
|
139
|
+
className: "rounded-xl border border-slate-200 bg-white dark:border-border dark:bg-card",
|
|
140
|
+
children: [
|
|
141
|
+
/* @__PURE__ */ e("div", { className: "flex items-center gap-2 px-5 py-3", children: a.label ? /* @__PURE__ */ e("span", { className: "text-[13px] font-medium text-slate-400 dark:text-slate-500", children: a.label }) : /* @__PURE__ */ e(s, { width: b("short", t, 0), className: "h-3.5 max-w-[160px]" }) }),
|
|
142
|
+
/* @__PURE__ */ e("div", { className: "grid grid-cols-12 gap-x-6 gap-y-3 px-5 pb-5", children: a.fields.map((l, d) => /* @__PURE__ */ u(
|
|
143
|
+
"div",
|
|
144
|
+
{
|
|
145
|
+
className: "min-w-0 space-y-1.5",
|
|
146
|
+
style: { gridColumn: `span ${l.span}` },
|
|
147
|
+
children: [
|
|
148
|
+
/* @__PURE__ */ e(
|
|
149
|
+
s,
|
|
150
|
+
{
|
|
151
|
+
width: `${Math.round(30 + (d * 37 + t * 11) % 35)}%`,
|
|
152
|
+
className: "h-2.5"
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ e(s, { className: h("w-full rounded-md", l.tall ? "h-28" : "h-9") })
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
l.key
|
|
159
|
+
)) })
|
|
160
|
+
]
|
|
161
|
+
},
|
|
162
|
+
a.key
|
|
163
|
+
))
|
|
164
|
+
] });
|
|
165
|
+
}
|
|
166
|
+
function A({
|
|
167
|
+
title: r = !0,
|
|
168
|
+
kpi: i = !1,
|
|
169
|
+
chart: o = !1,
|
|
170
|
+
lines: a = 3,
|
|
171
|
+
className: t,
|
|
172
|
+
framed: l = !0
|
|
173
|
+
}) {
|
|
174
|
+
return /* @__PURE__ */ u(
|
|
175
|
+
"div",
|
|
176
|
+
{
|
|
177
|
+
"data-skeleton": "card",
|
|
178
|
+
"aria-busy": "true",
|
|
179
|
+
className: h(
|
|
180
|
+
"flex flex-col gap-2",
|
|
181
|
+
l && "rounded-lg border border-slate-200 bg-white p-3 dark:border-border dark:bg-card",
|
|
182
|
+
t
|
|
183
|
+
),
|
|
184
|
+
children: [
|
|
185
|
+
r && /* @__PURE__ */ e(s, { width: "38%", className: "h-2.5" }),
|
|
186
|
+
i && /* @__PURE__ */ e(s, { width: "46%", className: "mt-0.5 h-6 rounded-md" }),
|
|
187
|
+
o && /* @__PURE__ */ e(s, { className: "h-full min-h-[96px] w-full flex-1 rounded-md" }),
|
|
188
|
+
!i && !o && Array.from({ length: a }, (d, n) => /* @__PURE__ */ e(s, { width: b("text", n, 3), className: "h-3" }, n))
|
|
189
|
+
]
|
|
190
|
+
}
|
|
191
|
+
);
|
|
192
|
+
}
|
|
193
|
+
export {
|
|
194
|
+
A as CardSkeleton,
|
|
195
|
+
$ as FormSkeleton,
|
|
196
|
+
v as ListSkeleton,
|
|
197
|
+
s as SkeletonBar,
|
|
198
|
+
w as TableSkeletonRows
|
|
199
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { jsx as t, jsxs as o, Fragment as x } from "react/jsx-runtime";
|
|
2
|
+
import { Timer as c } from "lucide-react";
|
|
3
|
+
import { useSlowReason as p } from "../hooks/useSlowReason.js";
|
|
4
|
+
import { elapsedLabel as h } from "../lib/slow-reason.js";
|
|
5
|
+
import { cn as m } from "../lib/utils.js";
|
|
6
|
+
function N({
|
|
7
|
+
variant: e = "inline",
|
|
8
|
+
className: r,
|
|
9
|
+
children: l,
|
|
10
|
+
reason: a,
|
|
11
|
+
...s
|
|
12
|
+
}) {
|
|
13
|
+
const n = p({ ...s, enabled: !a && s.enabled !== !1 }), i = a ?? n;
|
|
14
|
+
return i.slow ? /* @__PURE__ */ t(u, { reason: i, variant: e, className: r, extra: l }) : null;
|
|
15
|
+
}
|
|
16
|
+
function u({
|
|
17
|
+
reason: e,
|
|
18
|
+
variant: r = "inline",
|
|
19
|
+
className: l,
|
|
20
|
+
extra: a
|
|
21
|
+
}) {
|
|
22
|
+
var i, d;
|
|
23
|
+
const s = e.text ?? "This is taking a while", n = h(e.elapsedMs);
|
|
24
|
+
return r === "pill" ? /* @__PURE__ */ o(
|
|
25
|
+
"span",
|
|
26
|
+
{
|
|
27
|
+
role: "status",
|
|
28
|
+
"aria-live": "polite",
|
|
29
|
+
"data-slow-notice": ((i = e.answer) == null ? void 0 : i.kind) ?? "generic",
|
|
30
|
+
className: m(
|
|
31
|
+
"nvr-pop-in inline-flex max-w-[min(92vw,520px)] items-center gap-2 rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[12px] font-medium text-slate-600 shadow-lg motion-reduce:animate-none dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300",
|
|
32
|
+
l
|
|
33
|
+
),
|
|
34
|
+
children: [
|
|
35
|
+
/* @__PURE__ */ t(c, { "aria-hidden": !0, className: "h-3.5 w-3.5 shrink-0 text-[#00a5cc]" }),
|
|
36
|
+
/* @__PURE__ */ t("span", { className: "min-w-0 truncate", children: s }),
|
|
37
|
+
/* @__PURE__ */ t("span", { className: "shrink-0 tabular-nums text-slate-400 dark:text-slate-500", children: n }),
|
|
38
|
+
a
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
) : /* @__PURE__ */ o(
|
|
42
|
+
"div",
|
|
43
|
+
{
|
|
44
|
+
role: "status",
|
|
45
|
+
"aria-live": "polite",
|
|
46
|
+
"data-slow-notice": ((d = e.answer) == null ? void 0 : d.kind) ?? "generic",
|
|
47
|
+
className: m("flex flex-wrap items-center gap-x-2 gap-y-1 text-[12px]", l),
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ t(c, { "aria-hidden": !0, className: "h-3.5 w-3.5 shrink-0 text-slate-400 dark:text-slate-500" }),
|
|
50
|
+
/* @__PURE__ */ t("span", { className: "min-w-0 text-slate-600 dark:text-slate-300", children: e.text ? /* @__PURE__ */ o(x, { children: [
|
|
51
|
+
/* @__PURE__ */ t("span", { className: "text-slate-500 dark:text-slate-400", children: "This is taking a while · " }),
|
|
52
|
+
e.text
|
|
53
|
+
] }) : s }),
|
|
54
|
+
/* @__PURE__ */ t("span", { className: "tabular-nums text-slate-400 dark:text-slate-500", children: n }),
|
|
55
|
+
a
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
export {
|
|
61
|
+
N as SlowNotice,
|
|
62
|
+
u as SlowNoticeView
|
|
63
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as n, Fragment as m } from "react/jsx-runtime";
|
|
2
|
+
import { findGlossaryTerm as a, uiHint as c } from "../lib/core-glossary.js";
|
|
3
|
+
import { useGlossary as u } from "../lib/glossary.js";
|
|
4
|
+
const i = "cursor-help underline decoration-dotted decoration-1 underline-offset-[3px]";
|
|
5
|
+
function h({
|
|
6
|
+
id: t,
|
|
7
|
+
children: s,
|
|
8
|
+
className: e
|
|
9
|
+
}) {
|
|
10
|
+
const d = u({ withCore: !0 }), r = a(d, t), o = s ?? (r == null ? void 0 : r.term) ?? t;
|
|
11
|
+
return r ? /* @__PURE__ */ n(
|
|
12
|
+
"span",
|
|
13
|
+
{
|
|
14
|
+
"data-term": r.overrides ?? r.slug,
|
|
15
|
+
"data-tip": `${r.term}: ${c(r)}`,
|
|
16
|
+
className: e ? `${i} ${e}` : i,
|
|
17
|
+
children: o
|
|
18
|
+
}
|
|
19
|
+
) : /* @__PURE__ */ n(m, { children: o });
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
h as Term
|
|
23
|
+
};
|