@bbearai/react 0.4.2 → 0.4.4

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
@@ -214,6 +214,14 @@ function BugBearProvider({ config, children, enabled = true }) {
214
214
  initializeBugBear(newClient);
215
215
  }
216
216
  }, [enabled, config, initializeBugBear]);
217
+ useEffect(() => {
218
+ if (!client || !isTester || !isQAEnabled) return;
219
+ const interval = setInterval(() => {
220
+ refreshThreads();
221
+ refreshIssueCounts();
222
+ }, 3e4);
223
+ return () => clearInterval(interval);
224
+ }, [client, isTester, isQAEnabled, refreshThreads, refreshIssueCounts]);
217
225
  const currentAssignment = assignments.find(
218
226
  (a) => a.status === "in_progress"
219
227
  ) || assignments.find(
@@ -2536,18 +2544,72 @@ var styles = {
2536
2544
  };
2537
2545
 
2538
2546
  // src/widget/screens/ReportScreen.tsx
2539
- import { useState as useState6, useRef as useRef2 } from "react";
2540
- import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2547
+ import React6, { useState as useState6, useRef as useRef2 } from "react";
2548
+
2549
+ // src/widget/CategoryDropdown.tsx
2550
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2551
+ var categoryOptions = [
2552
+ { value: "ui_ux", label: "UI/UX", icon: "\u{1F3A8}" },
2553
+ { value: "functional", label: "Functional", icon: "\u2699\uFE0F" },
2554
+ { value: "crash", label: "Crash", icon: "\u{1F4A5}" },
2555
+ { value: "security", label: "Security", icon: "\u{1F510}" },
2556
+ { value: "other", label: "Other", icon: "\u{1F4DD}" }
2557
+ ];
2558
+ function CategoryDropdown({ value, onChange, optional = true, disabled = false }) {
2559
+ return /* @__PURE__ */ jsxs7(
2560
+ "select",
2561
+ {
2562
+ value: value || "",
2563
+ onChange: (e) => onChange(e.target.value ? e.target.value : null),
2564
+ disabled,
2565
+ style: {
2566
+ width: "100%",
2567
+ backgroundColor: disabled ? colors.bg : colors.card,
2568
+ border: `1px solid ${colors.border}`,
2569
+ borderRadius: 8,
2570
+ padding: "10px 12px",
2571
+ fontSize: 14,
2572
+ color: colors.textPrimary,
2573
+ cursor: disabled ? "not-allowed" : "pointer",
2574
+ opacity: disabled ? 0.5 : 1,
2575
+ appearance: "none",
2576
+ backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2371717a' d='M3 5l3 3 3-3'/%3E%3C/svg%3E")`,
2577
+ backgroundRepeat: "no-repeat",
2578
+ backgroundPosition: "right 12px center",
2579
+ paddingRight: 32
2580
+ },
2581
+ children: [
2582
+ /* @__PURE__ */ jsx8("option", { value: "", children: optional ? "Select category (optional)" : "Select category" }),
2583
+ categoryOptions.map(({ value: value2, label, icon }) => /* @__PURE__ */ jsxs7("option", { value: value2, children: [
2584
+ icon,
2585
+ " ",
2586
+ label
2587
+ ] }, value2))
2588
+ ]
2589
+ }
2590
+ );
2591
+ }
2592
+
2593
+ // src/widget/screens/ReportScreen.tsx
2594
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2541
2595
  function ReportScreen({ nav, prefill }) {
2542
2596
  const { client, refreshAssignments, uploadImage } = useBugBear();
2543
2597
  const images = useImageAttachments(uploadImage, 5, "screenshots");
2544
2598
  const [reportType, setReportType] = useState6(prefill?.type || "bug");
2545
2599
  const [severity, setSeverity] = useState6("medium");
2600
+ const [category, setCategory] = useState6(null);
2546
2601
  const [description, setDescription] = useState6("");
2547
2602
  const [affectedRoute, setAffectedRoute] = useState6("");
2548
2603
  const [submitting, setSubmitting] = useState6(false);
2549
2604
  const [error, setError] = useState6(null);
2550
2605
  const submittingRef = useRef2(false);
2606
+ React6.useEffect(() => {
2607
+ if (reportType === "feedback" || reportType === "suggestion") {
2608
+ setCategory("other");
2609
+ } else {
2610
+ setCategory(null);
2611
+ }
2612
+ }, [reportType]);
2551
2613
  const observedRoute = useRef2(
2552
2614
  typeof window !== "undefined" ? window.location.pathname : "unknown"
2553
2615
  );
@@ -2570,6 +2632,7 @@ function ReportScreen({ nav, prefill }) {
2570
2632
  type: reportType,
2571
2633
  description: description.trim(),
2572
2634
  severity: isBugType ? severity : void 0,
2635
+ category: category || void 0,
2573
2636
  screenshots: screenshotUrls.length > 0 ? screenshotUrls : void 0,
2574
2637
  assignmentId: prefill?.assignmentId,
2575
2638
  testCaseId: prefill?.testCaseId,
@@ -2603,17 +2666,17 @@ function ReportScreen({ nav, prefill }) {
2603
2666
  { sev: "medium", color: "#eab308" },
2604
2667
  { sev: "low", color: "#6b7280" }
2605
2668
  ];
2606
- return /* @__PURE__ */ jsx8("div", { children: isRetestFailure ? /* @__PURE__ */ jsxs7(Fragment3, { children: [
2607
- /* @__PURE__ */ jsxs7("div", { style: styles2.retestBanner, children: [
2608
- /* @__PURE__ */ jsx8("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
2609
- /* @__PURE__ */ jsxs7("div", { children: [
2610
- /* @__PURE__ */ jsx8("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
2611
- /* @__PURE__ */ jsx8("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
2669
+ return /* @__PURE__ */ jsx9("div", { children: isRetestFailure ? /* @__PURE__ */ jsxs8(Fragment3, { children: [
2670
+ /* @__PURE__ */ jsxs8("div", { style: styles2.retestBanner, children: [
2671
+ /* @__PURE__ */ jsx9("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
2672
+ /* @__PURE__ */ jsxs8("div", { children: [
2673
+ /* @__PURE__ */ jsx9("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
2674
+ /* @__PURE__ */ jsx9("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
2612
2675
  ] })
2613
2676
  ] }),
2614
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2615
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Severity" }),
2616
- /* @__PURE__ */ jsx8("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx8(
2677
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2678
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
2679
+ /* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
2617
2680
  "button",
2618
2681
  {
2619
2682
  onClick: () => setSeverity(sev),
@@ -2621,14 +2684,18 @@ function ReportScreen({ nav, prefill }) {
2621
2684
  ...styles2.sevButton,
2622
2685
  ...severity === sev ? { backgroundColor: `${color}30`, borderColor: color } : {}
2623
2686
  },
2624
- children: /* @__PURE__ */ jsx8("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
2687
+ children: /* @__PURE__ */ jsx9("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
2625
2688
  },
2626
2689
  sev
2627
2690
  )) })
2628
2691
  ] }),
2629
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2630
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What went wrong?" }),
2631
- /* @__PURE__ */ jsx8(
2692
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2693
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
2694
+ /* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
2695
+ ] }),
2696
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2697
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What went wrong?" }),
2698
+ /* @__PURE__ */ jsx9(
2632
2699
  "textarea",
2633
2700
  {
2634
2701
  style: styles2.descInput,
@@ -2639,7 +2706,7 @@ function ReportScreen({ nav, prefill }) {
2639
2706
  }
2640
2707
  )
2641
2708
  ] }),
2642
- /* @__PURE__ */ jsx8(
2709
+ /* @__PURE__ */ jsx9(
2643
2710
  ImagePickerButtons,
2644
2711
  {
2645
2712
  images: images.images,
@@ -2650,8 +2717,8 @@ function ReportScreen({ nav, prefill }) {
2650
2717
  label: "Attachments (optional)"
2651
2718
  }
2652
2719
  ),
2653
- error && /* @__PURE__ */ jsx8("div", { style: styles2.errorBanner, children: error }),
2654
- /* @__PURE__ */ jsx8(
2720
+ error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
2721
+ /* @__PURE__ */ jsx9(
2655
2722
  "button",
2656
2723
  {
2657
2724
  style: {
@@ -2664,9 +2731,9 @@ function ReportScreen({ nav, prefill }) {
2664
2731
  children: images.isUploading ? "Uploading images..." : submitting ? "Submitting..." : error ? "Retry" : "Submit Failed Retest"
2665
2732
  }
2666
2733
  )
2667
- ] }) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
2668
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What are you reporting?" }),
2669
- /* @__PURE__ */ jsx8("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ jsxs7(
2734
+ ] }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
2735
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What are you reporting?" }),
2736
+ /* @__PURE__ */ jsx9("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ jsxs8(
2670
2737
  "button",
2671
2738
  {
2672
2739
  onClick: () => setReportType(type),
@@ -2675,8 +2742,8 @@ function ReportScreen({ nav, prefill }) {
2675
2742
  ...reportType === type ? styles2.typeCardActive : {}
2676
2743
  },
2677
2744
  children: [
2678
- /* @__PURE__ */ jsx8("div", { style: styles2.typeIcon, children: icon }),
2679
- /* @__PURE__ */ jsx8(
2745
+ /* @__PURE__ */ jsx9("div", { style: styles2.typeIcon, children: icon }),
2746
+ /* @__PURE__ */ jsx9(
2680
2747
  "div",
2681
2748
  {
2682
2749
  style: {
@@ -2690,9 +2757,9 @@ function ReportScreen({ nav, prefill }) {
2690
2757
  },
2691
2758
  type
2692
2759
  )) }),
2693
- isBugType && /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2694
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Severity" }),
2695
- /* @__PURE__ */ jsx8("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx8(
2760
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2761
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
2762
+ /* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
2696
2763
  "button",
2697
2764
  {
2698
2765
  onClick: () => setSeverity(sev),
@@ -2703,7 +2770,7 @@ function ReportScreen({ nav, prefill }) {
2703
2770
  borderColor: color
2704
2771
  } : {}
2705
2772
  },
2706
- children: /* @__PURE__ */ jsx8(
2773
+ children: /* @__PURE__ */ jsx9(
2707
2774
  "span",
2708
2775
  {
2709
2776
  style: {
@@ -2717,9 +2784,13 @@ function ReportScreen({ nav, prefill }) {
2717
2784
  sev
2718
2785
  )) })
2719
2786
  ] }),
2720
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2721
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What happened?" }),
2722
- /* @__PURE__ */ jsx8(
2787
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2788
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
2789
+ /* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
2790
+ ] }),
2791
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2792
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What happened?" }),
2793
+ /* @__PURE__ */ jsx9(
2723
2794
  "textarea",
2724
2795
  {
2725
2796
  style: styles2.descInput,
@@ -2730,9 +2801,9 @@ function ReportScreen({ nav, prefill }) {
2730
2801
  }
2731
2802
  )
2732
2803
  ] }),
2733
- isBugType && /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2734
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Where did it happen?" }),
2735
- /* @__PURE__ */ jsx8(
2804
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2805
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Where did it happen?" }),
2806
+ /* @__PURE__ */ jsx9(
2736
2807
  "input",
2737
2808
  {
2738
2809
  style: styles2.routeInput,
@@ -2741,13 +2812,13 @@ function ReportScreen({ nav, prefill }) {
2741
2812
  placeholder: observedRoute.current
2742
2813
  }
2743
2814
  ),
2744
- /* @__PURE__ */ jsxs7("div", { style: styles2.routeHint, children: [
2815
+ /* @__PURE__ */ jsxs8("div", { style: styles2.routeHint, children: [
2745
2816
  "Leave blank to use current page (",
2746
2817
  observedRoute.current,
2747
2818
  ")"
2748
2819
  ] })
2749
2820
  ] }),
2750
- /* @__PURE__ */ jsx8(
2821
+ /* @__PURE__ */ jsx9(
2751
2822
  ImagePickerButtons,
2752
2823
  {
2753
2824
  images: images.images,
@@ -2758,8 +2829,8 @@ function ReportScreen({ nav, prefill }) {
2758
2829
  label: "Screenshots (optional)"
2759
2830
  }
2760
2831
  ),
2761
- error && /* @__PURE__ */ jsx8("div", { style: styles2.errorBanner, children: error }),
2762
- /* @__PURE__ */ jsx8(
2832
+ error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
2833
+ /* @__PURE__ */ jsx9(
2763
2834
  "button",
2764
2835
  {
2765
2836
  style: {
@@ -2924,16 +2995,16 @@ var styles2 = {
2924
2995
 
2925
2996
  // src/widget/screens/ReportSuccessScreen.tsx
2926
2997
  import { useEffect as useEffect4 } from "react";
2927
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2998
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
2928
2999
  function ReportSuccessScreen({ nav }) {
2929
3000
  useEffect4(() => {
2930
3001
  const timer = setTimeout(() => nav.reset(), 2e3);
2931
3002
  return () => clearTimeout(timer);
2932
3003
  }, [nav]);
2933
- return /* @__PURE__ */ jsxs8("div", { style: styles3.container, children: [
2934
- /* @__PURE__ */ jsx9("div", { style: styles3.emoji, children: "\u{1F389}" }),
2935
- /* @__PURE__ */ jsx9("div", { style: styles3.title, children: "Report submitted!" }),
2936
- /* @__PURE__ */ jsx9("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
3004
+ return /* @__PURE__ */ jsxs9("div", { style: styles3.container, children: [
3005
+ /* @__PURE__ */ jsx10("div", { style: styles3.emoji, children: "\u{1F389}" }),
3006
+ /* @__PURE__ */ jsx10("div", { style: styles3.title, children: "Report submitted!" }),
3007
+ /* @__PURE__ */ jsx10("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
2937
3008
  ] });
2938
3009
  }
2939
3010
  var styles3 = {
@@ -2962,11 +3033,11 @@ var styles3 = {
2962
3033
  };
2963
3034
 
2964
3035
  // src/widget/screens/MessageListScreen.tsx
2965
- import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
3036
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
2966
3037
  function MessageListScreen({ nav }) {
2967
3038
  const { threads, unreadCount, refreshThreads } = useBugBear();
2968
- return /* @__PURE__ */ jsxs9("div", { children: [
2969
- /* @__PURE__ */ jsx10(
3039
+ return /* @__PURE__ */ jsxs10("div", { children: [
3040
+ /* @__PURE__ */ jsx11(
2970
3041
  "button",
2971
3042
  {
2972
3043
  style: {
@@ -2985,7 +3056,7 @@ function MessageListScreen({ nav }) {
2985
3056
  children: "\u2709\uFE0F New Message"
2986
3057
  }
2987
3058
  ),
2988
- threads.length === 0 ? /* @__PURE__ */ jsxs9(
3059
+ threads.length === 0 ? /* @__PURE__ */ jsxs10(
2989
3060
  "div",
2990
3061
  {
2991
3062
  style: {
@@ -2996,8 +3067,8 @@ function MessageListScreen({ nav }) {
2996
3067
  paddingBottom: 40
2997
3068
  },
2998
3069
  children: [
2999
- /* @__PURE__ */ jsx10("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
3000
- /* @__PURE__ */ jsx10(
3070
+ /* @__PURE__ */ jsx11("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
3071
+ /* @__PURE__ */ jsx11(
3001
3072
  "span",
3002
3073
  {
3003
3074
  style: {
@@ -3009,7 +3080,7 @@ function MessageListScreen({ nav }) {
3009
3080
  children: "No messages yet"
3010
3081
  }
3011
3082
  ),
3012
- /* @__PURE__ */ jsx10(
3083
+ /* @__PURE__ */ jsx11(
3013
3084
  "span",
3014
3085
  {
3015
3086
  style: {
@@ -3022,7 +3093,7 @@ function MessageListScreen({ nav }) {
3022
3093
  )
3023
3094
  ]
3024
3095
  }
3025
- ) : /* @__PURE__ */ jsx10("div", { children: threads.map((thread) => /* @__PURE__ */ jsxs9(
3096
+ ) : /* @__PURE__ */ jsx11("div", { children: threads.map((thread) => /* @__PURE__ */ jsxs10(
3026
3097
  "button",
3027
3098
  {
3028
3099
  style: {
@@ -3040,8 +3111,8 @@ function MessageListScreen({ nav }) {
3040
3111
  },
3041
3112
  onClick: () => nav.push({ name: "THREAD_DETAIL", thread }),
3042
3113
  children: [
3043
- /* @__PURE__ */ jsxs9("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
3044
- /* @__PURE__ */ jsx10(
3114
+ /* @__PURE__ */ jsxs10("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
3115
+ /* @__PURE__ */ jsx11(
3045
3116
  "span",
3046
3117
  {
3047
3118
  style: {
@@ -3053,7 +3124,7 @@ function MessageListScreen({ nav }) {
3053
3124
  children: getThreadTypeIcon(thread.threadType)
3054
3125
  }
3055
3126
  ),
3056
- /* @__PURE__ */ jsxs9(
3127
+ /* @__PURE__ */ jsxs10(
3057
3128
  "div",
3058
3129
  {
3059
3130
  style: {
@@ -3061,7 +3132,7 @@ function MessageListScreen({ nav }) {
3061
3132
  minWidth: 0
3062
3133
  },
3063
3134
  children: [
3064
- /* @__PURE__ */ jsxs9(
3135
+ /* @__PURE__ */ jsxs10(
3065
3136
  "div",
3066
3137
  {
3067
3138
  style: {
@@ -3070,8 +3141,8 @@ function MessageListScreen({ nav }) {
3070
3141
  gap: 4
3071
3142
  },
3072
3143
  children: [
3073
- thread.isPinned && /* @__PURE__ */ jsx10("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
3074
- /* @__PURE__ */ jsx10(
3144
+ thread.isPinned && /* @__PURE__ */ jsx11("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
3145
+ /* @__PURE__ */ jsx11(
3075
3146
  "span",
3076
3147
  {
3077
3148
  style: {
@@ -3088,7 +3159,7 @@ function MessageListScreen({ nav }) {
3088
3159
  ]
3089
3160
  }
3090
3161
  ),
3091
- thread.lastMessage && /* @__PURE__ */ jsxs9(
3162
+ thread.lastMessage && /* @__PURE__ */ jsxs10(
3092
3163
  "span",
3093
3164
  {
3094
3165
  style: {
@@ -3112,7 +3183,7 @@ function MessageListScreen({ nav }) {
3112
3183
  }
3113
3184
  )
3114
3185
  ] }),
3115
- /* @__PURE__ */ jsxs9(
3186
+ /* @__PURE__ */ jsxs10(
3116
3187
  "div",
3117
3188
  {
3118
3189
  style: {
@@ -3124,8 +3195,8 @@ function MessageListScreen({ nav }) {
3124
3195
  flexShrink: 0
3125
3196
  },
3126
3197
  children: [
3127
- /* @__PURE__ */ jsx10("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
3128
- thread.unreadCount > 0 && /* @__PURE__ */ jsx10(
3198
+ /* @__PURE__ */ jsx11("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
3199
+ thread.unreadCount > 0 && /* @__PURE__ */ jsx11(
3129
3200
  "span",
3130
3201
  {
3131
3202
  style: {
@@ -3152,7 +3223,7 @@ function MessageListScreen({ nav }) {
3152
3223
  },
3153
3224
  thread.id
3154
3225
  )) }),
3155
- /* @__PURE__ */ jsxs9(
3226
+ /* @__PURE__ */ jsxs10(
3156
3227
  "div",
3157
3228
  {
3158
3229
  style: {
@@ -3164,7 +3235,7 @@ function MessageListScreen({ nav }) {
3164
3235
  paddingRight: 4
3165
3236
  },
3166
3237
  children: [
3167
- /* @__PURE__ */ jsxs9("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
3238
+ /* @__PURE__ */ jsxs10("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
3168
3239
  threads.length,
3169
3240
  " thread",
3170
3241
  threads.length !== 1 ? "s" : "",
@@ -3173,7 +3244,7 @@ function MessageListScreen({ nav }) {
3173
3244
  unreadCount,
3174
3245
  " unread"
3175
3246
  ] }),
3176
- /* @__PURE__ */ jsx10(
3247
+ /* @__PURE__ */ jsx11(
3177
3248
  "button",
3178
3249
  {
3179
3250
  style: {
@@ -3196,7 +3267,7 @@ function MessageListScreen({ nav }) {
3196
3267
 
3197
3268
  // src/widget/screens/ThreadDetailScreen.tsx
3198
3269
  import { useState as useState7, useEffect as useEffect5 } from "react";
3199
- import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
3270
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
3200
3271
  var inputStyle = {
3201
3272
  backgroundColor: "#27272a",
3202
3273
  border: "1px solid #3f3f46",
@@ -3255,8 +3326,8 @@ function ThreadDetailScreen({
3255
3326
  handleSend();
3256
3327
  }
3257
3328
  };
3258
- return /* @__PURE__ */ jsxs10("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
3259
- /* @__PURE__ */ jsxs10(
3329
+ return /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
3330
+ /* @__PURE__ */ jsxs11(
3260
3331
  "div",
3261
3332
  {
3262
3333
  style: {
@@ -3268,8 +3339,8 @@ function ThreadDetailScreen({
3268
3339
  borderBottom: `1px solid ${colors.border}`
3269
3340
  },
3270
3341
  children: [
3271
- /* @__PURE__ */ jsx11("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
3272
- /* @__PURE__ */ jsx11(
3342
+ /* @__PURE__ */ jsx12("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
3343
+ /* @__PURE__ */ jsx12(
3273
3344
  "span",
3274
3345
  {
3275
3346
  style: {
@@ -3289,7 +3360,7 @@ function ThreadDetailScreen({
3289
3360
  ]
3290
3361
  }
3291
3362
  ),
3292
- loading ? /* @__PURE__ */ jsx11(
3363
+ loading ? /* @__PURE__ */ jsx12(
3293
3364
  "div",
3294
3365
  {
3295
3366
  style: {
@@ -3297,11 +3368,11 @@ function ThreadDetailScreen({
3297
3368
  paddingBottom: 40,
3298
3369
  textAlign: "center"
3299
3370
  },
3300
- children: /* @__PURE__ */ jsx11("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
3371
+ children: /* @__PURE__ */ jsx12("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
3301
3372
  }
3302
- ) : /* @__PURE__ */ jsx11("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
3373
+ ) : /* @__PURE__ */ jsx12("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
3303
3374
  const isTester = msg.senderType === "tester";
3304
- return /* @__PURE__ */ jsxs10(
3375
+ return /* @__PURE__ */ jsxs11(
3305
3376
  "div",
3306
3377
  {
3307
3378
  style: {
@@ -3317,7 +3388,7 @@ function ThreadDetailScreen({
3317
3388
  borderBottomRightRadius: isTester ? 4 : 16
3318
3389
  },
3319
3390
  children: [
3320
- /* @__PURE__ */ jsx11(
3391
+ /* @__PURE__ */ jsx12(
3321
3392
  "span",
3322
3393
  {
3323
3394
  style: {
@@ -3330,7 +3401,7 @@ function ThreadDetailScreen({
3330
3401
  children: isTester ? "You" : msg.senderName
3331
3402
  }
3332
3403
  ),
3333
- /* @__PURE__ */ jsx11(
3404
+ /* @__PURE__ */ jsx12(
3334
3405
  "span",
3335
3406
  {
3336
3407
  style: {
@@ -3344,7 +3415,7 @@ function ThreadDetailScreen({
3344
3415
  children: msg.content
3345
3416
  }
3346
3417
  ),
3347
- msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */ jsx11("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: msg.attachments.filter((a) => a.type === "image" && typeof a.url === "string" && /^https?:\/\//i.test(a.url)).map((att, idx) => /* @__PURE__ */ jsx11(
3418
+ msg.attachments && msg.attachments.length > 0 && /* @__PURE__ */ jsx12("div", { style: { marginTop: 8, display: "flex", flexDirection: "column", gap: 6 }, children: msg.attachments.filter((a) => a.type === "image" && typeof a.url === "string" && /^https?:\/\//i.test(a.url)).map((att, idx) => /* @__PURE__ */ jsx12(
3348
3419
  "img",
3349
3420
  {
3350
3421
  src: att.url,
@@ -3353,7 +3424,7 @@ function ThreadDetailScreen({
3353
3424
  },
3354
3425
  idx
3355
3426
  )) }),
3356
- /* @__PURE__ */ jsx11(
3427
+ /* @__PURE__ */ jsx12(
3357
3428
  "span",
3358
3429
  {
3359
3430
  style: {
@@ -3371,7 +3442,7 @@ function ThreadDetailScreen({
3371
3442
  msg.id
3372
3443
  );
3373
3444
  }) }),
3374
- sendError && /* @__PURE__ */ jsx11(
3445
+ sendError && /* @__PURE__ */ jsx12(
3375
3446
  "div",
3376
3447
  {
3377
3448
  style: {
@@ -3383,7 +3454,7 @@ function ThreadDetailScreen({
3383
3454
  borderRadius: 8,
3384
3455
  marginBottom: 8
3385
3456
  },
3386
- children: /* @__PURE__ */ jsx11(
3457
+ children: /* @__PURE__ */ jsx12(
3387
3458
  "span",
3388
3459
  {
3389
3460
  style: {
@@ -3397,8 +3468,8 @@ function ThreadDetailScreen({
3397
3468
  )
3398
3469
  }
3399
3470
  ),
3400
- replyImages.images.length > 0 && /* @__PURE__ */ jsx11("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ jsx11(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
3401
- /* @__PURE__ */ jsxs10(
3471
+ replyImages.images.length > 0 && /* @__PURE__ */ jsx12("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ jsx12(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
3472
+ /* @__PURE__ */ jsxs11(
3402
3473
  "div",
3403
3474
  {
3404
3475
  style: {
@@ -3409,7 +3480,7 @@ function ThreadDetailScreen({
3409
3480
  gap: 8
3410
3481
  },
3411
3482
  children: [
3412
- /* @__PURE__ */ jsx11(
3483
+ /* @__PURE__ */ jsx12(
3413
3484
  "button",
3414
3485
  {
3415
3486
  type: "button",
@@ -3428,7 +3499,7 @@ function ThreadDetailScreen({
3428
3499
  children: "\u{1F4CE}"
3429
3500
  }
3430
3501
  ),
3431
- /* @__PURE__ */ jsx11(
3502
+ /* @__PURE__ */ jsx12(
3432
3503
  "input",
3433
3504
  {
3434
3505
  type: "text",
@@ -3444,7 +3515,7 @@ function ThreadDetailScreen({
3444
3515
  }
3445
3516
  }
3446
3517
  ),
3447
- /* @__PURE__ */ jsx11(
3518
+ /* @__PURE__ */ jsx12(
3448
3519
  "button",
3449
3520
  {
3450
3521
  style: {
@@ -3472,7 +3543,7 @@ function ThreadDetailScreen({
3472
3543
 
3473
3544
  // src/widget/screens/ComposeMessageScreen.tsx
3474
3545
  import { useState as useState8 } from "react";
3475
- import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
3546
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
3476
3547
  var inputStyle2 = {
3477
3548
  backgroundColor: "#27272a",
3478
3549
  border: "1px solid #3f3f46",
@@ -3503,9 +3574,9 @@ function ComposeMessageScreen({ nav }) {
3503
3574
  nav.pop();
3504
3575
  }
3505
3576
  };
3506
- return /* @__PURE__ */ jsxs11("div", { children: [
3507
- /* @__PURE__ */ jsxs11("div", { style: { marginBottom: 20 }, children: [
3508
- /* @__PURE__ */ jsx12(
3577
+ return /* @__PURE__ */ jsxs12("div", { children: [
3578
+ /* @__PURE__ */ jsxs12("div", { style: { marginBottom: 20 }, children: [
3579
+ /* @__PURE__ */ jsx13(
3509
3580
  "div",
3510
3581
  {
3511
3582
  style: {
@@ -3517,9 +3588,9 @@ function ComposeMessageScreen({ nav }) {
3517
3588
  children: "New Message"
3518
3589
  }
3519
3590
  ),
3520
- /* @__PURE__ */ jsx12("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
3591
+ /* @__PURE__ */ jsx13("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
3521
3592
  ] }),
3522
- /* @__PURE__ */ jsxs11(
3593
+ /* @__PURE__ */ jsxs12(
3523
3594
  "div",
3524
3595
  {
3525
3596
  style: {
@@ -3529,7 +3600,7 @@ function ComposeMessageScreen({ nav }) {
3529
3600
  border: `1px solid ${colors.border}`
3530
3601
  },
3531
3602
  children: [
3532
- /* @__PURE__ */ jsx12(
3603
+ /* @__PURE__ */ jsx13(
3533
3604
  "label",
3534
3605
  {
3535
3606
  style: {
@@ -3542,7 +3613,7 @@ function ComposeMessageScreen({ nav }) {
3542
3613
  children: "Subject"
3543
3614
  }
3544
3615
  ),
3545
- /* @__PURE__ */ jsx12(
3616
+ /* @__PURE__ */ jsx13(
3546
3617
  "input",
3547
3618
  {
3548
3619
  type: "text",
@@ -3557,7 +3628,7 @@ function ComposeMessageScreen({ nav }) {
3557
3628
  }
3558
3629
  }
3559
3630
  ),
3560
- /* @__PURE__ */ jsx12(
3631
+ /* @__PURE__ */ jsx13(
3561
3632
  "label",
3562
3633
  {
3563
3634
  style: {
@@ -3571,7 +3642,7 @@ function ComposeMessageScreen({ nav }) {
3571
3642
  children: "Message"
3572
3643
  }
3573
3644
  ),
3574
- /* @__PURE__ */ jsx12(
3645
+ /* @__PURE__ */ jsx13(
3575
3646
  "textarea",
3576
3647
  {
3577
3648
  value: message,
@@ -3590,7 +3661,7 @@ function ComposeMessageScreen({ nav }) {
3590
3661
  }
3591
3662
  }
3592
3663
  ),
3593
- /* @__PURE__ */ jsx12(
3664
+ /* @__PURE__ */ jsx13(
3594
3665
  ImagePickerButtons,
3595
3666
  {
3596
3667
  images: images.images,
@@ -3601,7 +3672,7 @@ function ComposeMessageScreen({ nav }) {
3601
3672
  label: "Attachments (optional)"
3602
3673
  }
3603
3674
  ),
3604
- /* @__PURE__ */ jsx12(
3675
+ /* @__PURE__ */ jsx13(
3605
3676
  "button",
3606
3677
  {
3607
3678
  style: {
@@ -3630,7 +3701,7 @@ function ComposeMessageScreen({ nav }) {
3630
3701
 
3631
3702
  // src/widget/screens/ProfileScreen.tsx
3632
3703
  import { useState as useState9, useEffect as useEffect6 } from "react";
3633
- import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
3704
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
3634
3705
  function ProfileScreen({ nav }) {
3635
3706
  const { testerInfo, assignments, updateTesterProfile, refreshTesterInfo } = useBugBear();
3636
3707
  const [editing, setEditing] = useState9(false);
@@ -3676,22 +3747,22 @@ function ProfileScreen({ nav }) {
3676
3747
  }
3677
3748
  };
3678
3749
  if (saved) {
3679
- return /* @__PURE__ */ jsxs12("div", { style: styles4.emptyState, children: [
3680
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyEmoji, children: "\u2705" }),
3681
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyTitle, children: "Profile saved!" })
3750
+ return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
3751
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u2705" }),
3752
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "Profile saved!" })
3682
3753
  ] });
3683
3754
  }
3684
3755
  if (!testerInfo) {
3685
- return /* @__PURE__ */ jsxs12("div", { style: styles4.emptyState, children: [
3686
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
3687
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyTitle, children: "No profile found" })
3756
+ return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
3757
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
3758
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "No profile found" })
3688
3759
  ] });
3689
3760
  }
3690
3761
  if (editing) {
3691
- return /* @__PURE__ */ jsxs12("div", { children: [
3692
- /* @__PURE__ */ jsxs12("div", { style: styles4.editHeader, children: [
3693
- /* @__PURE__ */ jsx13("span", { style: styles4.editTitle, children: "Edit Profile" }),
3694
- /* @__PURE__ */ jsx13(
3762
+ return /* @__PURE__ */ jsxs13("div", { children: [
3763
+ /* @__PURE__ */ jsxs13("div", { style: styles4.editHeader, children: [
3764
+ /* @__PURE__ */ jsx14("span", { style: styles4.editTitle, children: "Edit Profile" }),
3765
+ /* @__PURE__ */ jsx14(
3695
3766
  "button",
3696
3767
  {
3697
3768
  style: styles4.cancelButton,
@@ -3703,9 +3774,9 @@ function ProfileScreen({ nav }) {
3703
3774
  }
3704
3775
  )
3705
3776
  ] }),
3706
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3707
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Name" }),
3708
- /* @__PURE__ */ jsx13(
3777
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3778
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Name" }),
3779
+ /* @__PURE__ */ jsx14(
3709
3780
  "input",
3710
3781
  {
3711
3782
  style: styles4.input,
@@ -3715,15 +3786,15 @@ function ProfileScreen({ nav }) {
3715
3786
  }
3716
3787
  )
3717
3788
  ] }),
3718
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3719
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Primary Email" }),
3720
- /* @__PURE__ */ jsx13("span", { style: styles4.emailFixed, children: testerInfo.email })
3789
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3790
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Primary Email" }),
3791
+ /* @__PURE__ */ jsx14("span", { style: styles4.emailFixed, children: testerInfo.email })
3721
3792
  ] }),
3722
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3723
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Additional Emails" }),
3724
- additionalEmails.map((email) => /* @__PURE__ */ jsxs12("div", { style: styles4.emailRow, children: [
3725
- /* @__PURE__ */ jsx13("span", { style: styles4.emailText, children: email }),
3726
- /* @__PURE__ */ jsx13(
3793
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3794
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Additional Emails" }),
3795
+ additionalEmails.map((email) => /* @__PURE__ */ jsxs13("div", { style: styles4.emailRow, children: [
3796
+ /* @__PURE__ */ jsx14("span", { style: styles4.emailText, children: email }),
3797
+ /* @__PURE__ */ jsx14(
3727
3798
  "button",
3728
3799
  {
3729
3800
  style: styles4.removeEmailButton,
@@ -3732,8 +3803,8 @@ function ProfileScreen({ nav }) {
3732
3803
  }
3733
3804
  )
3734
3805
  ] }, email)),
3735
- /* @__PURE__ */ jsxs12("div", { style: styles4.addEmailRow, children: [
3736
- /* @__PURE__ */ jsx13(
3806
+ /* @__PURE__ */ jsxs13("div", { style: styles4.addEmailRow, children: [
3807
+ /* @__PURE__ */ jsx14(
3737
3808
  "input",
3738
3809
  {
3739
3810
  style: { ...styles4.input, flex: 1, marginRight: 8 },
@@ -3746,18 +3817,18 @@ function ProfileScreen({ nav }) {
3746
3817
  }
3747
3818
  }
3748
3819
  ),
3749
- /* @__PURE__ */ jsx13("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
3820
+ /* @__PURE__ */ jsx14("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
3750
3821
  ] })
3751
3822
  ] }),
3752
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3753
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Testing Platforms" }),
3754
- /* @__PURE__ */ jsx13("div", { style: styles4.platformRow, children: [
3823
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3824
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Testing Platforms" }),
3825
+ /* @__PURE__ */ jsx14("div", { style: styles4.platformRow, children: [
3755
3826
  { key: "ios", label: "\u{1F4F1} iOS" },
3756
3827
  { key: "android", label: "\u{1F916} Android" },
3757
3828
  { key: "web", label: "\u{1F310} Web" }
3758
3829
  ].map(({ key, label }) => {
3759
3830
  const isActive = platforms.includes(key);
3760
- return /* @__PURE__ */ jsx13(
3831
+ return /* @__PURE__ */ jsx14(
3761
3832
  "button",
3762
3833
  {
3763
3834
  style: {
@@ -3767,13 +3838,13 @@ function ProfileScreen({ nav }) {
3767
3838
  onClick: () => setPlatforms(
3768
3839
  (prev) => prev.includes(key) ? prev.filter((p) => p !== key) : [...prev, key]
3769
3840
  ),
3770
- children: /* @__PURE__ */ jsx13("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
3841
+ children: /* @__PURE__ */ jsx14("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
3771
3842
  },
3772
3843
  key
3773
3844
  );
3774
3845
  }) })
3775
3846
  ] }),
3776
- /* @__PURE__ */ jsx13(
3847
+ /* @__PURE__ */ jsx14(
3777
3848
  "button",
3778
3849
  {
3779
3850
  style: { ...styles4.primaryButton, marginTop: 20 },
@@ -3784,45 +3855,45 @@ function ProfileScreen({ nav }) {
3784
3855
  )
3785
3856
  ] });
3786
3857
  }
3787
- return /* @__PURE__ */ jsxs12("div", { children: [
3788
- /* @__PURE__ */ jsxs12("div", { style: styles4.profileCard, children: [
3789
- /* @__PURE__ */ jsx13("div", { style: styles4.avatar, children: /* @__PURE__ */ jsx13("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
3790
- /* @__PURE__ */ jsx13("span", { style: styles4.profileName, children: testerInfo.name }),
3791
- /* @__PURE__ */ jsx13("span", { style: styles4.profileEmail, children: testerInfo.email })
3858
+ return /* @__PURE__ */ jsxs13("div", { children: [
3859
+ /* @__PURE__ */ jsxs13("div", { style: styles4.profileCard, children: [
3860
+ /* @__PURE__ */ jsx14("div", { style: styles4.avatar, children: /* @__PURE__ */ jsx14("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
3861
+ /* @__PURE__ */ jsx14("span", { style: styles4.profileName, children: testerInfo.name }),
3862
+ /* @__PURE__ */ jsx14("span", { style: styles4.profileEmail, children: testerInfo.email })
3792
3863
  ] }),
3793
- /* @__PURE__ */ jsxs12("div", { style: styles4.statsRow, children: [
3794
- /* @__PURE__ */ jsxs12("div", { style: styles4.statItem, children: [
3795
- /* @__PURE__ */ jsx13("span", { style: styles4.statNumber, children: completedCount }),
3796
- /* @__PURE__ */ jsx13("span", { style: styles4.statLabel, children: "Completed" })
3864
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statsRow, children: [
3865
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
3866
+ /* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: completedCount }),
3867
+ /* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Completed" })
3797
3868
  ] }),
3798
- /* @__PURE__ */ jsx13("div", { style: styles4.statDivider }),
3799
- /* @__PURE__ */ jsxs12("div", { style: styles4.statItem, children: [
3800
- /* @__PURE__ */ jsx13("span", { style: styles4.statNumber, children: assignments.length }),
3801
- /* @__PURE__ */ jsx13("span", { style: styles4.statLabel, children: "Total Assigned" })
3869
+ /* @__PURE__ */ jsx14("div", { style: styles4.statDivider }),
3870
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
3871
+ /* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: assignments.length }),
3872
+ /* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Total Assigned" })
3802
3873
  ] })
3803
3874
  ] }),
3804
- /* @__PURE__ */ jsx13(
3875
+ /* @__PURE__ */ jsx14(
3805
3876
  "button",
3806
3877
  {
3807
3878
  style: styles4.detailsToggle,
3808
3879
  onClick: () => setShowDetails(!showDetails),
3809
- children: /* @__PURE__ */ jsxs12("span", { style: styles4.detailsToggleText, children: [
3880
+ children: /* @__PURE__ */ jsxs13("span", { style: styles4.detailsToggleText, children: [
3810
3881
  showDetails ? "\u25BC" : "\u25B6",
3811
3882
  " Details"
3812
3883
  ] })
3813
3884
  }
3814
3885
  ),
3815
- showDetails && /* @__PURE__ */ jsxs12("div", { style: styles4.detailsSection, children: [
3816
- additionalEmails.length > 0 && /* @__PURE__ */ jsxs12("div", { style: styles4.detailBlock, children: [
3817
- /* @__PURE__ */ jsx13("span", { style: styles4.detailLabel, children: "Additional Emails" }),
3818
- additionalEmails.map((e) => /* @__PURE__ */ jsx13("span", { style: styles4.detailValue, children: e }, e))
3886
+ showDetails && /* @__PURE__ */ jsxs13("div", { style: styles4.detailsSection, children: [
3887
+ additionalEmails.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
3888
+ /* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Additional Emails" }),
3889
+ additionalEmails.map((e) => /* @__PURE__ */ jsx14("span", { style: styles4.detailValue, children: e }, e))
3819
3890
  ] }),
3820
- platforms.length > 0 && /* @__PURE__ */ jsxs12("div", { style: styles4.detailBlock, children: [
3821
- /* @__PURE__ */ jsx13("span", { style: styles4.detailLabel, children: "Platforms" }),
3822
- /* @__PURE__ */ jsx13("div", { style: styles4.platformTags, children: platforms.map((p) => /* @__PURE__ */ jsx13("span", { style: styles4.platformTag, children: /* @__PURE__ */ jsx13("span", { style: styles4.platformTagText, children: p === "ios" ? "\u{1F4F1} iOS" : p === "android" ? "\u{1F916} Android" : "\u{1F310} Web" }) }, p)) })
3891
+ platforms.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
3892
+ /* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Platforms" }),
3893
+ /* @__PURE__ */ jsx14("div", { style: styles4.platformTags, children: platforms.map((p) => /* @__PURE__ */ jsx14("span", { style: styles4.platformTag, children: /* @__PURE__ */ jsx14("span", { style: styles4.platformTagText, children: p === "ios" ? "\u{1F4F1} iOS" : p === "android" ? "\u{1F916} Android" : "\u{1F310} Web" }) }, p)) })
3823
3894
  ] })
3824
3895
  ] }),
3825
- /* @__PURE__ */ jsx13(
3896
+ /* @__PURE__ */ jsx14(
3826
3897
  "button",
3827
3898
  {
3828
3899
  style: { ...styles4.primaryButton, marginTop: 20 },
@@ -4106,7 +4177,7 @@ var styles4 = {
4106
4177
 
4107
4178
  // src/widget/screens/IssueListScreen.tsx
4108
4179
  import { useState as useState10, useEffect as useEffect7 } from "react";
4109
- import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
4180
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4110
4181
  var CATEGORY_CONFIG = {
4111
4182
  open: { label: "Open Issues", accent: "#f97316", emptyIcon: "\u2705", emptyText: "No open issues" },
4112
4183
  done: { label: "Done", accent: "#22c55e", emptyIcon: "\u{1F389}", emptyText: "No completed issues yet" },
@@ -4139,15 +4210,15 @@ function IssueListScreen({ nav, category }) {
4139
4210
  };
4140
4211
  }, [client, category]);
4141
4212
  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..." }) });
4213
+ return /* @__PURE__ */ jsx15("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
4143
4214
  }
4144
4215
  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 })
4216
+ return /* @__PURE__ */ jsxs14("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
4217
+ /* @__PURE__ */ jsx15("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
4218
+ /* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
4148
4219
  ] });
4149
4220
  }
4150
- return /* @__PURE__ */ jsx14("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs13(
4221
+ return /* @__PURE__ */ jsx15("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs14(
4151
4222
  "div",
4152
4223
  {
4153
4224
  role: "button",
@@ -4166,8 +4237,8 @@ function IssueListScreen({ nav, category }) {
4166
4237
  userSelect: "none"
4167
4238
  },
4168
4239
  children: [
4169
- /* @__PURE__ */ jsxs13("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
4170
- issue.severity && /* @__PURE__ */ jsx14(
4240
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
4241
+ issue.severity && /* @__PURE__ */ jsx15(
4171
4242
  "span",
4172
4243
  {
4173
4244
  style: {
@@ -4180,7 +4251,7 @@ function IssueListScreen({ nav, category }) {
4180
4251
  }
4181
4252
  }
4182
4253
  ),
4183
- /* @__PURE__ */ jsx14("span", { style: {
4254
+ /* @__PURE__ */ jsx15("span", { style: {
4184
4255
  fontSize: 13,
4185
4256
  fontWeight: 600,
4186
4257
  color: colors.textPrimary,
@@ -4190,11 +4261,11 @@ function IssueListScreen({ nav, category }) {
4190
4261
  whiteSpace: "nowrap"
4191
4262
  }, children: issue.title })
4192
4263
  ] }),
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) })
4264
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
4265
+ issue.route && /* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
4266
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
4196
4267
  ] }),
4197
- category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs13("div", { style: {
4268
+ category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
4198
4269
  display: "inline-flex",
4199
4270
  alignItems: "center",
4200
4271
  gap: 4,
@@ -4210,7 +4281,7 @@ function IssueListScreen({ nav, category }) {
4210
4281
  "\u2714 Verified by ",
4211
4282
  issue.verifiedByName
4212
4283
  ] }),
4213
- category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs13("div", { style: {
4284
+ category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
4214
4285
  display: "inline-flex",
4215
4286
  alignItems: "center",
4216
4287
  gap: 4,
@@ -4237,7 +4308,7 @@ function IssueListScreen({ nav, category }) {
4237
4308
  }
4238
4309
 
4239
4310
  // src/widget/screens/IssueDetailScreen.tsx
4240
- import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4311
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4241
4312
  var STATUS_LABELS = {
4242
4313
  new: { label: "New", bg: "#1e3a5f", color: "#60a5fa" },
4243
4314
  triaging: { label: "Triaging", bg: "#1e3a5f", color: "#60a5fa" },
@@ -4261,9 +4332,9 @@ var SEVERITY_CONFIG = {
4261
4332
  function IssueDetailScreen({ nav, issue }) {
4262
4333
  const statusConfig = STATUS_LABELS[issue.status] || { label: issue.status, bg: "#27272a", color: "#a1a1aa" };
4263
4334
  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: {
4335
+ return /* @__PURE__ */ jsxs15("div", { children: [
4336
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
4337
+ /* @__PURE__ */ jsx16("span", { style: {
4267
4338
  backgroundColor: statusConfig.bg,
4268
4339
  color: statusConfig.color,
4269
4340
  fontSize: 11,
@@ -4271,7 +4342,7 @@ function IssueDetailScreen({ nav, issue }) {
4271
4342
  padding: "3px 10px",
4272
4343
  borderRadius: 6
4273
4344
  }, children: statusConfig.label }),
4274
- severityConfig && /* @__PURE__ */ jsx15("span", { style: {
4345
+ severityConfig && /* @__PURE__ */ jsx16("span", { style: {
4275
4346
  backgroundColor: severityConfig.bg,
4276
4347
  color: severityConfig.color,
4277
4348
  fontSize: 11,
@@ -4280,9 +4351,9 @@ function IssueDetailScreen({ nav, issue }) {
4280
4351
  borderRadius: 6
4281
4352
  }, children: severityConfig.label })
4282
4353
  ] }),
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: {
4354
+ /* @__PURE__ */ jsx16("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
4355
+ issue.route && /* @__PURE__ */ jsx16("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
4356
+ issue.description && /* @__PURE__ */ jsx16("div", { style: {
4286
4357
  backgroundColor: colors.card,
4287
4358
  border: `1px solid ${colors.border}`,
4288
4359
  borderRadius: 8,
@@ -4294,56 +4365,56 @@ function IssueDetailScreen({ nav, issue }) {
4294
4365
  whiteSpace: "pre-wrap",
4295
4366
  wordBreak: "break-word"
4296
4367
  }, children: issue.description }),
4297
- issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
4368
+ issue.verifiedByName && /* @__PURE__ */ jsxs15("div", { style: {
4298
4369
  backgroundColor: "#14532d",
4299
4370
  border: "1px solid #166534",
4300
4371
  borderRadius: 8,
4301
4372
  padding: 12,
4302
4373
  marginBottom: 12
4303
4374
  }, 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" })
4375
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4376
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u2705" }),
4377
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
4307
4378
  ] }),
4308
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#86efac" }, children: [
4379
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#86efac" }, children: [
4309
4380
  "Verified by ",
4310
- /* @__PURE__ */ jsx15("strong", { children: issue.verifiedByName }),
4311
- issue.verifiedAt && /* @__PURE__ */ jsxs14("span", { children: [
4381
+ /* @__PURE__ */ jsx16("strong", { children: issue.verifiedByName }),
4382
+ issue.verifiedAt && /* @__PURE__ */ jsxs15("span", { children: [
4312
4383
  " on ",
4313
4384
  new Date(issue.verifiedAt).toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" })
4314
4385
  ] })
4315
4386
  ] })
4316
4387
  ] }),
4317
- issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
4388
+ issue.originalBugTitle && /* @__PURE__ */ jsxs15("div", { style: {
4318
4389
  backgroundColor: "#422006",
4319
4390
  border: "1px solid #854d0e",
4320
4391
  borderRadius: 8,
4321
4392
  padding: 12,
4322
4393
  marginBottom: 12
4323
4394
  }, 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" })
4395
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4396
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
4397
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
4327
4398
  ] }),
4328
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
4399
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
4329
4400
  "Retest of: ",
4330
- /* @__PURE__ */ jsx15("strong", { children: issue.originalBugTitle })
4401
+ /* @__PURE__ */ jsx16("strong", { children: issue.originalBugTitle })
4331
4402
  ] })
4332
4403
  ] }),
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: [
4404
+ issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ jsxs15("div", { style: { marginBottom: 12 }, children: [
4405
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
4335
4406
  "Screenshots (",
4336
4407
  issue.screenshotUrls.length,
4337
4408
  ")"
4338
4409
  ] }),
4339
- /* @__PURE__ */ jsx15("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx15(
4410
+ /* @__PURE__ */ jsx16("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx16(
4340
4411
  "a",
4341
4412
  {
4342
4413
  href: url,
4343
4414
  target: "_blank",
4344
4415
  rel: "noopener noreferrer",
4345
4416
  style: { flexShrink: 0 },
4346
- children: /* @__PURE__ */ jsx15(
4417
+ children: /* @__PURE__ */ jsx16(
4347
4418
  "img",
4348
4419
  {
4349
4420
  src: url,
@@ -4361,16 +4432,16 @@ function IssueDetailScreen({ nav, issue }) {
4361
4432
  i
4362
4433
  )) })
4363
4434
  ] }),
4364
- /* @__PURE__ */ jsxs14("div", { style: {
4435
+ /* @__PURE__ */ jsxs15("div", { style: {
4365
4436
  borderTop: `1px solid ${colors.border}`,
4366
4437
  paddingTop: 12,
4367
4438
  marginTop: 4
4368
4439
  }, children: [
4369
- issue.reporterName && /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
4440
+ issue.reporterName && /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
4370
4441
  "Reported by ",
4371
4442
  issue.reporterName
4372
4443
  ] }),
4373
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 11, color: colors.textDim }, children: [
4444
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 11, color: colors.textDim }, children: [
4374
4445
  "Created ",
4375
4446
  formatRelativeTime(issue.createdAt),
4376
4447
  " \xB7 Updated ",
@@ -4384,9 +4455,9 @@ function IssueDetailScreen({ nav, issue }) {
4384
4455
  var BUGBEAR_LOGO_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAJhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABIAAAAAQAAAEgAAAABAASQBAACAAAAFAAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAGCgAwAEAAAAAQAAAGAAAAAAMjAyNjowMToyNCAxNjoyMTozOABbbVCuAAAACXBIWXMAAAsTAAALEwEAmpwYAAACo2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpJcHRjNHhtcEV4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWE8L0lwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPgogICAgICAgICA8SXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPmZjNzJlN2Q2LTYyYTEtNDE1ZS04MjY5LWM2NjA4MjY0OWRiMDwvSXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyNi0wMS0yNFQxNjoyMTozODwveG1wOkNyZWF0ZURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+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";
4385
4456
 
4386
4457
  // src/BugBearPanel.tsx
4387
- import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4458
+ import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
4388
4459
  function BugBearIcon({ size = 24 }) {
4389
- return /* @__PURE__ */ jsx16(
4460
+ return /* @__PURE__ */ jsx17(
4390
4461
  "img",
4391
4462
  {
4392
4463
  src: BUGBEAR_LOGO_BASE64,
@@ -4551,37 +4622,37 @@ function BugBearPanel({
4551
4622
  const renderScreen = () => {
4552
4623
  switch (currentScreen.name) {
4553
4624
  case "HOME":
4554
- return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4625
+ return /* @__PURE__ */ jsx17(HomeScreen, { nav });
4555
4626
  case "TEST_DETAIL":
4556
- return /* @__PURE__ */ jsx16(TestDetailScreen, { testId: currentScreen.testId, nav });
4627
+ return /* @__PURE__ */ jsx17(TestDetailScreen, { testId: currentScreen.testId, nav });
4557
4628
  case "TEST_LIST":
4558
- return /* @__PURE__ */ jsx16(TestListScreen, { nav });
4629
+ return /* @__PURE__ */ jsx17(TestListScreen, { nav });
4559
4630
  case "TEST_FEEDBACK":
4560
- return /* @__PURE__ */ jsx16(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4631
+ return /* @__PURE__ */ jsx17(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4561
4632
  case "REPORT":
4562
- return /* @__PURE__ */ jsx16(ReportScreen, { nav, prefill: currentScreen.prefill });
4633
+ return /* @__PURE__ */ jsx17(ReportScreen, { nav, prefill: currentScreen.prefill });
4563
4634
  case "REPORT_SUCCESS":
4564
- return /* @__PURE__ */ jsx16(ReportSuccessScreen, { nav });
4635
+ return /* @__PURE__ */ jsx17(ReportSuccessScreen, { nav });
4565
4636
  case "MESSAGE_LIST":
4566
- return /* @__PURE__ */ jsx16(MessageListScreen, { nav });
4637
+ return /* @__PURE__ */ jsx17(MessageListScreen, { nav });
4567
4638
  case "THREAD_DETAIL":
4568
- return /* @__PURE__ */ jsx16(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4639
+ return /* @__PURE__ */ jsx17(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4569
4640
  case "COMPOSE_MESSAGE":
4570
- return /* @__PURE__ */ jsx16(ComposeMessageScreen, { nav });
4641
+ return /* @__PURE__ */ jsx17(ComposeMessageScreen, { nav });
4571
4642
  case "ISSUE_LIST":
4572
- return /* @__PURE__ */ jsx16(IssueListScreen, { nav, category: currentScreen.category });
4643
+ return /* @__PURE__ */ jsx17(IssueListScreen, { nav, category: currentScreen.category });
4573
4644
  case "ISSUE_DETAIL":
4574
- return /* @__PURE__ */ jsx16(IssueDetailScreen, { nav, issue: currentScreen.issue });
4645
+ return /* @__PURE__ */ jsx17(IssueDetailScreen, { nav, issue: currentScreen.issue });
4575
4646
  case "PROFILE":
4576
- return /* @__PURE__ */ jsx16(ProfileScreen, { nav });
4647
+ return /* @__PURE__ */ jsx17(ProfileScreen, { nav });
4577
4648
  default:
4578
- return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4649
+ return /* @__PURE__ */ jsx17(HomeScreen, { nav });
4579
4650
  }
4580
4651
  };
4581
4652
  if (typeof document === "undefined") return null;
4582
4653
  const headerTitle = getHeaderTitle();
4583
4654
  return createPortal(
4584
- /* @__PURE__ */ jsxs15(
4655
+ /* @__PURE__ */ jsxs16(
4585
4656
  "div",
4586
4657
  {
4587
4658
  ref: panelRef,
@@ -4600,7 +4671,7 @@ function BugBearPanel({
4600
4671
  },
4601
4672
  onMouseDown: handleMouseDown,
4602
4673
  children: [
4603
- collapsed && /* @__PURE__ */ jsxs15(
4674
+ collapsed && /* @__PURE__ */ jsxs16(
4604
4675
  "button",
4605
4676
  {
4606
4677
  onClick: () => setCollapsed(false),
@@ -4622,9 +4693,9 @@ function BugBearPanel({
4622
4693
  fontWeight: 500
4623
4694
  },
4624
4695
  children: [
4625
- /* @__PURE__ */ jsx16(BugBearIcon, { size: 24 }),
4626
- /* @__PURE__ */ jsx16("span", { children: "BugBear" }),
4627
- badgeCount > 0 && /* @__PURE__ */ jsx16("span", { style: {
4696
+ /* @__PURE__ */ jsx17(BugBearIcon, { size: 24 }),
4697
+ /* @__PURE__ */ jsx17("span", { children: "BugBear" }),
4698
+ badgeCount > 0 && /* @__PURE__ */ jsx17("span", { style: {
4628
4699
  backgroundColor: "#fff",
4629
4700
  color: colors.blue,
4630
4701
  fontSize: "0.75rem",
@@ -4635,7 +4706,7 @@ function BugBearPanel({
4635
4706
  ]
4636
4707
  }
4637
4708
  ),
4638
- !collapsed && /* @__PURE__ */ jsxs15("div", { style: {
4709
+ !collapsed && /* @__PURE__ */ jsxs16("div", { style: {
4639
4710
  width: PANEL_WIDTH,
4640
4711
  backgroundColor: colors.bg,
4641
4712
  borderRadius: 12,
@@ -4643,7 +4714,7 @@ function BugBearPanel({
4643
4714
  overflow: "hidden",
4644
4715
  boxShadow: "0 25px 50px -12px rgba(0,0,0,0.5)"
4645
4716
  }, children: [
4646
- /* @__PURE__ */ jsxs15(
4717
+ /* @__PURE__ */ jsxs16(
4647
4718
  "div",
4648
4719
  {
4649
4720
  "data-drag-handle": true,
@@ -4659,7 +4730,7 @@ function BugBearPanel({
4659
4730
  cursor: draggable ? isDragging ? "grabbing" : "grab" : "default"
4660
4731
  },
4661
4732
  children: [
4662
- /* @__PURE__ */ jsx16("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx16(
4733
+ /* @__PURE__ */ jsx17("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx17(
4663
4734
  "button",
4664
4735
  {
4665
4736
  onClick: pop,
@@ -4675,14 +4746,14 @@ function BugBearPanel({
4675
4746
  },
4676
4747
  children: "\u2190 Back"
4677
4748
  }
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" })
4749
+ ) : /* @__PURE__ */ jsxs16(Fragment4, { children: [
4750
+ /* @__PURE__ */ jsx17(BugBearIcon, { size: 28 }),
4751
+ /* @__PURE__ */ jsxs16("div", { children: [
4752
+ /* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4753
+ /* @__PURE__ */ jsx17("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
4754
+ draggable && /* @__PURE__ */ jsx17("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
4684
4755
  ] }),
4685
- testerInfo && /* @__PURE__ */ jsxs15(
4756
+ testerInfo && /* @__PURE__ */ jsxs16(
4686
4757
  "button",
4687
4758
  {
4688
4759
  onClick: () => push({ name: "PROFILE" }),
@@ -4700,13 +4771,13 @@ function BugBearPanel({
4700
4771
  },
4701
4772
  children: [
4702
4773
  testerInfo.name,
4703
- /* @__PURE__ */ jsx16("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4774
+ /* @__PURE__ */ jsx17("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4704
4775
  ]
4705
4776
  }
4706
4777
  )
4707
4778
  ] })
4708
4779
  ] }) }),
4709
- headerTitle ? /* @__PURE__ */ jsx16("span", { style: {
4780
+ headerTitle ? /* @__PURE__ */ jsx17("span", { style: {
4710
4781
  fontSize: "0.8125rem",
4711
4782
  fontWeight: 600,
4712
4783
  color: colors.textSecondary,
@@ -4716,7 +4787,7 @@ function BugBearPanel({
4716
4787
  textOverflow: "ellipsis",
4717
4788
  whiteSpace: "nowrap"
4718
4789
  }, children: headerTitle }) : null,
4719
- /* @__PURE__ */ jsx16(
4790
+ /* @__PURE__ */ jsx17(
4720
4791
  "button",
4721
4792
  {
4722
4793
  onClick: handleClose,
@@ -4740,13 +4811,13 @@ function BugBearPanel({
4740
4811
  ]
4741
4812
  }
4742
4813
  ),
4743
- /* @__PURE__ */ jsx16("div", { style: {
4814
+ /* @__PURE__ */ jsx17("div", { style: {
4744
4815
  padding: 16,
4745
4816
  maxHeight: 400,
4746
4817
  overflowY: "auto",
4747
4818
  backgroundColor: colors.bg,
4748
4819
  color: colors.textSecondary
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() })
4820
+ }, children: isLoading ? /* @__PURE__ */ jsx17("div", { style: { padding: "60px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx17("div", { style: { color: colors.textMuted, fontSize: "0.875rem" }, children: "Loading..." }) }) : renderScreen() })
4750
4821
  ] })
4751
4822
  ]
4752
4823
  }
@@ -4758,7 +4829,7 @@ function BugBearPanel({
4758
4829
  // src/BugBearErrorBoundary.tsx
4759
4830
  import { Component } from "react";
4760
4831
  import { captureError, contextCapture as contextCapture2 } from "@bbearai/core";
4761
- import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
4832
+ import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
4762
4833
  var BugBearErrorBoundary = class extends Component {
4763
4834
  constructor(props) {
4764
4835
  super(props);
@@ -4803,7 +4874,7 @@ var BugBearErrorBoundary = class extends Component {
4803
4874
  if (fallback) {
4804
4875
  return fallback;
4805
4876
  }
4806
- return /* @__PURE__ */ jsxs16(
4877
+ return /* @__PURE__ */ jsxs17(
4807
4878
  "div",
4808
4879
  {
4809
4880
  style: {
@@ -4815,13 +4886,13 @@ var BugBearErrorBoundary = class extends Component {
4815
4886
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
4816
4887
  },
4817
4888
  children: [
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" })
4889
+ /* @__PURE__ */ jsxs17("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
4890
+ /* @__PURE__ */ jsx18("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
4891
+ /* @__PURE__ */ jsx18("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
4821
4892
  ] }),
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(
4893
+ /* @__PURE__ */ jsx18("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
4894
+ /* @__PURE__ */ jsxs17("div", { style: { display: "flex", gap: "8px" }, children: [
4895
+ /* @__PURE__ */ jsx18(
4825
4896
  "button",
4826
4897
  {
4827
4898
  onClick: this.reset,
@@ -4838,7 +4909,7 @@ var BugBearErrorBoundary = class extends Component {
4838
4909
  children: "Try Again"
4839
4910
  }
4840
4911
  ),
4841
- /* @__PURE__ */ jsx17(
4912
+ /* @__PURE__ */ jsx18(
4842
4913
  "button",
4843
4914
  {
4844
4915
  onClick: () => window.location.reload(),
@@ -4856,7 +4927,7 @@ var BugBearErrorBoundary = class extends Component {
4856
4927
  }
4857
4928
  )
4858
4929
  ] }),
4859
- /* @__PURE__ */ jsx17("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4930
+ /* @__PURE__ */ jsx18("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4860
4931
  ]
4861
4932
  }
4862
4933
  );