@bbearai/react 0.4.1 → 0.4.2

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/index.mjs CHANGED
@@ -41,6 +41,10 @@ var BugBearContext = createContext({
41
41
  },
42
42
  createThread: async () => ({ success: false }),
43
43
  uploadImage: async () => null,
44
+ // Issue tracking
45
+ issueCounts: { open: 0, done: 0, reopened: 0 },
46
+ refreshIssueCounts: async () => {
47
+ },
44
48
  onError: void 0
45
49
  });
46
50
  function useBugBear() {
@@ -58,6 +62,7 @@ function BugBearProvider({ config, children, enabled = true }) {
58
62
  const [sessionFindings, setSessionFindings] = useState([]);
59
63
  const [threads, setThreads] = useState([]);
60
64
  const [unreadCount, setUnreadCount] = useState(0);
65
+ const [issueCounts, setIssueCounts] = useState({ open: 0, done: 0, reopened: 0 });
61
66
  const refreshAssignments = useCallback(async () => {
62
67
  if (!client) return;
63
68
  const newAssignments = await client.getAssignedTests();
@@ -109,6 +114,11 @@ function BugBearProvider({ config, children, enabled = true }) {
109
114
  const totalUnread = newThreads.reduce((sum, t) => sum + t.unreadCount, 0);
110
115
  setUnreadCount(totalUnread);
111
116
  }, [client]);
117
+ const refreshIssueCounts = useCallback(async () => {
118
+ if (!client) return;
119
+ const counts = await client.getIssueCounts();
120
+ setIssueCounts(counts);
121
+ }, [client]);
112
122
  const getThreadMessages = useCallback(async (threadId) => {
113
123
  if (!client) return [];
114
124
  return client.getThreadMessages(threadId);
@@ -150,16 +160,18 @@ function BugBearProvider({ config, children, enabled = true }) {
150
160
  setTesterInfo(info);
151
161
  setIsTester(!!info);
152
162
  if (info && qaEnabled) {
153
- const [newAssignments, session, newThreads] = await Promise.all([
163
+ const [newAssignments, session, newThreads, counts] = await Promise.all([
154
164
  bugBearClient.getAssignedTests(),
155
165
  bugBearClient.getActiveSession(),
156
- bugBearClient.getThreadsForTester()
166
+ bugBearClient.getThreadsForTester(),
167
+ bugBearClient.getIssueCounts()
157
168
  ]);
158
169
  setAssignments(newAssignments);
159
170
  setActiveSession(session);
160
171
  setThreads(newThreads);
161
172
  const totalUnread = newThreads.reduce((sum, t) => sum + t.unreadCount, 0);
162
173
  setUnreadCount(totalUnread);
174
+ setIssueCounts(counts);
163
175
  if (session) {
164
176
  const findings = await bugBearClient.getSessionFindings(session.id);
165
177
  setSessionFindings(findings);
@@ -241,6 +253,9 @@ function BugBearProvider({ config, children, enabled = true }) {
241
253
  markAsRead,
242
254
  createThread,
243
255
  uploadImage,
256
+ // Issue tracking
257
+ issueCounts,
258
+ refreshIssueCounts,
244
259
  onError: config.onError
245
260
  },
246
261
  children
@@ -249,7 +264,7 @@ function BugBearProvider({ config, children, enabled = true }) {
249
264
  }
250
265
 
251
266
  // src/BugBearPanel.tsx
252
- import { useState as useState10, useRef as useRef3, useEffect as useEffect7, useCallback as useCallback5 } from "react";
267
+ import { useState as useState11, useRef as useRef3, useEffect as useEffect8, useCallback as useCallback5 } from "react";
253
268
  import { createPortal } from "react-dom";
254
269
 
255
270
  // src/widget/navigation.ts
@@ -369,10 +384,11 @@ function getThreadTypeIcon(type) {
369
384
  import { useEffect as useEffect2 } from "react";
370
385
  import { jsx as jsx2, jsxs } from "react/jsx-runtime";
371
386
  function HomeScreen({ nav }) {
372
- const { assignments, unreadCount, threads, refreshAssignments, refreshThreads } = useBugBear();
387
+ const { assignments, unreadCount, threads, refreshAssignments, refreshThreads, issueCounts, refreshIssueCounts } = useBugBear();
373
388
  useEffect2(() => {
374
389
  refreshAssignments();
375
390
  refreshThreads();
391
+ refreshIssueCounts();
376
392
  }, []);
377
393
  const pendingAssignments = assignments.filter((a) => a.status === "pending" || a.status === "in_progress");
378
394
  const pendingCount = pendingAssignments.length;
@@ -657,6 +673,89 @@ function HomeScreen({ nav }) {
657
673
  ]
658
674
  }
659
675
  ),
676
+ /* @__PURE__ */ jsxs("div", { style: { display: "grid", gridTemplateColumns: "1fr 1fr 1fr", gap: 10, marginBottom: 20 }, children: [
677
+ /* @__PURE__ */ jsxs(
678
+ "div",
679
+ {
680
+ role: "button",
681
+ tabIndex: 0,
682
+ onClick: () => nav.push({ name: "ISSUE_LIST", category: "open" }),
683
+ onKeyDown: (e) => {
684
+ if (e.key === "Enter" || e.key === " ") nav.push({ name: "ISSUE_LIST", category: "open" });
685
+ },
686
+ style: {
687
+ backgroundColor: "#27272a",
688
+ border: "1px solid #3f3f46",
689
+ borderTop: "3px solid #f97316",
690
+ borderRadius: 10,
691
+ padding: "12px 8px",
692
+ display: "flex",
693
+ flexDirection: "column",
694
+ alignItems: "center",
695
+ cursor: "pointer",
696
+ userSelect: "none"
697
+ },
698
+ children: [
699
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 22, fontWeight: 700, color: "#f97316" }, children: issueCounts.open }),
700
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 11, fontWeight: 600, color: "#a1a1aa", marginTop: 2 }, children: "Open" })
701
+ ]
702
+ }
703
+ ),
704
+ /* @__PURE__ */ jsxs(
705
+ "div",
706
+ {
707
+ role: "button",
708
+ tabIndex: 0,
709
+ onClick: () => nav.push({ name: "ISSUE_LIST", category: "done" }),
710
+ onKeyDown: (e) => {
711
+ if (e.key === "Enter" || e.key === " ") nav.push({ name: "ISSUE_LIST", category: "done" });
712
+ },
713
+ style: {
714
+ backgroundColor: "#27272a",
715
+ border: "1px solid #3f3f46",
716
+ borderTop: "3px solid #22c55e",
717
+ borderRadius: 10,
718
+ padding: "12px 8px",
719
+ display: "flex",
720
+ flexDirection: "column",
721
+ alignItems: "center",
722
+ cursor: "pointer",
723
+ userSelect: "none"
724
+ },
725
+ children: [
726
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 22, fontWeight: 700, color: "#22c55e" }, children: issueCounts.done }),
727
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 11, fontWeight: 600, color: "#a1a1aa", marginTop: 2 }, children: "Done" })
728
+ ]
729
+ }
730
+ ),
731
+ /* @__PURE__ */ jsxs(
732
+ "div",
733
+ {
734
+ role: "button",
735
+ tabIndex: 0,
736
+ onClick: () => nav.push({ name: "ISSUE_LIST", category: "reopened" }),
737
+ onKeyDown: (e) => {
738
+ if (e.key === "Enter" || e.key === " ") nav.push({ name: "ISSUE_LIST", category: "reopened" });
739
+ },
740
+ style: {
741
+ backgroundColor: "#27272a",
742
+ border: "1px solid #3f3f46",
743
+ borderTop: "3px solid #ef4444",
744
+ borderRadius: 10,
745
+ padding: "12px 8px",
746
+ display: "flex",
747
+ flexDirection: "column",
748
+ alignItems: "center",
749
+ cursor: "pointer",
750
+ userSelect: "none"
751
+ },
752
+ children: [
753
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 22, fontWeight: 700, color: "#ef4444" }, children: issueCounts.reopened }),
754
+ /* @__PURE__ */ jsx2("span", { style: { fontSize: 11, fontWeight: 600, color: "#a1a1aa", marginTop: 2 }, children: "Reopened" })
755
+ ]
756
+ }
757
+ )
758
+ ] }),
660
759
  totalTests > 0 && /* @__PURE__ */ jsxs("div", { style: { marginBottom: 16 }, children: [
661
760
  /* @__PURE__ */ jsx2(
662
761
  "div",
@@ -696,6 +795,7 @@ function HomeScreen({ nav }) {
696
795
  onClick: () => {
697
796
  refreshAssignments();
698
797
  refreshThreads();
798
+ refreshIssueCounts();
699
799
  },
700
800
  style: {
701
801
  background: "none",
@@ -1579,36 +1679,21 @@ function TestListScreen({ nav }) {
1579
1679
  const filterAssignment = (a) => {
1580
1680
  if (roleFilter && a.testCase.role?.id !== roleFilter) return false;
1581
1681
  if (filter === "pending") return a.status === "pending" || a.status === "in_progress";
1582
- if (filter === "completed") return a.status === "passed" || a.status === "failed";
1682
+ if (filter === "done") return a.status === "passed";
1683
+ if (filter === "reopened") return a.status === "failed";
1583
1684
  return true;
1584
1685
  };
1585
1686
  const pendingCount = assignments.filter(
1586
1687
  (a) => a.status === "pending" || a.status === "in_progress"
1587
1688
  ).length;
1588
- const doneCount = assignments.filter(
1589
- (a) => a.status === "passed" || a.status === "failed"
1590
- ).length;
1689
+ const doneCount = assignments.filter((a) => a.status === "passed").length;
1690
+ const reopenedCount = assignments.filter((a) => a.status === "failed").length;
1591
1691
  const filters = [
1592
1692
  { key: "all", label: "All", count: assignments.length },
1593
1693
  { key: "pending", label: "To Do", count: pendingCount },
1594
- { key: "completed", label: "Done", count: doneCount }
1694
+ { key: "done", label: "Done", count: doneCount },
1695
+ { key: "reopened", label: "Re Opened", count: reopenedCount }
1595
1696
  ];
1596
- const getStatusColor = (status) => {
1597
- switch (status) {
1598
- case "passed":
1599
- return colors.green;
1600
- case "failed":
1601
- return colors.red;
1602
- case "skipped":
1603
- return colors.yellow;
1604
- case "in_progress":
1605
- return colors.blue;
1606
- case "blocked":
1607
- return colors.red;
1608
- default:
1609
- return colors.textMuted;
1610
- }
1611
- };
1612
1697
  return /* @__PURE__ */ jsxs3("div", { children: [
1613
1698
  /* @__PURE__ */ jsx4("div", { style: { display: "flex", gap: 8, marginBottom: availableRoles.length >= 2 ? 8 : 16 }, children: filters.map((f) => /* @__PURE__ */ jsxs3(
1614
1699
  "button",
@@ -1909,10 +1994,14 @@ function TestListScreen({ nav }) {
1909
1994
  {
1910
1995
  style: {
1911
1996
  fontSize: 10,
1912
- color: getStatusColor(assignment.status),
1913
- fontWeight: 500,
1997
+ fontWeight: 600,
1914
1998
  marginLeft: 8,
1915
- flexShrink: 0
1999
+ flexShrink: 0,
2000
+ padding: "3px 8px",
2001
+ borderRadius: 6,
2002
+ color: assignment.status === "passed" ? "#4ade80" : assignment.status === "failed" ? "#f87171" : assignment.status === "in_progress" ? "#60a5fa" : "#d4d4d8",
2003
+ backgroundColor: assignment.status === "passed" ? "#14532d" : assignment.status === "failed" ? "#450a0a" : assignment.status === "in_progress" ? "#172554" : "#27272a",
2004
+ border: assignment.status === "passed" ? "1px solid #166534" : assignment.status === "failed" ? "1px solid #7f1d1d" : assignment.status === "in_progress" ? "1px solid #1e3a5f" : "1px solid #3f3f46"
1916
2005
  },
1917
2006
  children: badge.label
1918
2007
  }
@@ -1937,8 +2026,8 @@ function TestListScreen({ nav }) {
1937
2026
  padding: 32
1938
2027
  },
1939
2028
  children: [
1940
- /* @__PURE__ */ jsx4("span", { style: { fontSize: 32, marginBottom: 8 }, children: filter === "pending" ? "\u{1F389}" : "\u{1F4CB}" }),
1941
- /* @__PURE__ */ jsx4("span", { style: { fontSize: 14, color: colors.textMuted }, children: filter === "pending" ? "All tests completed!" : filter === "completed" ? "No completed tests yet" : "No tests assigned" })
2029
+ /* @__PURE__ */ jsx4("span", { style: { fontSize: 32, marginBottom: 8 }, children: filter === "pending" ? "\u{1F389}" : filter === "reopened" ? "\u{1F44D}" : "\u{1F4CB}" }),
2030
+ /* @__PURE__ */ jsx4("span", { style: { fontSize: 14, color: colors.textMuted }, children: filter === "pending" ? "All tests completed!" : filter === "done" ? "No passed tests yet" : filter === "reopened" ? "No reopened issues" : "No tests assigned" })
1942
2031
  ]
1943
2032
  }
1944
2033
  ),
@@ -4015,13 +4104,289 @@ var styles4 = {
4015
4104
  }
4016
4105
  };
4017
4106
 
4107
+ // src/widget/screens/IssueListScreen.tsx
4108
+ import { useState as useState10, useEffect as useEffect7 } from "react";
4109
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
4110
+ var CATEGORY_CONFIG = {
4111
+ open: { label: "Open Issues", accent: "#f97316", emptyIcon: "\u2705", emptyText: "No open issues" },
4112
+ done: { label: "Done", accent: "#22c55e", emptyIcon: "\u{1F389}", emptyText: "No completed issues yet" },
4113
+ reopened: { label: "Reopened", accent: "#ef4444", emptyIcon: "\u{1F44D}", emptyText: "No reopened issues" }
4114
+ };
4115
+ var SEVERITY_COLORS = {
4116
+ critical: "#ef4444",
4117
+ high: "#f97316",
4118
+ medium: "#eab308",
4119
+ low: "#71717a"
4120
+ };
4121
+ function IssueListScreen({ nav, category }) {
4122
+ const { client } = useBugBear();
4123
+ const [issues, setIssues] = useState10([]);
4124
+ const [loading, setLoading] = useState10(true);
4125
+ const config = CATEGORY_CONFIG[category];
4126
+ useEffect7(() => {
4127
+ let cancelled = false;
4128
+ setLoading(true);
4129
+ (async () => {
4130
+ if (!client) return;
4131
+ const data = await client.getIssues(category);
4132
+ if (!cancelled) {
4133
+ setIssues(data);
4134
+ setLoading(false);
4135
+ }
4136
+ })();
4137
+ return () => {
4138
+ cancelled = true;
4139
+ };
4140
+ }, [client, category]);
4141
+ if (loading) {
4142
+ return /* @__PURE__ */ jsx14("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx14("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
4143
+ }
4144
+ if (issues.length === 0) {
4145
+ return /* @__PURE__ */ jsxs13("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
4146
+ /* @__PURE__ */ jsx14("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
4147
+ /* @__PURE__ */ jsx14("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
4148
+ ] });
4149
+ }
4150
+ return /* @__PURE__ */ jsx14("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs13(
4151
+ "div",
4152
+ {
4153
+ role: "button",
4154
+ tabIndex: 0,
4155
+ onClick: () => nav.push({ name: "ISSUE_DETAIL", issue }),
4156
+ onKeyDown: (e) => {
4157
+ if (e.key === "Enter" || e.key === " ") nav.push({ name: "ISSUE_DETAIL", issue });
4158
+ },
4159
+ style: {
4160
+ backgroundColor: colors.card,
4161
+ border: `1px solid ${colors.border}`,
4162
+ borderRadius: 10,
4163
+ padding: "12px 14px",
4164
+ marginBottom: 8,
4165
+ cursor: "pointer",
4166
+ userSelect: "none"
4167
+ },
4168
+ children: [
4169
+ /* @__PURE__ */ jsxs13("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
4170
+ issue.severity && /* @__PURE__ */ jsx14(
4171
+ "span",
4172
+ {
4173
+ style: {
4174
+ width: 8,
4175
+ height: 8,
4176
+ borderRadius: 4,
4177
+ backgroundColor: SEVERITY_COLORS[issue.severity] || colors.textDim,
4178
+ flexShrink: 0,
4179
+ marginTop: 5
4180
+ }
4181
+ }
4182
+ ),
4183
+ /* @__PURE__ */ jsx14("span", { style: {
4184
+ fontSize: 13,
4185
+ fontWeight: 600,
4186
+ color: colors.textPrimary,
4187
+ flex: 1,
4188
+ overflow: "hidden",
4189
+ textOverflow: "ellipsis",
4190
+ whiteSpace: "nowrap"
4191
+ }, children: issue.title })
4192
+ ] }),
4193
+ /* @__PURE__ */ jsxs13("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
4194
+ issue.route && /* @__PURE__ */ jsx14("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
4195
+ /* @__PURE__ */ jsx14("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
4196
+ ] }),
4197
+ category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs13("div", { style: {
4198
+ display: "inline-flex",
4199
+ alignItems: "center",
4200
+ gap: 4,
4201
+ backgroundColor: "#14532d",
4202
+ border: "1px solid #166534",
4203
+ borderRadius: 6,
4204
+ padding: "2px 8px",
4205
+ marginTop: 6,
4206
+ fontSize: 10,
4207
+ fontWeight: 600,
4208
+ color: "#4ade80"
4209
+ }, children: [
4210
+ "\u2714 Verified by ",
4211
+ issue.verifiedByName
4212
+ ] }),
4213
+ category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs13("div", { style: {
4214
+ display: "inline-flex",
4215
+ alignItems: "center",
4216
+ gap: 4,
4217
+ backgroundColor: "#422006",
4218
+ border: "1px solid #854d0e",
4219
+ borderRadius: 6,
4220
+ padding: "2px 8px",
4221
+ marginTop: 6,
4222
+ fontSize: 10,
4223
+ fontWeight: 600,
4224
+ color: "#fbbf24",
4225
+ maxWidth: "100%",
4226
+ overflow: "hidden",
4227
+ textOverflow: "ellipsis",
4228
+ whiteSpace: "nowrap"
4229
+ }, children: [
4230
+ "\u{1F504} Retest of: ",
4231
+ issue.originalBugTitle
4232
+ ] })
4233
+ ]
4234
+ },
4235
+ issue.id
4236
+ )) });
4237
+ }
4238
+
4239
+ // src/widget/screens/IssueDetailScreen.tsx
4240
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4241
+ var STATUS_LABELS = {
4242
+ new: { label: "New", bg: "#1e3a5f", color: "#60a5fa" },
4243
+ triaging: { label: "Triaging", bg: "#1e3a5f", color: "#60a5fa" },
4244
+ confirmed: { label: "Confirmed", bg: "#422006", color: "#fbbf24" },
4245
+ in_progress: { label: "In Progress", bg: "#1e3a5f", color: "#60a5fa" },
4246
+ fixed: { label: "Fixed", bg: "#14532d", color: "#4ade80" },
4247
+ ready_to_test: { label: "Ready to Test", bg: "#422006", color: "#fbbf24" },
4248
+ verified: { label: "Verified", bg: "#14532d", color: "#4ade80" },
4249
+ resolved: { label: "Resolved", bg: "#14532d", color: "#4ade80" },
4250
+ reviewed: { label: "Reviewed", bg: "#14532d", color: "#4ade80" },
4251
+ closed: { label: "Closed", bg: "#27272a", color: "#71717a" },
4252
+ wont_fix: { label: "Won't Fix", bg: "#27272a", color: "#71717a" },
4253
+ duplicate: { label: "Duplicate", bg: "#27272a", color: "#71717a" }
4254
+ };
4255
+ var SEVERITY_CONFIG = {
4256
+ critical: { label: "Critical", color: "#ef4444", bg: "#7f1d1d" },
4257
+ high: { label: "High", color: "#f97316", bg: "#431407" },
4258
+ medium: { label: "Medium", color: "#eab308", bg: "#422006" },
4259
+ low: { label: "Low", color: "#71717a", bg: "#27272a" }
4260
+ };
4261
+ function IssueDetailScreen({ nav, issue }) {
4262
+ const statusConfig = STATUS_LABELS[issue.status] || { label: issue.status, bg: "#27272a", color: "#a1a1aa" };
4263
+ const severityConfig = issue.severity ? SEVERITY_CONFIG[issue.severity] : null;
4264
+ return /* @__PURE__ */ jsxs14("div", { children: [
4265
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
4266
+ /* @__PURE__ */ jsx15("span", { style: {
4267
+ backgroundColor: statusConfig.bg,
4268
+ color: statusConfig.color,
4269
+ fontSize: 11,
4270
+ fontWeight: 600,
4271
+ padding: "3px 10px",
4272
+ borderRadius: 6
4273
+ }, children: statusConfig.label }),
4274
+ severityConfig && /* @__PURE__ */ jsx15("span", { style: {
4275
+ backgroundColor: severityConfig.bg,
4276
+ color: severityConfig.color,
4277
+ fontSize: 11,
4278
+ fontWeight: 600,
4279
+ padding: "3px 10px",
4280
+ borderRadius: 6
4281
+ }, children: severityConfig.label })
4282
+ ] }),
4283
+ /* @__PURE__ */ jsx15("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
4284
+ issue.route && /* @__PURE__ */ jsx15("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
4285
+ issue.description && /* @__PURE__ */ jsx15("div", { style: {
4286
+ backgroundColor: colors.card,
4287
+ border: `1px solid ${colors.border}`,
4288
+ borderRadius: 8,
4289
+ padding: 12,
4290
+ marginBottom: 12,
4291
+ fontSize: 13,
4292
+ color: colors.textSecondary,
4293
+ lineHeight: 1.5,
4294
+ whiteSpace: "pre-wrap",
4295
+ wordBreak: "break-word"
4296
+ }, children: issue.description }),
4297
+ issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
4298
+ backgroundColor: "#14532d",
4299
+ border: "1px solid #166534",
4300
+ borderRadius: 8,
4301
+ padding: 12,
4302
+ marginBottom: 12
4303
+ }, children: [
4304
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4305
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 16 }, children: "\u2705" }),
4306
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
4307
+ ] }),
4308
+ /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#86efac" }, children: [
4309
+ "Verified by ",
4310
+ /* @__PURE__ */ jsx15("strong", { children: issue.verifiedByName }),
4311
+ issue.verifiedAt && /* @__PURE__ */ jsxs14("span", { children: [
4312
+ " on ",
4313
+ new Date(issue.verifiedAt).toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" })
4314
+ ] })
4315
+ ] })
4316
+ ] }),
4317
+ issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
4318
+ backgroundColor: "#422006",
4319
+ border: "1px solid #854d0e",
4320
+ borderRadius: 8,
4321
+ padding: 12,
4322
+ marginBottom: 12
4323
+ }, children: [
4324
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4325
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
4326
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
4327
+ ] }),
4328
+ /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
4329
+ "Retest of: ",
4330
+ /* @__PURE__ */ jsx15("strong", { children: issue.originalBugTitle })
4331
+ ] })
4332
+ ] }),
4333
+ issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ jsxs14("div", { style: { marginBottom: 12 }, children: [
4334
+ /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
4335
+ "Screenshots (",
4336
+ issue.screenshotUrls.length,
4337
+ ")"
4338
+ ] }),
4339
+ /* @__PURE__ */ jsx15("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx15(
4340
+ "a",
4341
+ {
4342
+ href: url,
4343
+ target: "_blank",
4344
+ rel: "noopener noreferrer",
4345
+ style: { flexShrink: 0 },
4346
+ children: /* @__PURE__ */ jsx15(
4347
+ "img",
4348
+ {
4349
+ src: url,
4350
+ alt: `Screenshot ${i + 1}`,
4351
+ style: {
4352
+ width: 80,
4353
+ height: 60,
4354
+ objectFit: "cover",
4355
+ borderRadius: 6,
4356
+ border: `1px solid ${colors.border}`
4357
+ }
4358
+ }
4359
+ )
4360
+ },
4361
+ i
4362
+ )) })
4363
+ ] }),
4364
+ /* @__PURE__ */ jsxs14("div", { style: {
4365
+ borderTop: `1px solid ${colors.border}`,
4366
+ paddingTop: 12,
4367
+ marginTop: 4
4368
+ }, children: [
4369
+ issue.reporterName && /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
4370
+ "Reported by ",
4371
+ issue.reporterName
4372
+ ] }),
4373
+ /* @__PURE__ */ jsxs14("div", { style: { fontSize: 11, color: colors.textDim }, children: [
4374
+ "Created ",
4375
+ formatRelativeTime(issue.createdAt),
4376
+ " \xB7 Updated ",
4377
+ formatRelativeTime(issue.updatedAt)
4378
+ ] })
4379
+ ] })
4380
+ ] });
4381
+ }
4382
+
4018
4383
  // src/widget/logo.ts
