@bbearai/react 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/index.js +313 -235
  2. package/dist/index.mjs +304 -236
  3. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -2081,6 +2081,11 @@ function useImageAttachments(uploadFn, maxImages, bucket = "screenshots") {
2081
2081
  setImages((prev) => prev.map(
2082
2082
  (img) => img.id === id ? { ...img, remoteUrl: url, status: url ? "done" : "error" } : img
2083
2083
  ));
2084
+ }).catch((err) => {
2085
+ console.error("BugBear: Image upload failed", err);
2086
+ setImages((prev) => prev.map(
2087
+ (img) => img.id === id ? { ...img, status: "error" } : img
2088
+ ));
2084
2089
  });
2085
2090
  }
2086
2091
  }, [images.length, maxImages, uploadFn, bucket]);
@@ -2544,18 +2549,72 @@ var styles = {
2544
2549
  };
2545
2550
 
2546
2551
  // src/widget/screens/ReportScreen.tsx
2547
- import { useState as useState6, useRef as useRef2 } from "react";
2548
- import { Fragment as Fragment3, jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2552
+ import React6, { useState as useState6, useRef as useRef2 } from "react";
2553
+
2554
+ // src/widget/CategoryDropdown.tsx
2555
+ import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
2556
+ var categoryOptions = [
2557
+ { value: "ui_ux", label: "UI/UX", icon: "\u{1F3A8}" },
2558
+ { value: "functional", label: "Functional", icon: "\u2699\uFE0F" },
2559
+ { value: "crash", label: "Crash", icon: "\u{1F4A5}" },
2560
+ { value: "security", label: "Security", icon: "\u{1F510}" },
2561
+ { value: "other", label: "Other", icon: "\u{1F4DD}" }
2562
+ ];
2563
+ function CategoryDropdown({ value, onChange, optional = true, disabled = false }) {
2564
+ return /* @__PURE__ */ jsxs7(
2565
+ "select",
2566
+ {
2567
+ value: value || "",
2568
+ onChange: (e) => onChange(e.target.value ? e.target.value : null),
2569
+ disabled,
2570
+ style: {
2571
+ width: "100%",
2572
+ backgroundColor: disabled ? colors.bg : colors.card,
2573
+ border: `1px solid ${colors.border}`,
2574
+ borderRadius: 8,
2575
+ padding: "10px 12px",
2576
+ fontSize: 14,
2577
+ color: colors.textPrimary,
2578
+ cursor: disabled ? "not-allowed" : "pointer",
2579
+ opacity: disabled ? 0.5 : 1,
2580
+ appearance: "none",
2581
+ 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")`,
2582
+ backgroundRepeat: "no-repeat",
2583
+ backgroundPosition: "right 12px center",
2584
+ paddingRight: 32
2585
+ },
2586
+ children: [
2587
+ /* @__PURE__ */ jsx8("option", { value: "", children: optional ? "Select category (optional)" : "Select category" }),
2588
+ categoryOptions.map(({ value: value2, label, icon }) => /* @__PURE__ */ jsxs7("option", { value: value2, children: [
2589
+ icon,
2590
+ " ",
2591
+ label
2592
+ ] }, value2))
2593
+ ]
2594
+ }
2595
+ );
2596
+ }
2597
+
2598
+ // src/widget/screens/ReportScreen.tsx
2599
+ import { Fragment as Fragment3, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
2549
2600
  function ReportScreen({ nav, prefill }) {
2550
2601
  const { client, refreshAssignments, uploadImage } = useBugBear();
2551
2602
  const images = useImageAttachments(uploadImage, 5, "screenshots");
2552
2603
  const [reportType, setReportType] = useState6(prefill?.type || "bug");
2553
2604
  const [severity, setSeverity] = useState6("medium");
2605
+ const [category, setCategory] = useState6(null);
2554
2606
  const [description, setDescription] = useState6("");
2555
2607
  const [affectedRoute, setAffectedRoute] = useState6("");
2556
2608
  const [submitting, setSubmitting] = useState6(false);
2557
2609
  const [error, setError] = useState6(null);
2558
2610
  const submittingRef = useRef2(false);
2611
+ React6.useEffect(() => {
2612
+ if (reportType === "feedback" || reportType === "suggestion") {
2613
+ setCategory("other");
2614
+ } else {
2615
+ setCategory(null);
2616
+ }
2617
+ }, [reportType]);
2559
2618
  const observedRoute = useRef2(
2560
2619
  typeof window !== "undefined" ? window.location.pathname : "unknown"
2561
2620
  );
@@ -2578,6 +2637,7 @@ function ReportScreen({ nav, prefill }) {
2578
2637
  type: reportType,
2579
2638
  description: description.trim(),
2580
2639
  severity: isBugType ? severity : void 0,
2640
+ category: category || void 0,
2581
2641
  screenshots: screenshotUrls.length > 0 ? screenshotUrls : void 0,
2582
2642
  assignmentId: prefill?.assignmentId,
2583
2643
  testCaseId: prefill?.testCaseId,
@@ -2611,17 +2671,17 @@ function ReportScreen({ nav, prefill }) {
2611
2671
  { sev: "medium", color: "#eab308" },
2612
2672
  { sev: "low", color: "#6b7280" }
2613
2673
  ];
2614
- return /* @__PURE__ */ jsx8("div", { children: isRetestFailure ? /* @__PURE__ */ jsxs7(Fragment3, { children: [
2615
- /* @__PURE__ */ jsxs7("div", { style: styles2.retestBanner, children: [
2616
- /* @__PURE__ */ jsx8("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
2617
- /* @__PURE__ */ jsxs7("div", { children: [
2618
- /* @__PURE__ */ jsx8("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
2619
- /* @__PURE__ */ jsx8("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
2674
+ return /* @__PURE__ */ jsx9("div", { children: isRetestFailure ? /* @__PURE__ */ jsxs8(Fragment3, { children: [
2675
+ /* @__PURE__ */ jsxs8("div", { style: styles2.retestBanner, children: [
2676
+ /* @__PURE__ */ jsx9("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
2677
+ /* @__PURE__ */ jsxs8("div", { children: [
2678
+ /* @__PURE__ */ jsx9("div", { style: styles2.retestTitle, children: "Bug Still Present" }),
2679
+ /* @__PURE__ */ jsx9("div", { style: styles2.retestSubtitle, children: "The fix did not resolve this issue" })
2620
2680
  ] })
2621
2681
  ] }),
2622
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2623
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Severity" }),
2624
- /* @__PURE__ */ jsx8("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx8(
2682
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2683
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
2684
+ /* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
2625
2685
  "button",
2626
2686
  {
2627
2687
  onClick: () => setSeverity(sev),
@@ -2629,14 +2689,18 @@ function ReportScreen({ nav, prefill }) {
2629
2689
  ...styles2.sevButton,
2630
2690
  ...severity === sev ? { backgroundColor: `${color}30`, borderColor: color } : {}
2631
2691
  },
2632
- children: /* @__PURE__ */ jsx8("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
2692
+ children: /* @__PURE__ */ jsx9("span", { style: { ...styles2.sevText, ...severity === sev ? { color } : {} }, children: sev })
2633
2693
  },
2634
2694
  sev
2635
2695
  )) })
2636
2696
  ] }),
2637
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2638
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What went wrong?" }),
2639
- /* @__PURE__ */ jsx8(
2697
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2698
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
2699
+ /* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
2700
+ ] }),
2701
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2702
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What went wrong?" }),
2703
+ /* @__PURE__ */ jsx9(
2640
2704
  "textarea",
2641
2705
  {
2642
2706
  style: styles2.descInput,
@@ -2647,7 +2711,7 @@ function ReportScreen({ nav, prefill }) {
2647
2711
  }
2648
2712
  )
2649
2713
  ] }),
2650
- /* @__PURE__ */ jsx8(
2714
+ /* @__PURE__ */ jsx9(
2651
2715
  ImagePickerButtons,
2652
2716
  {
2653
2717
  images: images.images,
@@ -2658,8 +2722,8 @@ function ReportScreen({ nav, prefill }) {
2658
2722
  label: "Attachments (optional)"
2659
2723
  }
2660
2724
  ),
2661
- error && /* @__PURE__ */ jsx8("div", { style: styles2.errorBanner, children: error }),
2662
- /* @__PURE__ */ jsx8(
2725
+ error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
2726
+ /* @__PURE__ */ jsx9(
2663
2727
  "button",
2664
2728
  {
2665
2729
  style: {
@@ -2672,9 +2736,9 @@ function ReportScreen({ nav, prefill }) {
2672
2736
  children: images.isUploading ? "Uploading images..." : submitting ? "Submitting..." : error ? "Retry" : "Submit Failed Retest"
2673
2737
  }
2674
2738
  )
2675
- ] }) : /* @__PURE__ */ jsxs7(Fragment3, { children: [
2676
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What are you reporting?" }),
2677
- /* @__PURE__ */ jsx8("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ jsxs7(
2739
+ ] }) : /* @__PURE__ */ jsxs8(Fragment3, { children: [
2740
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What are you reporting?" }),
2741
+ /* @__PURE__ */ jsx9("div", { style: styles2.typeRow, children: typeOptions.map(({ type, label, icon }) => /* @__PURE__ */ jsxs8(
2678
2742
  "button",
2679
2743
  {
2680
2744
  onClick: () => setReportType(type),
@@ -2683,8 +2747,8 @@ function ReportScreen({ nav, prefill }) {
2683
2747
  ...reportType === type ? styles2.typeCardActive : {}
2684
2748
  },
2685
2749
  children: [
2686
- /* @__PURE__ */ jsx8("div", { style: styles2.typeIcon, children: icon }),
2687
- /* @__PURE__ */ jsx8(
2750
+ /* @__PURE__ */ jsx9("div", { style: styles2.typeIcon, children: icon }),
2751
+ /* @__PURE__ */ jsx9(
2688
2752
  "div",
2689
2753
  {
2690
2754
  style: {
@@ -2698,9 +2762,9 @@ function ReportScreen({ nav, prefill }) {
2698
2762
  },
2699
2763
  type
2700
2764
  )) }),
2701
- isBugType && /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2702
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Severity" }),
2703
- /* @__PURE__ */ jsx8("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx8(
2765
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2766
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Severity" }),
2767
+ /* @__PURE__ */ jsx9("div", { style: styles2.severityRow, children: severityOptions.map(({ sev, color }) => /* @__PURE__ */ jsx9(
2704
2768
  "button",
2705
2769
  {
2706
2770
  onClick: () => setSeverity(sev),
@@ -2711,7 +2775,7 @@ function ReportScreen({ nav, prefill }) {
2711
2775
  borderColor: color
2712
2776
  } : {}
2713
2777
  },
2714
- children: /* @__PURE__ */ jsx8(
2778
+ children: /* @__PURE__ */ jsx9(
2715
2779
  "span",
2716
2780
  {
2717
2781
  style: {
@@ -2725,9 +2789,13 @@ function ReportScreen({ nav, prefill }) {
2725
2789
  sev
2726
2790
  )) })
2727
2791
  ] }),
2728
- /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2729
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "What happened?" }),
2730
- /* @__PURE__ */ jsx8(
2792
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2793
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Category (optional)" }),
2794
+ /* @__PURE__ */ jsx9(CategoryDropdown, { value: category, onChange: setCategory, optional: true })
2795
+ ] }),
2796
+ /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2797
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "What happened?" }),
2798
+ /* @__PURE__ */ jsx9(
2731
2799
  "textarea",
2732
2800
  {
2733
2801
  style: styles2.descInput,
@@ -2738,9 +2806,9 @@ function ReportScreen({ nav, prefill }) {
2738
2806
  }
2739
2807
  )
2740
2808
  ] }),
2741
- isBugType && /* @__PURE__ */ jsxs7("div", { style: styles2.section, children: [
2742
- /* @__PURE__ */ jsx8("div", { style: styles2.label, children: "Where did it happen?" }),
2743
- /* @__PURE__ */ jsx8(
2809
+ isBugType && /* @__PURE__ */ jsxs8("div", { style: styles2.section, children: [
2810
+ /* @__PURE__ */ jsx9("div", { style: styles2.label, children: "Where did it happen?" }),
2811
+ /* @__PURE__ */ jsx9(
2744
2812
  "input",
2745
2813
  {
2746
2814
  style: styles2.routeInput,
@@ -2749,13 +2817,13 @@ function ReportScreen({ nav, prefill }) {
2749
2817
  placeholder: observedRoute.current
2750
2818
  }
2751
2819
  ),
2752
- /* @__PURE__ */ jsxs7("div", { style: styles2.routeHint, children: [
2820
+ /* @__PURE__ */ jsxs8("div", { style: styles2.routeHint, children: [
2753
2821
  "Leave blank to use current page (",
2754
2822
  observedRoute.current,
2755
2823
  ")"
2756
2824
  ] })
2757
2825
  ] }),
2758
- /* @__PURE__ */ jsx8(
2826
+ /* @__PURE__ */ jsx9(
2759
2827
  ImagePickerButtons,
2760
2828
  {
2761
2829
  images: images.images,
@@ -2766,8 +2834,8 @@ function ReportScreen({ nav, prefill }) {
2766
2834
  label: "Screenshots (optional)"
2767
2835
  }
2768
2836
  ),
2769
- error && /* @__PURE__ */ jsx8("div", { style: styles2.errorBanner, children: error }),
2770
- /* @__PURE__ */ jsx8(
2837
+ error && /* @__PURE__ */ jsx9("div", { style: styles2.errorBanner, children: error }),
2838
+ /* @__PURE__ */ jsx9(
2771
2839
  "button",
2772
2840
  {
2773
2841
  style: {
@@ -2932,16 +3000,16 @@ var styles2 = {
2932
3000
 
2933
3001
  // src/widget/screens/ReportSuccessScreen.tsx
2934
3002
  import { useEffect as useEffect4 } from "react";
2935
- import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
3003
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
2936
3004
  function ReportSuccessScreen({ nav }) {
2937
3005
  useEffect4(() => {
2938
3006
  const timer = setTimeout(() => nav.reset(), 2e3);
2939
3007
  return () => clearTimeout(timer);
2940
3008
  }, [nav]);
2941
- return /* @__PURE__ */ jsxs8("div", { style: styles3.container, children: [
2942
- /* @__PURE__ */ jsx9("div", { style: styles3.emoji, children: "\u{1F389}" }),
2943
- /* @__PURE__ */ jsx9("div", { style: styles3.title, children: "Report submitted!" }),
2944
- /* @__PURE__ */ jsx9("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
3009
+ return /* @__PURE__ */ jsxs9("div", { style: styles3.container, children: [
3010
+ /* @__PURE__ */ jsx10("div", { style: styles3.emoji, children: "\u{1F389}" }),
3011
+ /* @__PURE__ */ jsx10("div", { style: styles3.title, children: "Report submitted!" }),
3012
+ /* @__PURE__ */ jsx10("div", { style: styles3.subtitle, children: "Thank you for your feedback" })
2945
3013
  ] });
2946
3014
  }
2947
3015
  var styles3 = {
@@ -2970,11 +3038,11 @@ var styles3 = {
2970
3038
  };
2971
3039
 
2972
3040
  // src/widget/screens/MessageListScreen.tsx
2973
- import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
3041
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
2974
3042
  function MessageListScreen({ nav }) {
2975
3043
  const { threads, unreadCount, refreshThreads } = useBugBear();
2976
- return /* @__PURE__ */ jsxs9("div", { children: [
2977
- /* @__PURE__ */ jsx10(
3044
+ return /* @__PURE__ */ jsxs10("div", { children: [
3045
+ /* @__PURE__ */ jsx11(
2978
3046
  "button",
2979
3047
  {
2980
3048
  style: {
@@ -2993,7 +3061,7 @@ function MessageListScreen({ nav }) {
2993
3061
  children: "\u2709\uFE0F New Message"
2994
3062
  }
2995
3063
  ),
2996
- threads.length === 0 ? /* @__PURE__ */ jsxs9(
3064
+ threads.length === 0 ? /* @__PURE__ */ jsxs10(
2997
3065
  "div",
2998
3066
  {
2999
3067
  style: {
@@ -3004,8 +3072,8 @@ function MessageListScreen({ nav }) {
3004
3072
  paddingBottom: 40
3005
3073
  },
3006
3074
  children: [
3007
- /* @__PURE__ */ jsx10("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
3008
- /* @__PURE__ */ jsx10(
3075
+ /* @__PURE__ */ jsx11("span", { style: { fontSize: 36, marginBottom: 12 }, children: "\u{1F4AC}" }),
3076
+ /* @__PURE__ */ jsx11(
3009
3077
  "span",
3010
3078
  {
3011
3079
  style: {
@@ -3017,7 +3085,7 @@ function MessageListScreen({ nav }) {
3017
3085
  children: "No messages yet"
3018
3086
  }
3019
3087
  ),
3020
- /* @__PURE__ */ jsx10(
3088
+ /* @__PURE__ */ jsx11(
3021
3089
  "span",
3022
3090
  {
3023
3091
  style: {
@@ -3030,7 +3098,7 @@ function MessageListScreen({ nav }) {
3030
3098
  )
3031
3099
  ]
3032
3100
  }
3033
- ) : /* @__PURE__ */ jsx10("div", { children: threads.map((thread) => /* @__PURE__ */ jsxs9(
3101
+ ) : /* @__PURE__ */ jsx11("div", { children: threads.map((thread) => /* @__PURE__ */ jsxs10(
3034
3102
  "button",
3035
3103
  {
3036
3104
  style: {
@@ -3048,8 +3116,8 @@ function MessageListScreen({ nav }) {
3048
3116
  },
3049
3117
  onClick: () => nav.push({ name: "THREAD_DETAIL", thread }),
3050
3118
  children: [
3051
- /* @__PURE__ */ jsxs9("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
3052
- /* @__PURE__ */ jsx10(
3119
+ /* @__PURE__ */ jsxs10("div", { style: { display: "flex", flex: 1, minWidth: 0 }, children: [
3120
+ /* @__PURE__ */ jsx11(
3053
3121
  "span",
3054
3122
  {
3055
3123
  style: {
@@ -3061,7 +3129,7 @@ function MessageListScreen({ nav }) {
3061
3129
  children: getThreadTypeIcon(thread.threadType)
3062
3130
  }
3063
3131
  ),
3064
- /* @__PURE__ */ jsxs9(
3132
+ /* @__PURE__ */ jsxs10(
3065
3133
  "div",
3066
3134
  {
3067
3135
  style: {
@@ -3069,7 +3137,7 @@ function MessageListScreen({ nav }) {
3069
3137
  minWidth: 0
3070
3138
  },
3071
3139
  children: [
3072
- /* @__PURE__ */ jsxs9(
3140
+ /* @__PURE__ */ jsxs10(
3073
3141
  "div",
3074
3142
  {
3075
3143
  style: {
@@ -3078,8 +3146,8 @@ function MessageListScreen({ nav }) {
3078
3146
  gap: 4
3079
3147
  },
3080
3148
  children: [
3081
- thread.isPinned && /* @__PURE__ */ jsx10("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
3082
- /* @__PURE__ */ jsx10(
3149
+ thread.isPinned && /* @__PURE__ */ jsx11("span", { style: { fontSize: 12, flexShrink: 0 }, children: "\u{1F4CC}" }),
3150
+ /* @__PURE__ */ jsx11(
3083
3151
  "span",
3084
3152
  {
3085
3153
  style: {
@@ -3096,7 +3164,7 @@ function MessageListScreen({ nav }) {
3096
3164
  ]
3097
3165
  }
3098
3166
  ),
3099
- thread.lastMessage && /* @__PURE__ */ jsxs9(
3167
+ thread.lastMessage && /* @__PURE__ */ jsxs10(
3100
3168
  "span",
3101
3169
  {
3102
3170
  style: {
@@ -3120,7 +3188,7 @@ function MessageListScreen({ nav }) {
3120
3188
  }
3121
3189
  )
3122
3190
  ] }),
3123
- /* @__PURE__ */ jsxs9(
3191
+ /* @__PURE__ */ jsxs10(
3124
3192
  "div",
3125
3193
  {
3126
3194
  style: {
@@ -3132,8 +3200,8 @@ function MessageListScreen({ nav }) {
3132
3200
  flexShrink: 0
3133
3201
  },
3134
3202
  children: [
3135
- /* @__PURE__ */ jsx10("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
3136
- thread.unreadCount > 0 && /* @__PURE__ */ jsx10(
3203
+ /* @__PURE__ */ jsx11("span", { style: { fontSize: 11, color: colors.textDim }, children: formatRelativeTime(thread.lastMessageAt) }),
3204
+ thread.unreadCount > 0 && /* @__PURE__ */ jsx11(
3137
3205
  "span",
3138
3206
  {
3139
3207
  style: {
@@ -3160,7 +3228,7 @@ function MessageListScreen({ nav }) {
3160
3228
  },
3161
3229
  thread.id
3162
3230
  )) }),
3163
- /* @__PURE__ */ jsxs9(
3231
+ /* @__PURE__ */ jsxs10(
3164
3232
  "div",
3165
3233
  {
3166
3234
  style: {
@@ -3172,7 +3240,7 @@ function MessageListScreen({ nav }) {
3172
3240
  paddingRight: 4
3173
3241
  },
3174
3242
  children: [
3175
- /* @__PURE__ */ jsxs9("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
3243
+ /* @__PURE__ */ jsxs10("span", { style: { fontSize: 12, color: colors.textMuted }, children: [
3176
3244
  threads.length,
3177
3245
  " thread",
3178
3246
  threads.length !== 1 ? "s" : "",
@@ -3181,7 +3249,7 @@ function MessageListScreen({ nav }) {
3181
3249
  unreadCount,
3182
3250
  " unread"
3183
3251
  ] }),
3184
- /* @__PURE__ */ jsx10(
3252
+ /* @__PURE__ */ jsx11(
3185
3253
  "button",
3186
3254
  {
3187
3255
  style: {
@@ -3204,7 +3272,7 @@ function MessageListScreen({ nav }) {
3204
3272
 
3205
3273
  // src/widget/screens/ThreadDetailScreen.tsx
3206
3274
  import { useState as useState7, useEffect as useEffect5 } from "react";
3207
- import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
3275
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
3208
3276
  var inputStyle = {
3209
3277
  backgroundColor: "#27272a",
3210
3278
  border: "1px solid #3f3f46",
@@ -3263,8 +3331,8 @@ function ThreadDetailScreen({
3263
3331
  handleSend();
3264
3332
  }
3265
3333
  };
3266
- return /* @__PURE__ */ jsxs10("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
3267
- /* @__PURE__ */ jsxs10(
3334
+ return /* @__PURE__ */ jsxs11("div", { style: { display: "flex", flexDirection: "column", flex: 1 }, children: [
3335
+ /* @__PURE__ */ jsxs11(
3268
3336
  "div",
3269
3337
  {
3270
3338
  style: {
@@ -3276,8 +3344,8 @@ function ThreadDetailScreen({
3276
3344
  borderBottom: `1px solid ${colors.border}`
3277
3345
  },
3278
3346
  children: [
3279
- /* @__PURE__ */ jsx11("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
3280
- /* @__PURE__ */ jsx11(
3347
+ /* @__PURE__ */ jsx12("span", { style: { fontSize: 20 }, children: getThreadTypeIcon(thread.threadType) }),
3348
+ /* @__PURE__ */ jsx12(
3281
3349
  "span",
3282
3350
  {
3283
3351
  style: {
@@ -3297,7 +3365,7 @@ function ThreadDetailScreen({
3297
3365
  ]
3298
3366
  }
3299
3367
  ),
3300
- loading ? /* @__PURE__ */ jsx11(
3368
+ loading ? /* @__PURE__ */ jsx12(
3301
3369
  "div",
3302
3370
  {
3303
3371
  style: {
@@ -3305,11 +3373,11 @@ function ThreadDetailScreen({
3305
3373
  paddingBottom: 40,
3306
3374
  textAlign: "center"
3307
3375
  },
3308
- children: /* @__PURE__ */ jsx11("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
3376
+ children: /* @__PURE__ */ jsx12("span", { style: { fontSize: 14, color: colors.textMuted }, children: "Loading messages..." })
3309
3377
  }
3310
- ) : /* @__PURE__ */ jsx11("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
3378
+ ) : /* @__PURE__ */ jsx12("div", { style: { paddingBottom: 8, marginBottom: 8 }, children: messages.map((msg) => {
3311
3379
  const isTester = msg.senderType === "tester";
3312
- return /* @__PURE__ */ jsxs10(
3380
+ return /* @__PURE__ */ jsxs11(
3313
3381
  "div",
3314
3382
  {
3315
3383
  style: {
@@ -3325,7 +3393,7 @@ function ThreadDetailScreen({
3325
3393
  borderBottomRightRadius: isTester ? 4 : 16
3326
3394
  },
3327
3395
  children: [
3328
- /* @__PURE__ */ jsx11(
3396
+ /* @__PURE__ */ jsx12(
3329
3397
  "span",
3330
3398
  {
3331
3399
  style: {
@@ -3338,7 +3406,7 @@ function ThreadDetailScreen({
3338
3406
  children: isTester ? "You" : msg.senderName
3339
3407
  }
3340
3408
  ),
3341
- /* @__PURE__ */ jsx11(
3409
+ /* @__PURE__ */ jsx12(
3342
3410
  "span",
3343
3411
  {
3344
3412
  style: {
@@ -3352,7 +3420,7 @@ function ThreadDetailScreen({
3352
3420
  children: msg.content
3353
3421
  }
3354
3422
  ),
3355
- 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(
3423
+ 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(
3356
3424
  "img",
3357
3425
  {
3358
3426
  src: att.url,
@@ -3361,7 +3429,7 @@ function ThreadDetailScreen({
3361
3429
  },
3362
3430
  idx
3363
3431
  )) }),
3364
- /* @__PURE__ */ jsx11(
3432
+ /* @__PURE__ */ jsx12(
3365
3433
  "span",
3366
3434
  {
3367
3435
  style: {
@@ -3379,7 +3447,7 @@ function ThreadDetailScreen({
3379
3447
  msg.id
3380
3448
  );
3381
3449
  }) }),
3382
- sendError && /* @__PURE__ */ jsx11(
3450
+ sendError && /* @__PURE__ */ jsx12(
3383
3451
  "div",
3384
3452
  {
3385
3453
  style: {
@@ -3391,7 +3459,7 @@ function ThreadDetailScreen({
3391
3459
  borderRadius: 8,
3392
3460
  marginBottom: 8
3393
3461
  },
3394
- children: /* @__PURE__ */ jsx11(
3462
+ children: /* @__PURE__ */ jsx12(
3395
3463
  "span",
3396
3464
  {
3397
3465
  style: {
@@ -3405,8 +3473,8 @@ function ThreadDetailScreen({
3405
3473
  )
3406
3474
  }
3407
3475
  ),
3408
- replyImages.images.length > 0 && /* @__PURE__ */ jsx11("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ jsx11(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
3409
- /* @__PURE__ */ jsxs10(
3476
+ replyImages.images.length > 0 && /* @__PURE__ */ jsx12("div", { style: { paddingTop: 8 }, children: /* @__PURE__ */ jsx12(ImagePreviewStrip, { images: replyImages.images, onRemove: replyImages.removeImage }) }),
3477
+ /* @__PURE__ */ jsxs11(
3410
3478
  "div",
3411
3479
  {
3412
3480
  style: {
@@ -3417,7 +3485,7 @@ function ThreadDetailScreen({
3417
3485
  gap: 8
3418
3486
  },
3419
3487
  children: [
3420
- /* @__PURE__ */ jsx11(
3488
+ /* @__PURE__ */ jsx12(
3421
3489
  "button",
3422
3490
  {
3423
3491
  type: "button",
@@ -3436,7 +3504,7 @@ function ThreadDetailScreen({
3436
3504
  children: "\u{1F4CE}"
3437
3505
  }
3438
3506
  ),
3439
- /* @__PURE__ */ jsx11(
3507
+ /* @__PURE__ */ jsx12(
3440
3508
  "input",
3441
3509
  {
3442
3510
  type: "text",
@@ -3452,7 +3520,7 @@ function ThreadDetailScreen({
3452
3520
  }
3453
3521
  }
3454
3522
  ),
3455
- /* @__PURE__ */ jsx11(
3523
+ /* @__PURE__ */ jsx12(
3456
3524
  "button",
3457
3525
  {
3458
3526
  style: {
@@ -3480,7 +3548,7 @@ function ThreadDetailScreen({
3480
3548
 
3481
3549
  // src/widget/screens/ComposeMessageScreen.tsx
3482
3550
  import { useState as useState8 } from "react";
3483
- import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
3551
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
3484
3552
  var inputStyle2 = {
3485
3553
  backgroundColor: "#27272a",
3486
3554
  border: "1px solid #3f3f46",
@@ -3511,9 +3579,9 @@ function ComposeMessageScreen({ nav }) {
3511
3579
  nav.pop();
3512
3580
  }
3513
3581
  };
3514
- return /* @__PURE__ */ jsxs11("div", { children: [
3515
- /* @__PURE__ */ jsxs11("div", { style: { marginBottom: 20 }, children: [
3516
- /* @__PURE__ */ jsx12(
3582
+ return /* @__PURE__ */ jsxs12("div", { children: [
3583
+ /* @__PURE__ */ jsxs12("div", { style: { marginBottom: 20 }, children: [
3584
+ /* @__PURE__ */ jsx13(
3517
3585
  "div",
3518
3586
  {
3519
3587
  style: {
@@ -3525,9 +3593,9 @@ function ComposeMessageScreen({ nav }) {
3525
3593
  children: "New Message"
3526
3594
  }
3527
3595
  ),
3528
- /* @__PURE__ */ jsx12("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
3596
+ /* @__PURE__ */ jsx13("div", { style: { fontSize: 14, color: colors.textMuted }, children: "Send a message to the QA team" })
3529
3597
  ] }),
3530
- /* @__PURE__ */ jsxs11(
3598
+ /* @__PURE__ */ jsxs12(
3531
3599
  "div",
3532
3600
  {
3533
3601
  style: {
@@ -3537,7 +3605,7 @@ function ComposeMessageScreen({ nav }) {
3537
3605
  border: `1px solid ${colors.border}`
3538
3606
  },
3539
3607
  children: [
3540
- /* @__PURE__ */ jsx12(
3608
+ /* @__PURE__ */ jsx13(
3541
3609
  "label",
3542
3610
  {
3543
3611
  style: {
@@ -3550,7 +3618,7 @@ function ComposeMessageScreen({ nav }) {
3550
3618
  children: "Subject"
3551
3619
  }
3552
3620
  ),
3553
- /* @__PURE__ */ jsx12(
3621
+ /* @__PURE__ */ jsx13(
3554
3622
  "input",
3555
3623
  {
3556
3624
  type: "text",
@@ -3565,7 +3633,7 @@ function ComposeMessageScreen({ nav }) {
3565
3633
  }
3566
3634
  }
3567
3635
  ),
3568
- /* @__PURE__ */ jsx12(
3636
+ /* @__PURE__ */ jsx13(
3569
3637
  "label",
3570
3638
  {
3571
3639
  style: {
@@ -3579,7 +3647,7 @@ function ComposeMessageScreen({ nav }) {
3579
3647
  children: "Message"
3580
3648
  }
3581
3649
  ),
3582
- /* @__PURE__ */ jsx12(
3650
+ /* @__PURE__ */ jsx13(
3583
3651
  "textarea",
3584
3652
  {
3585
3653
  value: message,
@@ -3598,7 +3666,7 @@ function ComposeMessageScreen({ nav }) {
3598
3666
  }
3599
3667
  }
3600
3668
  ),
3601
- /* @__PURE__ */ jsx12(
3669
+ /* @__PURE__ */ jsx13(
3602
3670
  ImagePickerButtons,
3603
3671
  {
3604
3672
  images: images.images,
@@ -3609,7 +3677,7 @@ function ComposeMessageScreen({ nav }) {
3609
3677
  label: "Attachments (optional)"
3610
3678
  }
3611
3679
  ),
3612
- /* @__PURE__ */ jsx12(
3680
+ /* @__PURE__ */ jsx13(
3613
3681
  "button",
3614
3682
  {
3615
3683
  style: {
@@ -3638,7 +3706,7 @@ function ComposeMessageScreen({ nav }) {
3638
3706
 
3639
3707
  // src/widget/screens/ProfileScreen.tsx
3640
3708
  import { useState as useState9, useEffect as useEffect6 } from "react";
3641
- import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
3709
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
3642
3710
  function ProfileScreen({ nav }) {
3643
3711
  const { testerInfo, assignments, updateTesterProfile, refreshTesterInfo } = useBugBear();
3644
3712
  const [editing, setEditing] = useState9(false);
@@ -3684,22 +3752,22 @@ function ProfileScreen({ nav }) {
3684
3752
  }
3685
3753
  };
3686
3754
  if (saved) {
3687
- return /* @__PURE__ */ jsxs12("div", { style: styles4.emptyState, children: [
3688
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyEmoji, children: "\u2705" }),
3689
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyTitle, children: "Profile saved!" })
3755
+ return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
3756
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u2705" }),
3757
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "Profile saved!" })
3690
3758
  ] });
3691
3759
  }
3692
3760
  if (!testerInfo) {
3693
- return /* @__PURE__ */ jsxs12("div", { style: styles4.emptyState, children: [
3694
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
3695
- /* @__PURE__ */ jsx13("span", { style: styles4.emptyTitle, children: "No profile found" })
3761
+ return /* @__PURE__ */ jsxs13("div", { style: styles4.emptyState, children: [
3762
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyEmoji, children: "\u{1F464}" }),
3763
+ /* @__PURE__ */ jsx14("span", { style: styles4.emptyTitle, children: "No profile found" })
3696
3764
  ] });
3697
3765
  }
3698
3766
  if (editing) {
3699
- return /* @__PURE__ */ jsxs12("div", { children: [
3700
- /* @__PURE__ */ jsxs12("div", { style: styles4.editHeader, children: [
3701
- /* @__PURE__ */ jsx13("span", { style: styles4.editTitle, children: "Edit Profile" }),
3702
- /* @__PURE__ */ jsx13(
3767
+ return /* @__PURE__ */ jsxs13("div", { children: [
3768
+ /* @__PURE__ */ jsxs13("div", { style: styles4.editHeader, children: [
3769
+ /* @__PURE__ */ jsx14("span", { style: styles4.editTitle, children: "Edit Profile" }),
3770
+ /* @__PURE__ */ jsx14(
3703
3771
  "button",
3704
3772
  {
3705
3773
  style: styles4.cancelButton,
@@ -3711,9 +3779,9 @@ function ProfileScreen({ nav }) {
3711
3779
  }
3712
3780
  )
3713
3781
  ] }),
3714
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3715
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Name" }),
3716
- /* @__PURE__ */ jsx13(
3782
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3783
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Name" }),
3784
+ /* @__PURE__ */ jsx14(
3717
3785
  "input",
3718
3786
  {
3719
3787
  style: styles4.input,
@@ -3723,15 +3791,15 @@ function ProfileScreen({ nav }) {
3723
3791
  }
3724
3792
  )
3725
3793
  ] }),
3726
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3727
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Primary Email" }),
3728
- /* @__PURE__ */ jsx13("span", { style: styles4.emailFixed, children: testerInfo.email })
3794
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3795
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Primary Email" }),
3796
+ /* @__PURE__ */ jsx14("span", { style: styles4.emailFixed, children: testerInfo.email })
3729
3797
  ] }),
3730
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3731
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Additional Emails" }),
3732
- additionalEmails.map((email) => /* @__PURE__ */ jsxs12("div", { style: styles4.emailRow, children: [
3733
- /* @__PURE__ */ jsx13("span", { style: styles4.emailText, children: email }),
3734
- /* @__PURE__ */ jsx13(
3798
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3799
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Additional Emails" }),
3800
+ additionalEmails.map((email) => /* @__PURE__ */ jsxs13("div", { style: styles4.emailRow, children: [
3801
+ /* @__PURE__ */ jsx14("span", { style: styles4.emailText, children: email }),
3802
+ /* @__PURE__ */ jsx14(
3735
3803
  "button",
3736
3804
  {
3737
3805
  style: styles4.removeEmailButton,
@@ -3740,8 +3808,8 @@ function ProfileScreen({ nav }) {
3740
3808
  }
3741
3809
  )
3742
3810
  ] }, email)),
3743
- /* @__PURE__ */ jsxs12("div", { style: styles4.addEmailRow, children: [
3744
- /* @__PURE__ */ jsx13(
3811
+ /* @__PURE__ */ jsxs13("div", { style: styles4.addEmailRow, children: [
3812
+ /* @__PURE__ */ jsx14(
3745
3813
  "input",
3746
3814
  {
3747
3815
  style: { ...styles4.input, flex: 1, marginRight: 8 },
@@ -3754,18 +3822,18 @@ function ProfileScreen({ nav }) {
3754
3822
  }
3755
3823
  }
3756
3824
  ),
3757
- /* @__PURE__ */ jsx13("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
3825
+ /* @__PURE__ */ jsx14("button", { style: styles4.addButton, onClick: handleAddEmail, children: "Add" })
3758
3826
  ] })
3759
3827
  ] }),
3760
- /* @__PURE__ */ jsxs12("div", { style: styles4.field, children: [
3761
- /* @__PURE__ */ jsx13("label", { style: styles4.label, children: "Testing Platforms" }),
3762
- /* @__PURE__ */ jsx13("div", { style: styles4.platformRow, children: [
3828
+ /* @__PURE__ */ jsxs13("div", { style: styles4.field, children: [
3829
+ /* @__PURE__ */ jsx14("label", { style: styles4.label, children: "Testing Platforms" }),
3830
+ /* @__PURE__ */ jsx14("div", { style: styles4.platformRow, children: [
3763
3831
  { key: "ios", label: "\u{1F4F1} iOS" },
3764
3832
  { key: "android", label: "\u{1F916} Android" },
3765
3833
  { key: "web", label: "\u{1F310} Web" }
3766
3834
  ].map(({ key, label }) => {
3767
3835
  const isActive = platforms.includes(key);
3768
- return /* @__PURE__ */ jsx13(
3836
+ return /* @__PURE__ */ jsx14(
3769
3837
  "button",
3770
3838
  {
3771
3839
  style: {
@@ -3775,13 +3843,13 @@ function ProfileScreen({ nav }) {
3775
3843
  onClick: () => setPlatforms(
3776
3844
  (prev) => prev.includes(key) ? prev.filter((p) => p !== key) : [...prev, key]
3777
3845
  ),
3778
- children: /* @__PURE__ */ jsx13("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
3846
+ children: /* @__PURE__ */ jsx14("span", { style: isActive ? styles4.platformTextActive : styles4.platformText, children: label })
3779
3847
  },
3780
3848
  key
3781
3849
  );
3782
3850
  }) })
3783
3851
  ] }),
3784
- /* @__PURE__ */ jsx13(
3852
+ /* @__PURE__ */ jsx14(
3785
3853
  "button",
3786
3854
  {
3787
3855
  style: { ...styles4.primaryButton, marginTop: 20 },
@@ -3792,45 +3860,45 @@ function ProfileScreen({ nav }) {
3792
3860
  )
3793
3861
  ] });
3794
3862
  }
3795
- return /* @__PURE__ */ jsxs12("div", { children: [
3796
- /* @__PURE__ */ jsxs12("div", { style: styles4.profileCard, children: [
3797
- /* @__PURE__ */ jsx13("div", { style: styles4.avatar, children: /* @__PURE__ */ jsx13("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
3798
- /* @__PURE__ */ jsx13("span", { style: styles4.profileName, children: testerInfo.name }),
3799
- /* @__PURE__ */ jsx13("span", { style: styles4.profileEmail, children: testerInfo.email })
3863
+ return /* @__PURE__ */ jsxs13("div", { children: [
3864
+ /* @__PURE__ */ jsxs13("div", { style: styles4.profileCard, children: [
3865
+ /* @__PURE__ */ jsx14("div", { style: styles4.avatar, children: /* @__PURE__ */ jsx14("span", { style: styles4.avatarText, children: testerInfo.name.charAt(0).toUpperCase() }) }),
3866
+ /* @__PURE__ */ jsx14("span", { style: styles4.profileName, children: testerInfo.name }),
3867
+ /* @__PURE__ */ jsx14("span", { style: styles4.profileEmail, children: testerInfo.email })
3800
3868
  ] }),
3801
- /* @__PURE__ */ jsxs12("div", { style: styles4.statsRow, children: [
3802
- /* @__PURE__ */ jsxs12("div", { style: styles4.statItem, children: [
3803
- /* @__PURE__ */ jsx13("span", { style: styles4.statNumber, children: completedCount }),
3804
- /* @__PURE__ */ jsx13("span", { style: styles4.statLabel, children: "Completed" })
3869
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statsRow, children: [
3870
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
3871
+ /* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: completedCount }),
3872
+ /* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Completed" })
3805
3873
  ] }),
3806
- /* @__PURE__ */ jsx13("div", { style: styles4.statDivider }),
3807
- /* @__PURE__ */ jsxs12("div", { style: styles4.statItem, children: [
3808
- /* @__PURE__ */ jsx13("span", { style: styles4.statNumber, children: assignments.length }),
3809
- /* @__PURE__ */ jsx13("span", { style: styles4.statLabel, children: "Total Assigned" })
3874
+ /* @__PURE__ */ jsx14("div", { style: styles4.statDivider }),
3875
+ /* @__PURE__ */ jsxs13("div", { style: styles4.statItem, children: [
3876
+ /* @__PURE__ */ jsx14("span", { style: styles4.statNumber, children: assignments.length }),
3877
+ /* @__PURE__ */ jsx14("span", { style: styles4.statLabel, children: "Total Assigned" })
3810
3878
  ] })
3811
3879
  ] }),
3812
- /* @__PURE__ */ jsx13(
3880
+ /* @__PURE__ */ jsx14(
3813
3881
  "button",
3814
3882
  {
3815
3883
  style: styles4.detailsToggle,
3816
3884
  onClick: () => setShowDetails(!showDetails),
3817
- children: /* @__PURE__ */ jsxs12("span", { style: styles4.detailsToggleText, children: [
3885
+ children: /* @__PURE__ */ jsxs13("span", { style: styles4.detailsToggleText, children: [
3818
3886
  showDetails ? "\u25BC" : "\u25B6",
3819
3887
  " Details"
3820
3888
  ] })
3821
3889
  }
3822
3890
  ),
3823
- showDetails && /* @__PURE__ */ jsxs12("div", { style: styles4.detailsSection, children: [
3824
- additionalEmails.length > 0 && /* @__PURE__ */ jsxs12("div", { style: styles4.detailBlock, children: [
3825
- /* @__PURE__ */ jsx13("span", { style: styles4.detailLabel, children: "Additional Emails" }),
3826
- additionalEmails.map((e) => /* @__PURE__ */ jsx13("span", { style: styles4.detailValue, children: e }, e))
3891
+ showDetails && /* @__PURE__ */ jsxs13("div", { style: styles4.detailsSection, children: [
3892
+ additionalEmails.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
3893
+ /* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Additional Emails" }),
3894
+ additionalEmails.map((e) => /* @__PURE__ */ jsx14("span", { style: styles4.detailValue, children: e }, e))
3827
3895
  ] }),
3828
- platforms.length > 0 && /* @__PURE__ */ jsxs12("div", { style: styles4.detailBlock, children: [
3829
- /* @__PURE__ */ jsx13("span", { style: styles4.detailLabel, children: "Platforms" }),
3830
- /* @__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)) })
3896
+ platforms.length > 0 && /* @__PURE__ */ jsxs13("div", { style: styles4.detailBlock, children: [
3897
+ /* @__PURE__ */ jsx14("span", { style: styles4.detailLabel, children: "Platforms" }),
3898
+ /* @__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)) })
3831
3899
  ] })
3832
3900
  ] }),
3833
- /* @__PURE__ */ jsx13(
3901
+ /* @__PURE__ */ jsx14(
3834
3902
  "button",
3835
3903
  {
3836
3904
  style: { ...styles4.primaryButton, marginTop: 20 },
@@ -4114,7 +4182,7 @@ var styles4 = {
4114
4182
 
4115
4183
  // src/widget/screens/IssueListScreen.tsx
4116
4184
  import { useState as useState10, useEffect as useEffect7 } from "react";
4117
- import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
4185
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4118
4186
  var CATEGORY_CONFIG = {
4119
4187
  open: { label: "Open Issues", accent: "#f97316", emptyIcon: "\u2705", emptyText: "No open issues" },
4120
4188
  done: { label: "Done", accent: "#22c55e", emptyIcon: "\u{1F389}", emptyText: "No completed issues yet" },
@@ -4147,15 +4215,15 @@ function IssueListScreen({ nav, category }) {
4147
4215
  };
4148
4216
  }, [client, category]);
4149
4217
  if (loading) {
4150
- return /* @__PURE__ */ jsx14("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx14("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
4218
+ return /* @__PURE__ */ jsx15("div", { style: { padding: "40px 0", textAlign: "center" }, children: /* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: "Loading..." }) });
4151
4219
  }
4152
4220
  if (issues.length === 0) {
4153
- return /* @__PURE__ */ jsxs13("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
4154
- /* @__PURE__ */ jsx14("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
4155
- /* @__PURE__ */ jsx14("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
4221
+ return /* @__PURE__ */ jsxs14("div", { style: { padding: "40px 0", textAlign: "center" }, children: [
4222
+ /* @__PURE__ */ jsx15("div", { style: { fontSize: 36, marginBottom: 8 }, children: config.emptyIcon }),
4223
+ /* @__PURE__ */ jsx15("div", { style: { color: colors.textMuted, fontSize: 14 }, children: config.emptyText })
4156
4224
  ] });
4157
4225
  }
4158
- return /* @__PURE__ */ jsx14("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs13(
4226
+ return /* @__PURE__ */ jsx15("div", { children: issues.map((issue) => /* @__PURE__ */ jsxs14(
4159
4227
  "div",
4160
4228
  {
4161
4229
  role: "button",
@@ -4174,8 +4242,8 @@ function IssueListScreen({ nav, category }) {
4174
4242
  userSelect: "none"
4175
4243
  },
4176
4244
  children: [
4177
- /* @__PURE__ */ jsxs13("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
4178
- issue.severity && /* @__PURE__ */ jsx14(
4245
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "flex-start", gap: 8 }, children: [
4246
+ issue.severity && /* @__PURE__ */ jsx15(
4179
4247
  "span",
4180
4248
  {
4181
4249
  style: {
@@ -4188,7 +4256,7 @@ function IssueListScreen({ nav, category }) {
4188
4256
  }
4189
4257
  }
4190
4258
  ),
4191
- /* @__PURE__ */ jsx14("span", { style: {
4259
+ /* @__PURE__ */ jsx15("span", { style: {
4192
4260
  fontSize: 13,
4193
4261
  fontWeight: 600,
4194
4262
  color: colors.textPrimary,
@@ -4198,11 +4266,11 @@ function IssueListScreen({ nav, category }) {
4198
4266
  whiteSpace: "nowrap"
4199
4267
  }, children: issue.title })
4200
4268
  ] }),
4201
- /* @__PURE__ */ jsxs13("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
4202
- issue.route && /* @__PURE__ */ jsx14("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
4203
- /* @__PURE__ */ jsx14("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
4269
+ /* @__PURE__ */ jsxs14("div", { style: { display: "flex", justifyContent: "space-between", marginTop: 6 }, children: [
4270
+ issue.route && /* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, maxWidth: "60%", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: issue.route }),
4271
+ /* @__PURE__ */ jsx15("span", { style: { fontSize: 11, color: colors.textDim, marginLeft: "auto" }, children: formatRelativeTime(issue.updatedAt) })
4204
4272
  ] }),
4205
- category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs13("div", { style: {
4273
+ category === "done" && issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
4206
4274
  display: "inline-flex",
4207
4275
  alignItems: "center",
4208
4276
  gap: 4,
@@ -4218,7 +4286,7 @@ function IssueListScreen({ nav, category }) {
4218
4286
  "\u2714 Verified by ",
4219
4287
  issue.verifiedByName
4220
4288
  ] }),
4221
- category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs13("div", { style: {
4289
+ category === "reopened" && issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
4222
4290
  display: "inline-flex",
4223
4291
  alignItems: "center",
4224
4292
  gap: 4,
@@ -4245,7 +4313,7 @@ function IssueListScreen({ nav, category }) {
4245
4313
  }
4246
4314
 
4247
4315
  // src/widget/screens/IssueDetailScreen.tsx
4248
- import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4316
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4249
4317
  var STATUS_LABELS = {
4250
4318
  new: { label: "New", bg: "#1e3a5f", color: "#60a5fa" },
4251
4319
  triaging: { label: "Triaging", bg: "#1e3a5f", color: "#60a5fa" },
@@ -4269,9 +4337,9 @@ var SEVERITY_CONFIG = {
4269
4337
  function IssueDetailScreen({ nav, issue }) {
4270
4338
  const statusConfig = STATUS_LABELS[issue.status] || { label: issue.status, bg: "#27272a", color: "#a1a1aa" };
4271
4339
  const severityConfig = issue.severity ? SEVERITY_CONFIG[issue.severity] : null;
4272
- return /* @__PURE__ */ jsxs14("div", { children: [
4273
- /* @__PURE__ */ jsxs14("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
4274
- /* @__PURE__ */ jsx15("span", { style: {
4340
+ return /* @__PURE__ */ jsxs15("div", { children: [
4341
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", gap: 8, flexWrap: "wrap", marginBottom: 12 }, children: [
4342
+ /* @__PURE__ */ jsx16("span", { style: {
4275
4343
  backgroundColor: statusConfig.bg,
4276
4344
  color: statusConfig.color,
4277
4345
  fontSize: 11,
@@ -4279,7 +4347,7 @@ function IssueDetailScreen({ nav, issue }) {
4279
4347
  padding: "3px 10px",
4280
4348
  borderRadius: 6
4281
4349
  }, children: statusConfig.label }),
4282
- severityConfig && /* @__PURE__ */ jsx15("span", { style: {
4350
+ severityConfig && /* @__PURE__ */ jsx16("span", { style: {
4283
4351
  backgroundColor: severityConfig.bg,
4284
4352
  color: severityConfig.color,
4285
4353
  fontSize: 11,
@@ -4288,9 +4356,9 @@ function IssueDetailScreen({ nav, issue }) {
4288
4356
  borderRadius: 6
4289
4357
  }, children: severityConfig.label })
4290
4358
  ] }),
4291
- /* @__PURE__ */ jsx15("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
4292
- issue.route && /* @__PURE__ */ jsx15("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
4293
- issue.description && /* @__PURE__ */ jsx15("div", { style: {
4359
+ /* @__PURE__ */ jsx16("h3", { style: { fontSize: 16, fontWeight: 700, color: colors.textPrimary, margin: "0 0 8px 0", lineHeight: 1.3 }, children: issue.title }),
4360
+ issue.route && /* @__PURE__ */ jsx16("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 12 }, children: issue.route }),
4361
+ issue.description && /* @__PURE__ */ jsx16("div", { style: {
4294
4362
  backgroundColor: colors.card,
4295
4363
  border: `1px solid ${colors.border}`,
4296
4364
  borderRadius: 8,
@@ -4302,56 +4370,56 @@ function IssueDetailScreen({ nav, issue }) {
4302
4370
  whiteSpace: "pre-wrap",
4303
4371
  wordBreak: "break-word"
4304
4372
  }, children: issue.description }),
4305
- issue.verifiedByName && /* @__PURE__ */ jsxs14("div", { style: {
4373
+ issue.verifiedByName && /* @__PURE__ */ jsxs15("div", { style: {
4306
4374
  backgroundColor: "#14532d",
4307
4375
  border: "1px solid #166534",
4308
4376
  borderRadius: 8,
4309
4377
  padding: 12,
4310
4378
  marginBottom: 12
4311
4379
  }, children: [
4312
- /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4313
- /* @__PURE__ */ jsx15("span", { style: { fontSize: 16 }, children: "\u2705" }),
4314
- /* @__PURE__ */ jsx15("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
4380
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4381
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u2705" }),
4382
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#4ade80" }, children: "Retesting Proof" })
4315
4383
  ] }),
4316
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#86efac" }, children: [
4384
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#86efac" }, children: [
4317
4385
  "Verified by ",
4318
- /* @__PURE__ */ jsx15("strong", { children: issue.verifiedByName }),
4319
- issue.verifiedAt && /* @__PURE__ */ jsxs14("span", { children: [
4386
+ /* @__PURE__ */ jsx16("strong", { children: issue.verifiedByName }),
4387
+ issue.verifiedAt && /* @__PURE__ */ jsxs15("span", { children: [
4320
4388
  " on ",
4321
4389
  new Date(issue.verifiedAt).toLocaleDateString(void 0, { month: "short", day: "numeric", year: "numeric" })
4322
4390
  ] })
4323
4391
  ] })
4324
4392
  ] }),
4325
- issue.originalBugTitle && /* @__PURE__ */ jsxs14("div", { style: {
4393
+ issue.originalBugTitle && /* @__PURE__ */ jsxs15("div", { style: {
4326
4394
  backgroundColor: "#422006",
4327
4395
  border: "1px solid #854d0e",
4328
4396
  borderRadius: 8,
4329
4397
  padding: 12,
4330
4398
  marginBottom: 12
4331
4399
  }, children: [
4332
- /* @__PURE__ */ jsxs14("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4333
- /* @__PURE__ */ jsx15("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
4334
- /* @__PURE__ */ jsx15("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
4400
+ /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8, marginBottom: 4 }, children: [
4401
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 16 }, children: "\u{1F504}" }),
4402
+ /* @__PURE__ */ jsx16("span", { style: { fontSize: 13, fontWeight: 600, color: "#fbbf24" }, children: "Original Bug" })
4335
4403
  ] }),
4336
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
4404
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: "#fde68a" }, children: [
4337
4405
  "Retest of: ",
4338
- /* @__PURE__ */ jsx15("strong", { children: issue.originalBugTitle })
4406
+ /* @__PURE__ */ jsx16("strong", { children: issue.originalBugTitle })
4339
4407
  ] })
4340
4408
  ] }),
4341
- issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ jsxs14("div", { style: { marginBottom: 12 }, children: [
4342
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
4409
+ issue.screenshotUrls && issue.screenshotUrls.length > 0 && /* @__PURE__ */ jsxs15("div", { style: { marginBottom: 12 }, children: [
4410
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, fontWeight: 600, color: colors.textMuted, marginBottom: 8 }, children: [
4343
4411
  "Screenshots (",
4344
4412
  issue.screenshotUrls.length,
4345
4413
  ")"
4346
4414
  ] }),
4347
- /* @__PURE__ */ jsx15("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx15(
4415
+ /* @__PURE__ */ jsx16("div", { style: { display: "flex", gap: 8, overflowX: "auto" }, children: issue.screenshotUrls.map((url, i) => /* @__PURE__ */ jsx16(
4348
4416
  "a",
4349
4417
  {
4350
4418
  href: url,
4351
4419
  target: "_blank",
4352
4420
  rel: "noopener noreferrer",
4353
4421
  style: { flexShrink: 0 },
4354
- children: /* @__PURE__ */ jsx15(
4422
+ children: /* @__PURE__ */ jsx16(
4355
4423
  "img",
4356
4424
  {
4357
4425
  src: url,
@@ -4369,16 +4437,16 @@ function IssueDetailScreen({ nav, issue }) {
4369
4437
  i
4370
4438
  )) })
4371
4439
  ] }),
4372
- /* @__PURE__ */ jsxs14("div", { style: {
4440
+ /* @__PURE__ */ jsxs15("div", { style: {
4373
4441
  borderTop: `1px solid ${colors.border}`,
4374
4442
  paddingTop: 12,
4375
4443
  marginTop: 4
4376
4444
  }, children: [
4377
- issue.reporterName && /* @__PURE__ */ jsxs14("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
4445
+ issue.reporterName && /* @__PURE__ */ jsxs15("div", { style: { fontSize: 12, color: colors.textDim, marginBottom: 4 }, children: [
4378
4446
  "Reported by ",
4379
4447
  issue.reporterName
4380
4448
  ] }),
4381
- /* @__PURE__ */ jsxs14("div", { style: { fontSize: 11, color: colors.textDim }, children: [
4449
+ /* @__PURE__ */ jsxs15("div", { style: { fontSize: 11, color: colors.textDim }, children: [
4382
4450
  "Created ",
4383
4451
  formatRelativeTime(issue.createdAt),
4384
4452
  " \xB7 Updated ",
@@ -4392,9 +4460,9 @@ function IssueDetailScreen({ nav, issue }) {
4392
4460
  var BUGBEAR_LOGO_BASE64 = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAAAXNSR0IArs4c6QAAAJhlWElmTU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUAAAABAAAARgEoAAMAAAABAAIAAIdpAAQAAAABAAAATgAAAAAAAABIAAAAAQAAAEgAAAABAASQBAACAAAAFAAAAISgAQADAAAAAQABAACgAgAEAAAAAQAAAGCgAwAEAAAAAQAAAGAAAAAAMjAyNjowMToyNCAxNjoyMTozOABbbVCuAAAACXBIWXMAAAsTAAALEwEAmpwYAAACo2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNi4wLjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczpJcHRjNHhtcEV4dD0iaHR0cDovL2lwdGMub3JnL3N0ZC9JcHRjNHhtcEV4dC8yMDA4LTAyLTI5LyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPElwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPmh0dHA6Ly9jdi5pcHRjLm9yZy9uZXdzY29kZXMvZGlnaXRhbHNvdXJjZXR5cGUvdHJhaW5lZEFsZ29yaXRobWljTWVkaWE8L0lwdGM0eG1wRXh0OkRpZ2l0YWxTb3VyY2VUeXBlPgogICAgICAgICA8SXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPmZjNzJlN2Q2LTYyYTEtNDE1ZS04MjY5LWM2NjA4MjY0OWRiMDwvSXB0YzR4bXBFeHQ6RGlnSW1hZ2VHVUlEPgogICAgICAgICA8eG1wOkNyZWF0ZURhdGU+MjAyNi0wMS0yNFQxNjoyMTozODwveG1wOkNyZWF0ZURhdGU+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+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";
4393
4461
 
4394
4462
  // src/BugBearPanel.tsx
4395
- import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4463
+ import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
4396
4464
  function BugBearIcon({ size = 24 }) {
4397
- return /* @__PURE__ */ jsx16(
4465
+ return /* @__PURE__ */ jsx17(
4398
4466
  "img",
4399
4467
  {
4400
4468
  src: BUGBEAR_LOGO_BASE64,
@@ -4559,37 +4627,37 @@ function BugBearPanel({
4559
4627
  const renderScreen = () => {
4560
4628
  switch (currentScreen.name) {
4561
4629
  case "HOME":
4562
- return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4630
+ return /* @__PURE__ */ jsx17(HomeScreen, { nav });
4563
4631
  case "TEST_DETAIL":
4564
- return /* @__PURE__ */ jsx16(TestDetailScreen, { testId: currentScreen.testId, nav });
4632
+ return /* @__PURE__ */ jsx17(TestDetailScreen, { testId: currentScreen.testId, nav });
4565
4633
  case "TEST_LIST":
4566
- return /* @__PURE__ */ jsx16(TestListScreen, { nav });
4634
+ return /* @__PURE__ */ jsx17(TestListScreen, { nav });
4567
4635
  case "TEST_FEEDBACK":
4568
- return /* @__PURE__ */ jsx16(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4636
+ return /* @__PURE__ */ jsx17(TestFeedbackScreen, { status: currentScreen.status, assignmentId: currentScreen.assignmentId, nav });
4569
4637
  case "REPORT":
4570
- return /* @__PURE__ */ jsx16(ReportScreen, { nav, prefill: currentScreen.prefill });
4638
+ return /* @__PURE__ */ jsx17(ReportScreen, { nav, prefill: currentScreen.prefill });
4571
4639
  case "REPORT_SUCCESS":
4572
- return /* @__PURE__ */ jsx16(ReportSuccessScreen, { nav });
4640
+ return /* @__PURE__ */ jsx17(ReportSuccessScreen, { nav });
4573
4641
  case "MESSAGE_LIST":
4574
- return /* @__PURE__ */ jsx16(MessageListScreen, { nav });
4642
+ return /* @__PURE__ */ jsx17(MessageListScreen, { nav });
4575
4643
  case "THREAD_DETAIL":
4576
- return /* @__PURE__ */ jsx16(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4644
+ return /* @__PURE__ */ jsx17(ThreadDetailScreen, { thread: currentScreen.thread, nav });
4577
4645
  case "COMPOSE_MESSAGE":
4578
- return /* @__PURE__ */ jsx16(ComposeMessageScreen, { nav });
4646
+ return /* @__PURE__ */ jsx17(ComposeMessageScreen, { nav });
4579
4647
  case "ISSUE_LIST":
4580
- return /* @__PURE__ */ jsx16(IssueListScreen, { nav, category: currentScreen.category });
4648
+ return /* @__PURE__ */ jsx17(IssueListScreen, { nav, category: currentScreen.category });
4581
4649
  case "ISSUE_DETAIL":
4582
- return /* @__PURE__ */ jsx16(IssueDetailScreen, { nav, issue: currentScreen.issue });
4650
+ return /* @__PURE__ */ jsx17(IssueDetailScreen, { nav, issue: currentScreen.issue });
4583
4651
  case "PROFILE":
4584
- return /* @__PURE__ */ jsx16(ProfileScreen, { nav });
4652
+ return /* @__PURE__ */ jsx17(ProfileScreen, { nav });
4585
4653
  default:
4586
- return /* @__PURE__ */ jsx16(HomeScreen, { nav });
4654
+ return /* @__PURE__ */ jsx17(HomeScreen, { nav });
4587
4655
  }
4588
4656
  };
4589
4657
  if (typeof document === "undefined") return null;
4590
4658
  const headerTitle = getHeaderTitle();
4591
4659
  return createPortal(
4592
- /* @__PURE__ */ jsxs15(
4660
+ /* @__PURE__ */ jsxs16(
4593
4661
  "div",
4594
4662
  {
4595
4663
  ref: panelRef,
@@ -4608,7 +4676,7 @@ function BugBearPanel({
4608
4676
  },
4609
4677
  onMouseDown: handleMouseDown,
4610
4678
  children: [
4611
- collapsed && /* @__PURE__ */ jsxs15(
4679
+ collapsed && /* @__PURE__ */ jsxs16(
4612
4680
  "button",
4613
4681
  {
4614
4682
  onClick: () => setCollapsed(false),
@@ -4630,9 +4698,9 @@ function BugBearPanel({
4630
4698
  fontWeight: 500
4631
4699
  },
4632
4700
  children: [
4633
- /* @__PURE__ */ jsx16(BugBearIcon, { size: 24 }),
4634
- /* @__PURE__ */ jsx16("span", { children: "BugBear" }),
4635
- badgeCount > 0 && /* @__PURE__ */ jsx16("span", { style: {
4701
+ /* @__PURE__ */ jsx17(BugBearIcon, { size: 24 }),
4702
+ /* @__PURE__ */ jsx17("span", { children: "BugBear" }),
4703
+ badgeCount > 0 && /* @__PURE__ */ jsx17("span", { style: {
4636
4704
  backgroundColor: "#fff",
4637
4705
  color: colors.blue,
4638
4706
  fontSize: "0.75rem",
@@ -4643,7 +4711,7 @@ function BugBearPanel({
4643
4711
  ]
4644
4712
  }
4645
4713
  ),
4646
- !collapsed && /* @__PURE__ */ jsxs15("div", { style: {
4714
+ !collapsed && /* @__PURE__ */ jsxs16("div", { style: {
4647
4715
  width: PANEL_WIDTH,
4648
4716
  backgroundColor: colors.bg,
4649
4717
  borderRadius: 12,
@@ -4651,7 +4719,7 @@ function BugBearPanel({
4651
4719
  overflow: "hidden",
4652
4720
  boxShadow: "0 25px 50px -12px rgba(0,0,0,0.5)"
4653
4721
  }, children: [
4654
- /* @__PURE__ */ jsxs15(
4722
+ /* @__PURE__ */ jsxs16(
4655
4723
  "div",
4656
4724
  {
4657
4725
  "data-drag-handle": true,
@@ -4667,7 +4735,7 @@ function BugBearPanel({
4667
4735
  cursor: draggable ? isDragging ? "grabbing" : "grab" : "default"
4668
4736
  },
4669
4737
  children: [
4670
- /* @__PURE__ */ jsx16("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx16(
4738
+ /* @__PURE__ */ jsx17("div", { style: { display: "flex", alignItems: "center", gap: 8, flex: 1, minWidth: 0 }, children: canGoBack ? /* @__PURE__ */ jsx17(
4671
4739
  "button",
4672
4740
  {
4673
4741
  onClick: pop,
@@ -4683,14 +4751,14 @@ function BugBearPanel({
4683
4751
  },
4684
4752
  children: "\u2190 Back"
4685
4753
  }
4686
- ) : /* @__PURE__ */ jsxs15(Fragment4, { children: [
4687
- /* @__PURE__ */ jsx16(BugBearIcon, { size: 28 }),
4688
- /* @__PURE__ */ jsxs15("div", { children: [
4689
- /* @__PURE__ */ jsxs15("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4690
- /* @__PURE__ */ jsx16("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
4691
- draggable && /* @__PURE__ */ jsx16("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
4754
+ ) : /* @__PURE__ */ jsxs16(Fragment4, { children: [
4755
+ /* @__PURE__ */ jsx17(BugBearIcon, { size: 28 }),
4756
+ /* @__PURE__ */ jsxs16("div", { children: [
4757
+ /* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: 8 }, children: [
4758
+ /* @__PURE__ */ jsx17("span", { style: { fontWeight: 600, fontSize: "0.875rem" }, children: "BugBear" }),
4759
+ draggable && /* @__PURE__ */ jsx17("span", { style: { color: colors.textMuted, fontSize: "0.75rem" }, title: "Drag to move, double-click to reset", children: "\u22EE\u22EE" })
4692
4760
  ] }),
4693
- testerInfo && /* @__PURE__ */ jsxs15(
4761
+ testerInfo && /* @__PURE__ */ jsxs16(
4694
4762
  "button",
4695
4763
  {
4696
4764
  onClick: () => push({ name: "PROFILE" }),
@@ -4708,13 +4776,13 @@ function BugBearPanel({
4708
4776
  },
4709
4777
  children: [
4710
4778
  testerInfo.name,
4711
- /* @__PURE__ */ jsx16("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4779
+ /* @__PURE__ */ jsx17("span", { style: { fontSize: "0.625rem" }, children: "\u270E" })
4712
4780
  ]
4713
4781
  }
4714
4782
  )
4715
4783
  ] })
4716
4784
  ] }) }),
4717
- headerTitle ? /* @__PURE__ */ jsx16("span", { style: {
4785
+ headerTitle ? /* @__PURE__ */ jsx17("span", { style: {
4718
4786
  fontSize: "0.8125rem",
4719
4787
  fontWeight: 600,
4720
4788
  color: colors.textSecondary,
@@ -4724,7 +4792,7 @@ function BugBearPanel({
4724
4792
  textOverflow: "ellipsis",
4725
4793
  whiteSpace: "nowrap"
4726
4794
  }, children: headerTitle }) : null,
4727
- /* @__PURE__ */ jsx16(
4795
+ /* @__PURE__ */ jsx17(
4728
4796
  "button",
4729
4797
  {
4730
4798
  onClick: handleClose,
@@ -4748,13 +4816,13 @@ function BugBearPanel({
4748
4816
  ]
4749
4817
  }
4750
4818
  ),
4751
- /* @__PURE__ */ jsx16("div", { style: {
4819
+ /* @__PURE__ */ jsx17("div", { style: {
4752
4820
  padding: 16,
4753
4821
  maxHeight: 400,
4754
4822
  overflowY: "auto",
4755
4823
  backgroundColor: colors.bg,
4756
4824
  color: colors.textSecondary
4757
- }, 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() })
4825
+ }, 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() })
4758
4826
  ] })
4759
4827
  ]
4760
4828
  }
@@ -4766,7 +4834,7 @@ function BugBearPanel({
4766
4834
  // src/BugBearErrorBoundary.tsx
4767
4835
  import { Component } from "react";
4768
4836
  import { captureError, contextCapture as contextCapture2 } from "@bbearai/core";
4769
- import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
4837
+ import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
4770
4838
  var BugBearErrorBoundary = class extends Component {
4771
4839
  constructor(props) {
4772
4840
  super(props);
@@ -4811,7 +4879,7 @@ var BugBearErrorBoundary = class extends Component {
4811
4879
  if (fallback) {
4812
4880
  return fallback;
4813
4881
  }
4814
- return /* @__PURE__ */ jsxs16(
4882
+ return /* @__PURE__ */ jsxs17(
4815
4883
  "div",
4816
4884
  {
4817
4885
  style: {
@@ -4823,13 +4891,13 @@ var BugBearErrorBoundary = class extends Component {
4823
4891
  fontFamily: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
4824
4892
  },
4825
4893
  children: [
4826
- /* @__PURE__ */ jsxs16("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
4827
- /* @__PURE__ */ jsx17("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
4828
- /* @__PURE__ */ jsx17("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
4894
+ /* @__PURE__ */ jsxs17("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "12px" }, children: [
4895
+ /* @__PURE__ */ jsx18("img", { src: BUGBEAR_LOGO_BASE64, alt: "BugBear", width: 28, height: 28, style: { objectFit: "contain" } }),
4896
+ /* @__PURE__ */ jsx18("h3", { style: { margin: 0, color: "#991b1b", fontSize: "16px" }, children: "Something went wrong" })
4829
4897
  ] }),
4830
- /* @__PURE__ */ jsx17("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
4831
- /* @__PURE__ */ jsxs16("div", { style: { display: "flex", gap: "8px" }, children: [
4832
- /* @__PURE__ */ jsx17(
4898
+ /* @__PURE__ */ jsx18("p", { style: { color: "#7f1d1d", fontSize: "14px", margin: "0 0 12px 0" }, children: error.message }),
4899
+ /* @__PURE__ */ jsxs17("div", { style: { display: "flex", gap: "8px" }, children: [
4900
+ /* @__PURE__ */ jsx18(
4833
4901
  "button",
4834
4902
  {
4835
4903
  onClick: this.reset,
@@ -4846,7 +4914,7 @@ var BugBearErrorBoundary = class extends Component {
4846
4914
  children: "Try Again"
4847
4915
  }
4848
4916
  ),
4849
- /* @__PURE__ */ jsx17(
4917
+ /* @__PURE__ */ jsx18(
4850
4918
  "button",
4851
4919
  {
4852
4920
  onClick: () => window.location.reload(),
@@ -4864,7 +4932,7 @@ var BugBearErrorBoundary = class extends Component {
4864
4932
  }
4865
4933
  )
4866
4934
  ] }),
4867
- /* @__PURE__ */ jsx17("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4935
+ /* @__PURE__ */ jsx18("p", { style: { color: "#9ca3af", fontSize: "12px", marginTop: "12px" }, children: "The error has been captured by BugBear" })
4868
4936
  ]
4869
4937
  }
4870
4938
  );