@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.
Files changed (97) hide show
  1. package/dist/components/LayoutForm.js +100 -98
  2. package/dist/full.css +1 -1
  3. package/dist/hooks/useSessionRecorder.js +1 -1
  4. package/dist/index.d.ts +733 -15
  5. package/dist/index.js +820 -775
  6. package/dist/shared/components/ActivityEntry.js +154 -0
  7. package/dist/shared/components/AudienceConfirmPanel.js +98 -0
  8. package/dist/shared/components/BackgroundRunOffer.js +43 -31
  9. package/dist/shared/components/BroadcastView.js +225 -204
  10. package/dist/shared/components/CollectionBrowserView.js +3924 -3584
  11. package/dist/shared/components/ConfigHistory.js +153 -0
  12. package/dist/shared/components/ConfigReadBack.js +65 -0
  13. package/dist/shared/components/DataTable.js +379 -346
  14. package/dist/shared/components/ForceReloadBanner.js +47 -40
  15. package/dist/shared/components/IdleReloadWatcher.js +69 -0
  16. package/dist/shared/components/ItemEditForm.js +4041 -3853
  17. package/dist/shared/components/MyWorkView.js +278 -213
  18. package/dist/shared/components/NotificationBell.js +130 -121
  19. package/dist/shared/components/ProfileView.js +776 -1003
  20. package/dist/shared/components/RecentRecordsRail.js +34 -16
  21. package/dist/shared/components/RecordReadView.js +500 -477
  22. package/dist/shared/components/Skeletons.js +199 -0
  23. package/dist/shared/components/SlowNotice.js +63 -0
  24. package/dist/shared/components/Term.js +23 -0
  25. package/dist/shared/components/WidgetSlot.js +350 -353
  26. package/dist/shared/components/access/PermissionSummary.js +106 -0
  27. package/dist/shared/components/bulk/BulkActionButtons.js +76 -73
  28. package/dist/shared/components/chat/ChatPanel.js +902 -886
  29. package/dist/shared/components/chat/MemberPaging.js +70 -0
  30. package/dist/shared/components/chat/RoomParts.js +147 -117
  31. package/dist/shared/components/chat/ScreenClip.js +73 -69
  32. package/dist/shared/components/chat/chat-core.js +449 -396
  33. package/dist/shared/components/chat/huddle/huddle-store.js +48 -43
  34. package/dist/shared/components/help-videos/api.js +2 -5
  35. package/dist/shared/components/help-videos/viewer/HelpVideoMatchChip.js +79 -0
  36. package/dist/shared/components/help-videos/viewer/matchChip.js +50 -0
  37. package/dist/shared/components/imports/CollectionImportPanel.js +139 -133
  38. package/dist/shared/components/imports/RunDetailSheet.js +222 -227
  39. package/dist/shared/components/integrations/console/ErrorExplanation.js +121 -0
  40. package/dist/shared/components/integrations/console/PartnerDetail.js +175 -174
  41. package/dist/shared/components/integrations/console/SubmissionRow.js +36 -34
  42. package/dist/shared/components/integrations/console/drill/SubmissionDrill.js +50 -48
  43. package/dist/shared/components/item-edit/FieldComments.js +212 -0
  44. package/dist/shared/components/item-edit/FieldRow.js +340 -336
  45. package/dist/shared/components/item-edit/RecordHeaderActions.js +23 -22
  46. package/dist/shared/components/item-edit/RelationCombobox.js +231 -222
  47. package/dist/shared/components/item-edit/RuleHiddenNotes.js +55 -0
  48. package/dist/shared/components/item-edit/field-comments-context.js +6 -0
  49. package/dist/shared/components/item-edit/field-sources.js +33 -0
  50. package/dist/shared/components/item-edit/rule-hidden.js +30 -0
  51. package/dist/shared/components/layout-editor/HistoryPanel.js +113 -96
  52. package/dist/shared/components/layout-editor/editors/cascade-filters.js +170 -145
  53. package/dist/shared/components/layout-editor/inspector/Breadcrumb.js +22 -18
  54. package/dist/shared/components/layout-editor/inspector/GroupInspector.js +177 -159
  55. package/dist/shared/components/layout-editor/inspector/PickerTab.js +35 -34
  56. package/dist/shared/components/layout-editor/inspector/RulesTab.js +124 -111
  57. package/dist/shared/components/layout-editor/inspector/kit.js +292 -277
  58. package/dist/shared/components/layout-editor/parity-keys.json.js +1 -1
  59. package/dist/shared/components/list/CopyListLinkButton.js +41 -0
  60. package/dist/shared/components/list/InlineEdit.js +363 -0
  61. package/dist/shared/components/notifications/NotificationCenterView.js +213 -181
  62. package/dist/shared/components/notifications/NotificationDetailBits.js +205 -82
  63. package/dist/shared/components/notifications/NotificationRulesEditor.js +515 -0
  64. package/dist/shared/components/notifications/TestMyRules.js +137 -0
  65. package/dist/shared/components/notifications/changes-lines.js +24 -0
  66. package/dist/shared/components/notifications/why-lines.js +64 -0
  67. package/dist/shared/components/panels/CommentPanel.js +316 -281
  68. package/dist/shared/components/panels/LegalHoldBanner.js +38 -0
  69. package/dist/shared/components/panels/PipelinePanel.js +201 -196
  70. package/dist/shared/components/panels/RevisionsPanel.js +496 -479
  71. package/dist/shared/components/pipeline/PipelineEditorView.js +1587 -1560
  72. package/dist/shared/components/pipeline/PipelineStateOwners.js +116 -103
  73. package/dist/shared/components/profile/PersonDidPanel.js +188 -0
  74. package/dist/shared/components/profile/PersonProfile.js +57 -52
  75. package/dist/shared/components/queue/QueueWorklist.js +1526 -1365
  76. package/dist/shared/hooks/useSlowReason.js +39 -0
  77. package/dist/shared/lib/activity-sentence.js +670 -0
  78. package/dist/shared/lib/config-sentences.js +418 -0
  79. package/dist/shared/lib/core-glossary.js +229 -0
  80. package/dist/shared/lib/error-hints.js +159 -0
  81. package/dist/shared/lib/error-message.js +105 -0
  82. package/dist/shared/lib/error-toast.js +22 -0
  83. package/dist/shared/lib/field-comments.js +25 -0
  84. package/dist/shared/lib/filter-sentence.js +261 -0
  85. package/dist/shared/lib/glossary.js +55 -48
  86. package/dist/shared/lib/idle-reload.js +138 -0
  87. package/dist/shared/lib/layout-resolve.js +42 -29
  88. package/dist/shared/lib/list-inline-edit.js +190 -0
  89. package/dist/shared/lib/list-link.js +147 -0
  90. package/dist/shared/lib/nav-trail.js +107 -0
  91. package/dist/shared/lib/prefetch.js +259 -106
  92. package/dist/shared/lib/record-ref.js +72 -0
  93. package/dist/shared/lib/reload-holds.js +25 -0
  94. package/dist/shared/lib/safe-error.js +52 -24
  95. package/dist/shared/lib/skeleton-shapes.js +72 -0
  96. package/dist/shared/lib/slow-reason.js +63 -0
  97. package/package.json +1 -1