4019
4384
  var BUGBEAR_LOGO_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAJhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABIAAAAAQAAAEgAAAABAASQBAACAAAAFAAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAGCgAwAEAAAAAQAAAGAAAAAAMjAyNjowMToyNCAxNjoyMTozOABbbVCuAAAACXBIWXMAAAsTAAALEwEAmpwYAAACo2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpJcHRjNHhtcEV4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWE8L0lwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPgogICAgICAgICA8SXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPmZjNzJlN2Q2LTYyYTEtNDE1ZS04MjY5LWM2NjA4MjY0OWRiMDwvSXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyNi0wMS0yNFQxNjoyMTozODwveG1wOkNyZWF0ZURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+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";
4020
4385
 
4021
4386
  // src/BugBearPanel.tsx
4022
- import { Fragment as Fragment4, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
4387
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4023
4388
  function BugBearIcon({ size = 24 }) {
4024
- return /* @__PURE__ */ jsx14(
4389
+ return /* @__PURE__ */ jsx16(
4025
4390
  "img",
4026
4391
  {
4027
4392
  src: BUGBEAR_LOGO_BASE64,
@@ -4066,12 +4431,12 @@ function BugBearPanel({
4066
4431
  }) {
4067
4432
  const { shouldShowWidget, testerInfo, assignments, isLoading, unreadCount } = useBugBear();
4068
4433
  const { currentScreen, canGoBack, push, pop, replace, reset } = useNavigation();
4069
- const [collapsed, setCollapsed] = useState10(defaultCollapsed);
4070
- const [panelPosition, setPanelPosition] = useState10(null);
4071
- const [isDragging, setIsDragging] = useState10(false);
4434
+ const [collapsed, setCollapsed] = useState11(defaultCollapsed);
4435
+ const [panelPosition, setPanelPosition] = useState11(null);
4436
+ const [isDragging, setIsDragging] = useState11(false);
4072
4437
  const dragStartRef = useRef3(null);
4073
4438
  const panelRef = useRef3(null);
4074
- useEffect7(() => {
4439
+ useEffect8(() => {
4075
4440
  if (typeof window === "undefined") return;
4076
4441
  try {
4077
4442
  const saved = localStorage.getItem(STORAGE_KEY);
@@ -4085,7 +4450,7 @@ function BugBearPanel({
4085
4450
  setPanelPosition(getDefaultPosition(position));
4086
4451
  }
4087
4452
  }, [position]);
4088
- useEffect7(() => {
4453
+ useEffect8(() => {
4089
4454
  if (panelPosition && typeof window !== "undefined") {
4090
4455
  try {
4091
4456
  localStorage.setItem(STORAGE_KEY, JSON.stringify(panelPosition));
@@ -4093,7 +4458,7 @@ function BugBearPanel({
4093
4458
  }
4094
4459
  }
4095
4460
  }, [panelPosition]);
4096
- useEffect7(() => {
4461
+ useEffect8(() => {
4097
4462
  if (typeof window === "undefined") return;
4098
4463
  const handleResize = () => {
4099
4464
  setPanelPosition((prev) => prev ? clampPosition(prev) : getDefaultPosition(position));
@@ -4114,7 +4479,7 @@ function BugBearPanel({
4114
4479
  panelY: panelPosition.y
4115
4480
  };
4116
4481
  }, [draggable, panelPosition]);
4117
- useEffect7(() => {
4482
+ useEffect8(() => {
4118
4483
  if (!isDragging) return;
4119
4484
  const handleMouseMove = (e) => {
4120
4485
  if (!dragStartRef.current) return;
@@ -4168,6 +4533,10 @@ function BugBearPanel({
4168
4533
  return currentScreen.thread.subject || "Thread";
4169
4534
  case "COMPOSE_MESSAGE":
4170
4535
  return "New Message";
4536
+ case "ISSUE_LIST":
4537
+ return currentScreen.category === "open" ? "Open Issues" : currentScreen.category === "done" ? "Done" : "Reopened";
4538
+ case "ISSUE_DETAIL":
4539
+ return "Issue Detail";
4171
4540
  case "PROFILE":
4172
4541
  return "Profile";
4173
4542
  default:
@@ -4182,33 +4551,37 @@ function BugBearPanel({
4182
4551
  const renderScreen = () => {
4183
4552
  switch (currentScreen.name) {
4184
4553
  case "HOME":
4185
- return /* @__PURE__ */ jsx14(HomeScreen, { nav });
4554
+ return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4186
4555
  case "TEST_DETAIL":
4187
- return /* @__PURE__ */ jsx14(TestDetailScreen, { testId: currentScreen.testId, nav });
4556
+ return /* @__PURE__ */ jsx16(TestDetailScreen, { testId: currentScreen.testId, nav });
4188
4557
  case "TEST_LIST":
4189
- return /* @__PURE__ */ jsx14(TestListScreen, { nav });
4558
+ return /* @__PURE__ */ jsx16(TestListScreen, { nav });
4190
4559
  case "TEST_FEEDBACK":
4191
- return /* @__PURE__ */ jsx14(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4560
+ return /* @__PURE__ */ jsx16(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4192
4561
  case "REPORT":
4193
- return /* @__PURE__ */ jsx14(ReportScreen, { nav, prefill: currentScreen.prefill });
4562
+ return /* @__PURE__ */ jsx16(ReportScreen, { nav, prefill: currentScreen.prefill });
4194
4563
  case "REPORT_SUCCESS":
4195
- return /* @__PURE__ */ jsx14(ReportSuccessScreen, { nav });
4564
+ return /* @__PURE__ */ jsx16(ReportSuccessScreen, { nav });
4196
4565
  case "MESSAGE_LIST":
4197
- return /* @__PURE__ */ jsx14(MessageListScreen, { nav });
4566
+ return /* @__PURE__ */ jsx16(MessageListScreen, { nav });
4198
4567
  case "THREAD_DETAIL":
4199
- return /* @__PURE__ */ jsx14(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4568
+ return /* @__PURE__ */ jsx16(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4200
4569
  case "COMPOSE_MESSAGE":
4201
- return /* @__PURE__ */ jsx14(ComposeMessageScreen, { nav });
4570
+ return /* @__PURE__ */ jsx16(ComposeMessageScreen, { nav });
4571
+ case "ISSUE_LIST":
4572
+ return /* @__PURE__ */ jsx16(IssueListScreen, { nav, category: currentScreen.category });
4573
+ case "ISSUE_DETAIL":
4574
+ return /* @__PURE__ */ jsx16(IssueDetailScreen, { nav, issue: currentScreen.issue });
4202
4575
  case "PROFILE":
4203
- return /* @__PURE__ */ jsx14(ProfileScreen, { nav });
4576
+ return /* @__PURE__ */ jsx16(ProfileScreen, { nav });
4204
4577
  default:
4205
- return /* @__PURE__ */ jsx14(HomeScreen, { nav });
4578
+ return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4206
4579
  }
4207
4580
  };
4208
4581
  if (typeof document === "undefined") return null;
4209
4582
  const headerTitle = getHeaderTitle();
4210
4583
  return createPortal(
4211
- /* @__PURE__ */ jsxs13(
4584
+ /* @__PURE__ */ jsxs15(
4212
4585
  "div",
4213
4586
  {
4214
4587
  ref: panelRef,
@@ -4227,7 +4600,7 @@ function BugBearPanel({
4227
4600
  },
4228
4601
  onMouseDown: handleMouseDown,
4229
4602
  children: [
4230
- collapsed && /* @__PURE__ */ jsxs13(
4603
+ collapsed && /* @__PURE__ */ jsxs15(
4231
4604
  "button",
4232
4605
  {
4233
4606
  onClick: () => setCollapsed(false),
@@ -4249,9 +4622,9 @@ function BugBearPanel({
4249
4622
  fontWeight: 500
4250
4623
  },
4251
4624
  children: [
4252
- /* @__PURE__ */ jsx14(BugBearIcon, { size: 24 }),
4253
- /* @__PURE__ */ jsx14("span", { children: "BugBear" }),
4254
- badgeCount > 0 && /* @__PURE__ */ jsx14("span", { style: {
4625
+ /* @__PURE__ */ jsx16(BugBearIcon, { size: 24 }),
4626
+ /* @__PURE__ */ jsx16("span", { children: "BugBear" }),
4627
+ badgeCount > 0 && /* @__PURE__ */ jsx16("span", { style: {
4255
4628
  backgroundColor: "#fff",
4256
4629
  color: colors.blue,
4257
4630
  fontSize: "0.75rem",
@@ -4262,7 +4635,7 @@ function BugBearPanel({
4262
4635
  ]
4263
4636
  }
4264
4637
  ),
4265
- !collapsed && /* @__PURE__ */ jsxs13("div", { style: {
4638
+ !collapsed && /* @__PURE__ */ jsxs15("div", { style: {
4266
4639
  width: PANEL_WIDTH,
4267
4640
  backgroundColor: colors.bg,
4268
4641
  borderRadius: 12,
@@ -4270,7 +4643,7 @@ function BugBearPanel({
4270
4643
  overflow: "hidden",
4271
4644
  boxShadow: "0 25px 50px -12px rgba(0,0,0,0.5)"
4272
4645
  }, children: [
4273
- /* @__PURE__ */ jsxs13(
4646
+ /* @__PURE__ */ jsxs15(
4274
4647
  "div",
4275
4648
  {
4276
4649
  "data-drag-handle": true,
@@ -4286,7 +4659,7 @@ function BugBearPanel({
4286
4659
  cursor: draggable ? isDragging ? "grabbing" : "grab" : "default"
4287
4660
  },
4288
4661
  children: [
4289
- /* @__PURE__ */ jsx14("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx14(
4662
+ /* @__PURE__ */ jsx16("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx16(
4290
4663
  "button",
4291
4664
  {
4292
4665
  onClick: pop,
@@ -4302,14 +4675,14 @@ function BugBearPanel({
4302
4675
  },
4303
4676
  children: "\u2190 Back"
4304
4677
  }
4305
- ) : /* @__PURE__ */ jsxs13(Fragment4, { children: [
4306
- /* @__PURE__ */ jsx14(BugBearIcon, { size: 28 }),
4307
- /* @__PURE__ */ jsxs13("div", { children: [
4308
- /* @__PURE__ */ jsxs13("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4309
- /* @__PURE__ */ jsx14("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
4310
- draggable && /* @__PURE__ */ jsx14("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
4678
+ ) : /* @__PURE__ */ jsxs15(Fragment4, { children: [
4679
+ /* @__PURE__ */ jsx16(BugBearIcon, { size: 28 }),
4680
+ /* @__PURE__ */ jsxs15("div", { children: [
4681
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4682
+ /* @__PURE__ */ jsx16("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
4683
+ draggable && /* @__PURE__ */ jsx16("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
4311
4684
  ] }),
4312
- testerInfo && /* @__PURE__ */ jsxs13(
4685
+ testerInfo && /* @__PURE__ */ jsxs15(
4313
4686
  "button",
4314
4687
  {
4315
4688
  onClick: () => push({ name: "PROFILE" }),
@@ -4327,13 +4700,13 @@ function BugBearPanel({
4327
4700
  },
4328
4701
  children: [
4329
4702
  testerInfo.name,
4330
- /* @__PURE__ */ jsx14("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4703
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4331
4704
  ]
4332
4705
  }
4333
4706
  )
4334
4707
  ] })
4335
4708
  ] }) }),
4336
- headerTitle ? /* @__PURE__ */ jsx14("span", { style: {
4709
+ headerTitle ? /* @__PURE__ */ jsx16("span", { style: {
4337
4710
  fontSize: "0.8125rem",
4338
4711
  fontWeight: 600,
4339
4712
  color: colors.textSecondary,
@@ -4343,7 +4716,7 @@ function BugBearPanel({
4343
4716
  textOverflow: "ellipsis",
4344
4717
  whiteSpace: "nowrap"
4345
4718
  }, children: headerTitle }) : null,
4346
- /* @__PURE__ */ jsx14(
4719
+ /* @__PURE__ */ jsx16(
4347
4720
  "button",
4348
4721
  {
4349
4722
  onClick: handleClose,
@@ -4367,13 +4740,13 @@ function BugBearPanel({
4367
4740
  ]
4368
4741
  }
4369
4742
  ),
4370
- /* @__PURE__ */ jsx14("div", { style: {
4743
+ /* @__PURE__ */ jsx16("div", { style: {
4371
4744
  padding: 16,
4372
4745
  maxHeight: 400,
4373
4746
  overflowY: "auto",
4374
4747
  backgroundColor: colors.bg,
4375
4748
  color: colors.textSecondary
4376
- }, children: isLoading ? /* @__PURE__ */ jsx14("div", { style: { padding: "60px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx14("div", { style: { color: colors.textMuted, fontSize: "0.875rem" }, children: "Loading..." }) }) : renderScreen() })
4749
+ }, children: isLoading ? /* @__PURE__ */ jsx16("div", { style: { padding: "60px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx16("div", { style: { color: colors.textMuted, fontSize: "0.875rem" }, children: "Loading..." }) }) : renderScreen() })
4377
4750
  ] })
4378
4751
  ]
4379
4752
  }
@@ -4385,7 +4758,7 @@ function BugBearPanel({
4385
4758
  // src/BugBearErrorBoundary.tsx
4386
4759
  import { Component } from "react";
4387
4760
  import { captureError, contextCapture as contextCapture2 } from "@bbearai/core";
4388
- import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4761
+ import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
4389
4762
  var BugBearErrorBoundary = class extends Component {
4390
4763
  constructor(props) {
4391
4764
  super(props);
@@ -4430,7 +4803,7 @@ var BugBearErrorBoundary = class extends Component {
4430
4803
  if (fallback) {
4431
4804
  return fallback;
4432
4805
  }
4433
- return /* @__PURE__ */ jsxs14(
4806
+ return /* @__PURE__ */ jsxs16(
4434
4807
  "div",
4435
4808
  {
4436
4809
  style: {
@@ -4442,13 +4815,13 @@ var BugBearErrorBoundary = class extends Component {
4442
4815
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
4443
4816
  },
4444
4817
  children: [
4445
- /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
4446
- /* @__PURE__ */ jsx15("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
4447
- /* @__PURE__ */ jsx15("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
4818
+ /* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
4819
+ /* @__PURE__ */ jsx17("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
4820
+ /* @__PURE__ */ jsx17("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
4448
4821
  ] }),
4449
- /* @__PURE__ */ jsx15("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
4450
- /* @__PURE__ */ jsxs14("div", { style: { display: "flex", gap: "8px" }, children: [
4451
- /* @__PURE__ */ jsx15(
4822
+ /* @__PURE__ */ jsx17("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
4823
+ /* @__PURE__ */ jsxs16("div", { style: { display: "flex", gap: "8px" }, children: [
4824
+ /* @__PURE__ */ jsx17(
4452
4825
  "button",
4453
4826
  {
4454
4827
  onClick: this.reset,
@@ -4465,7 +4838,7 @@ var BugBearErrorBoundary = class extends Component {
4465
4838
  children: "Try Again"
4466
4839
  }
4467
4840
  ),
4468
- /* @__PURE__ */ jsx15(
4841
+ /* @__PURE__ */ jsx17(
4469
4842
  "button",
4470
4843
  {
4471
4844
  onClick: () => window.location.reload(),
@@ -4483,7 +4856,7 @@ var BugBearErrorBoundary = class extends Component {
4483
4856
  }
4484
4857
  )
4485
4858
  ] }),
4486
- /* @__PURE__ */ jsx15("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4859
+ /* @__PURE__ */ jsx17("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4487
4860
  ]
4488
4861
  }
4489
4862
  );