@@ -1,93 +1,240 @@
1
- import { jsxs as t, jsx as s, Fragment as g } from "react/jsx-runtime";
2
- import { ChevronDown as b, HelpCircle as f } from "lucide-react";
3
- import { useState as k } from "react";
4
- import { cn as p } from "../../lib/utils.js";
5
- import { describeDelivery as N } from "./DeliveryChips.js";
6
- function A({
7
- detail: r,
8
- why: a,
9
- delivery: m,
10
- subscriptionsPath: o,
11
- onNavigate: d,
12
- className: x
1
+ import { jsxs as r, jsx as a, Fragment as k } from "react/jsx-runtime";
2
+ import { useQuery as y } from "@tanstack/react-query";
3
+ import { ChevronDown as v, HelpCircle as L } from "lucide-react";
4
+ import { useState as C } from "react";
5
+ import { useNivaroClient as N } from "../../context.js";
6
+ import { get as w } from "../../lib/commands.js";
7
+ import { cn as f } from "../../lib/utils.js";
8
+ import { changeLines as $ } from "./changes-lines.js";
9
+ import { describeDelivery as q } from "./DeliveryChips.js";
10
+ import { WHY_KIND_LABELS as _, whyLines as S, whyChangeLinks as W, WHY_LAYER_LABELS as D } from "./why-lines.js";
11
+ function E({ layer: t, role: i }) {
12
+ return /* @__PURE__ */ r(
13
+ "span",
14
+ {
15
+ "data-why-layer": t,
16
+ className: f(
17
+ "ml-1 rounded px-1 text-[9.5px] font-medium",
18
+ t === "person" && "bg-sky-50 text-sky-700 dark:bg-sky-500/15 dark:text-sky-300",
19
+ t === "role" && "bg-violet-50 text-violet-700 dark:bg-violet-500/15 dark:text-violet-300",
20
+ t === "system" && "bg-slate-100 text-slate-500 dark:bg-muted dark:text-slate-400"
21
+ ),
22
+ children: [
23
+ D[t],
24
+ t === "role" && i ? ` · ${i}` : ""
25
+ ]
26
+ }
27
+ );
28
+ }
29
+ function P({ c: t }) {
30
+ return /* @__PURE__ */ r(
31
+ "li",
32
+ {
33
+ className: "flex flex-wrap items-baseline gap-x-1.5 text-[11px] leading-snug",
34
+ "data-change-field": t.field,
35
+ children: [
36
+ /* @__PURE__ */ a("span", { className: "font-medium text-slate-700 dark:text-slate-200", children: t.label }),
37
+ t.diff ? /* @__PURE__ */ r("span", { className: "min-w-0 whitespace-pre-wrap break-words text-slate-600 dark:text-slate-300", children: [
38
+ t.diff.lead,
39
+ t.diff.removed && /* @__PURE__ */ a("span", { className: "rounded-sm bg-red-50 text-red-700 line-through decoration-red-300 dark:bg-red-500/15 dark:text-red-300", children: t.diff.removed }),
40
+ t.diff.added && /* @__PURE__ */ a("span", { className: "rounded-sm bg-emerald-50 text-emerald-800 dark:bg-emerald-500/15 dark:text-emerald-300", children: t.diff.added }),
41
+ t.diff.trail
42
+ ] }) : /* @__PURE__ */ r(k, { children: [
43
+ t.old !== "" && /* @__PURE__ */ r(k, { children: [
44
+ /* @__PURE__ */ a("span", { className: "text-slate-400 line-through decoration-slate-300", children: t.old }),
45
+ /* @__PURE__ */ a("span", { className: "text-slate-300", children: "→" })
46
+ ] }),
47
+ /* @__PURE__ */ a("span", { className: "text-slate-800 dark:text-slate-100", children: t.new || "—" })
48
+ ] })
49
+ ]
50
+ }
51
+ );
52
+ }
53
+ function T({
54
+ notificationId: t,
55
+ className: i
56
+ }) {
57
+ const h = N(), { data: d, isLoading: x, isError: c } = y({
58
+ queryKey: ["notification-changes", t],
59
+ staleTime: 6e4,
60
+ retry: !1,
61
+ queryFn: () => h.request(
62
+ w(`/notifications/${t}/changes`)
63
+ ).then((s) => s.data)
64
+ }), m = $(d);
65
+ return /* @__PURE__ */ r(
66
+ "ul",
67
+ {
68
+ className: f(
69
+ "mt-1 space-y-0.5 rounded-md border border-slate-100 bg-slate-50/70 px-2 py-1.5 dark:border-border/60 dark:bg-muted/40",
70
+ i
71
+ ),
72
+ "data-notification-changes-list": !0,
73
+ "data-changes-source": "reader",
74
+ children: [
75
+ x && /* @__PURE__ */ a("li", { className: "text-[10.5px] text-slate-400", children: "Loading what changed…" }),
76
+ c && /* @__PURE__ */ a("li", { className: "text-[10.5px] text-slate-500 dark:text-slate-400", children: "You can't open this record now, so its changes are not shown." }),
77
+ d && m.length === 0 && /* @__PURE__ */ a("li", { className: "text-[10.5px] text-slate-500 dark:text-slate-400", children: d.note ?? (d.first_revision ? "The record was created — there is no earlier version to compare." : "No changes to fields you can see.") }),
78
+ m.map((s) => /* @__PURE__ */ a(P, { c: s }, s.field))
79
+ ]
80
+ }
81
+ );
82
+ }
83
+ function Y({
84
+ notificationId: t,
85
+ why: i,
86
+ delivery: h,
87
+ subscriptionsPath: d,
88
+ rulesPath: x,
89
+ onNavigate: c
90
+ }) {
91
+ var u;
92
+ const m = N(), { data: s, isLoading: b } = y({
93
+ queryKey: ["notification-why", t],
94
+ enabled: t != null,
95
+ staleTime: 6e4,
96
+ queryFn: () => m.request(w(`/notifications/${t}/why`)).then((e) => e.data)
97
+ }), l = (s == null ? void 0 : s.reason) ?? null, o = (l == null ? void 0 : l.path) ?? (s == null ? void 0 : s.why) ?? i ?? null, n = (o == null ? void 0 : o.kind) ?? "rules", p = ((u = l == null ? void 0 : l.role) == null ? void 0 : u.name) ?? null;
98
+ return /* @__PURE__ */ r(
99
+ "div",
100
+ {
101
+ className: "mt-1 rounded-md border border-slate-100 bg-slate-50/70 px-2 py-1.5 text-[11px] leading-snug dark:border-border/60 dark:bg-muted/40",
102
+ "data-notification-why-panel": !0,
103
+ "data-why-recorded": s ? String(s.recorded) : void 0,
104
+ children: [
105
+ o && /* @__PURE__ */ r("p", { className: "text-slate-700 dark:text-slate-200", children: [
106
+ /* @__PURE__ */ a("span", { className: "mr-1 rounded bg-slate-200/70 px-1 text-[9.5px] font-semibold uppercase tracking-wide text-slate-600 dark:bg-slate-700 dark:text-slate-300", children: _[n] ?? n }),
107
+ o.text,
108
+ o.label && n !== "watch" && n !== "role_default" && /* @__PURE__ */ r("span", { className: "text-slate-500 dark:text-slate-400", children: [
109
+ " · ",
110
+ o.label
111
+ ] })
112
+ ] }),
113
+ b && t != null && /* @__PURE__ */ a("p", { className: "mt-1 text-[10.5px] text-slate-400", children: "Looking up why…" }),
114
+ s && !s.recorded && /* @__PURE__ */ a("p", { className: "mt-1 text-[10.5px] italic text-slate-500 dark:text-slate-400", "data-why-legacy": !0, children: "Sent before reasons were recorded." }),
115
+ l ? /* @__PURE__ */ r(
116
+ "ul",
117
+ {
118
+ className: "mt-1 space-y-px text-[10.5px] text-slate-500 dark:text-slate-400",
119
+ "data-why-rules": !0,
120
+ children: [
121
+ l.critical && /* @__PURE__ */ r("li", { children: [
122
+ /* @__PURE__ */ a("span", { className: "font-medium text-slate-600 dark:text-slate-300", children: "Critical:" }),
123
+ " ",
124
+ "mutes, quiet hours and your rules are bypassed."
125
+ ] }),
126
+ S(l).map((e) => /* @__PURE__ */ r("li", { "data-why-channel": e.key, children: [
127
+ /* @__PURE__ */ r("span", { className: "font-medium text-slate-600 dark:text-slate-300", children: [
128
+ e.label,
129
+ ":"
130
+ ] }),
131
+ " ",
132
+ e.outcome,
133
+ e.rule ? ` — ${e.rule}` : "",
134
+ e.layer && /* @__PURE__ */ a(E, { layer: e.layer, role: p })
135
+ ] }, e.key))
136
+ ]
137
+ }
138
+ ) : /* @__PURE__ */ a("ul", { className: "mt-1 space-y-px text-[10.5px] text-slate-500 dark:text-slate-400", children: q((s == null ? void 0 : s.delivery) ?? h).map((e) => /* @__PURE__ */ r("li", { children: [
139
+ /* @__PURE__ */ r("span", { className: "font-medium text-slate-600 dark:text-slate-300", children: [
140
+ e.label,
141
+ ":"
142
+ ] }),
143
+ " ",
144
+ e.tip
145
+ ] }, e.key)) }),
146
+ /* @__PURE__ */ a("div", { className: "mt-1 flex flex-wrap gap-x-3", children: c && W(n, { subscriptionsPath: d, rulesPath: x }).map((e) => /* @__PURE__ */ a(
147
+ "button",
148
+ {
149
+ type: "button",
150
+ "data-why-change": e.to,
151
+ onClick: (g) => {
152
+ g.stopPropagation(), c(e.to);
153
+ },
154
+ className: "text-[10.5px] font-medium text-nvr-navy underline decoration-dotted underline-offset-2 dark:text-nvr-cyan",
155
+ children: e.label
156
+ },
157
+ e.to
158
+ )) })
159
+ ]
160
+ }
161
+ );
162
+ }
163
+ function G({
164
+ detail: t,
165
+ why: i,
166
+ delivery: h,
167
+ notificationId: d,
168
+ recordChanges: x,
169
+ subscriptionsPath: c,
170
+ rulesPath: m,
171
+ onNavigate: s,
172
+ className: b
13
173
  }) {
14
- const [l, h] = k(null), n = (r == null ? void 0 : r.changes) ?? [], c = (e) => h((i) => i === e ? null : e), u = {
15
- watch: "Record watch",
16
- subscription: "Subscription",
17
- rules: "Notification rules",
18
- message: "Direct message",
19
- mention: "Mention",
20
- task: "Task",
21
- approval: "Approval",
22
- sla: "SLA",
23
- flow: "Flow",
24
- broadcast: "Broadcast",
25
- alert: "Alert"
26
- };
27
- return /* @__PURE__ */ t("div", { className: p("text-[10.5px]", x), "data-notification-bits": !0, children: [
28
- /* @__PURE__ */ t("div", { className: "flex flex-wrap items-center gap-2", children: [
29
- n.length > 0 && /* @__PURE__ */ t(
174
+ const [l, o] = C(null), n = (t == null ? void 0 : t.changes) ?? [], p = !!x && d != null, u = (e) => o((g) => g === e ? null : e);
175
+ return /* @__PURE__ */ r("div", { className: f("text-[10.5px]", b), "data-notification-bits": !0, children: [
176
+ /* @__PURE__ */ r("div", { className: "flex flex-wrap items-center gap-2", children: [
177
+ (n.length > 0 || p) && /* @__PURE__ */ r(
30
178
  "button",
31
179
  {
32
180
  type: "button",
33
181
  onClick: (e) => {
34
- e.stopPropagation(), c("changes");
182
+ e.stopPropagation(), u("changes");
35
183
  },
36
184
  "aria-expanded": l === "changes",
37
185
  "data-notification-changes": !0,
38
186
  className: "inline-flex items-center gap-0.5 rounded px-1 py-px font-medium text-slate-500 hover:bg-slate-100 hover:text-slate-800 dark:text-slate-400 dark:hover:bg-muted dark:hover:text-slate-100",
39
187
  children: [
40
- n.length,
41
- " change",
42
- n.length === 1 ? "" : "s",
43
- /* @__PURE__ */ s(
44
- b,
188
+ n.length > 0 ? `${n.length} change${n.length === 1 ? "" : "s"}` : "What changed",
189
+ /* @__PURE__ */ a(
190
+ v,
45
191
  {
46
- className: p("h-3 w-3 transition-transform", l === "changes" && "rotate-180")
192
+ className: f("h-3 w-3 transition-transform", l === "changes" && "rotate-180")
47
193
  }
48
194
  )
49
195
  ]
50
196
  }
51
197
  ),
52
- a && /* @__PURE__ */ t(
198
+ (i || d != null) && /* @__PURE__ */ r(
53
199
  "button",
54
200
  {
55
201
  type: "button",
56
202
  onClick: (e) => {
57
- e.stopPropagation(), c("why");
203
+ e.stopPropagation(), u("why");
58
204
  },
59
205
  "aria-expanded": l === "why",
60
206
  "data-notification-why": !0,
61
207
  className: "inline-flex items-center gap-0.5 rounded px-1 py-px font-medium text-slate-400 hover:bg-slate-100 hover:text-slate-700 dark:hover:bg-muted dark:hover:text-slate-200",
62
208
  children: [
63
- /* @__PURE__ */ s(f, { className: "h-3 w-3" }),
64
- "Why me?"
209
+ /* @__PURE__ */ a(L, { className: "h-3 w-3" }),
210
+ "Why?"
65
211
  ]
66
212
  }
67
213
  )
68
214
  ] }),
69
- l === "changes" && /* @__PURE__ */ t(
215
+ l === "changes" && p && d != null && /* @__PURE__ */ a(T, { notificationId: d }),
216
+ l === "changes" && !p && /* @__PURE__ */ r(
70
217
  "ul",
71
218
  {
72
219
  className: "mt-1 space-y-0.5 rounded-md border border-slate-100 bg-slate-50/70 px-2 py-1.5 dark:border-border/60 dark:bg-muted/40",
73
220
  "data-notification-changes-list": !0,
74
221
  children: [
75
- n.slice(0, 20).map((e, i) => /* @__PURE__ */ t(
222
+ n.slice(0, 20).map((e, g) => /* @__PURE__ */ r(
76
223
  "li",
77
224
  {
78
225
  className: "flex flex-wrap items-baseline gap-x-1.5 text-[11px] leading-snug",
79
226
  children: [
80
- /* @__PURE__ */ s("span", { className: "font-medium text-slate-700 dark:text-slate-200", children: e.label }),
81
- e.old !== "" && /* @__PURE__ */ t(g, { children: [
82
- /* @__PURE__ */ s("span", { className: "text-slate-400 line-through decoration-slate-300", children: e.old }),
83
- /* @__PURE__ */ s("span", { className: "text-slate-300", children: "→" })
227
+ /* @__PURE__ */ a("span", { className: "font-medium text-slate-700 dark:text-slate-200", children: e.label }),
228
+ e.old !== "" && /* @__PURE__ */ r(k, { children: [
229
+ /* @__PURE__ */ a("span", { className: "text-slate-400 line-through decoration-slate-300", children: e.old }),
230
+ /* @__PURE__ */ a("span", { className: "text-slate-300", children: "→" })
84
231
  ] }),
85
- /* @__PURE__ */ s("span", { className: "text-slate-800 dark:text-slate-100", children: e.new || "—" })
232
+ /* @__PURE__ */ a("span", { className: "text-slate-800 dark:text-slate-100", children: e.new || "—" })
86
233
  ]
87
234
  },
88
- `${e.field}-${i}`
235
+ `${e.field}-${g}`
89
236
  )),
90
- n.length > 20 && /* @__PURE__ */ t("li", { className: "text-[10.5px] text-slate-400", children: [
237
+ n.length > 20 && /* @__PURE__ */ r("li", { className: "text-[10.5px] text-slate-400", children: [
91
238
  "+",
92
239
  n.length - 20,
93
240
  " more"
@@ -95,44 +242,20 @@ function A({
95
242
  ]
96
243
  }
97
244
  ),
98
- l === "why" && a && /* @__PURE__ */ t(
99
- "div",
245
+ l === "why" && /* @__PURE__ */ a(
246
+ Y,
100
247
  {
101
- className: "mt-1 rounded-md border border-slate-100 bg-slate-50/70 px-2 py-1.5 text-[11px] leading-snug dark:border-border/60 dark:bg-muted/40",
102
- "data-notification-why-panel": !0,
103
- children: [
104
- /* @__PURE__ */ t("p", { className: "text-slate-700 dark:text-slate-200", children: [
105
- /* @__PURE__ */ s("span", { className: "mr-1 rounded bg-slate-200/70 px-1 text-[9.5px] font-semibold uppercase tracking-wide text-slate-600 dark:bg-slate-700 dark:text-slate-300", children: u[a.kind] ?? a.kind }),
106
- a.text,
107
- a.label && a.kind !== "watch" && /* @__PURE__ */ t("span", { className: "text-slate-500 dark:text-slate-400", children: [
108
- " · ",
109
- a.label
110
- ] })
111
- ] }),
112
- (a.kind === "watch" || a.kind === "subscription") && o && d && /* @__PURE__ */ s(
113
- "button",
114
- {
115
- type: "button",
116
- onClick: (e) => {
117
- e.stopPropagation(), d(o);
118
- },
119
- className: "mt-0.5 text-[10.5px] font-medium text-nvr-navy underline decoration-dotted underline-offset-2 dark:text-nvr-cyan",
120
- children: "Manage your subscriptions"
121
- }
122
- ),
123
- /* @__PURE__ */ s("ul", { className: "mt-1 space-y-px text-[10.5px] text-slate-500 dark:text-slate-400", children: N(m).map((e) => /* @__PURE__ */ t("li", { children: [
124
- /* @__PURE__ */ t("span", { className: "font-medium text-slate-600 dark:text-slate-300", children: [
125
- e.label,
126
- ":"
127
- ] }),
128
- " ",
129
- e.tip
130
- ] }, e.key)) })
131
- ]
248
+ notificationId: d,
249
+ why: i,
250
+ delivery: h,
251
+ subscriptionsPath: c,
252
+ rulesPath: m,
253
+ onNavigate: s
132
254
  }
133
255
  )
134
256
  ] });
135
257
  }
136
258
  export {
137
- A as NotificationDetailBits
259
+ T as NotificationChangesList,
260
+ G as NotificationDetailBits
138
261
  };