glitchgrab 1.48.0 → 1.48.1

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.js CHANGED
@@ -1013,10 +1013,11 @@ var import_jsx_runtime = require("react/jsx-runtime");
1013
1013
  var import_react3 = require("react");
1014
1014
  var import_react_dom2 = require("react-dom");
1015
1015
  var import_jsx_runtime2 = require("react/jsx-runtime");
1016
+ var import_jsx_runtime3 = require("react/jsx-runtime");
1016
1017
  var import_react4 = require("react");
1017
1018
  var import_react_dom3 = require("react-dom");
1018
- var import_jsx_runtime3 = require("react/jsx-runtime");
1019
1019
  var import_jsx_runtime4 = require("react/jsx-runtime");
1020
+ var import_jsx_runtime5 = require("react/jsx-runtime");
1020
1021
  var MAX_SCREENSHOT_DATA_URL_LENGTH = 18e5;
1021
1022
  var QUALITY_LADDER = [0.92, 0.85, 0.75];
1022
1023
  var DOWNSCALE_FACTOR = 0.7;
@@ -1447,6 +1448,412 @@ function getTypeLabel(type) {
1447
1448
  return "Other";
1448
1449
  }
1449
1450
  }
1451
+ var CODE = /`([^`\n]+)`/y;
1452
+ var MD_LINK = /\[([^\]\n]*)\]\((https?:\/\/[^\s)]+)\)/y;
1453
+ var BOLD_STAR = /\*\*(\S(?:[^\n]*?\S)?)\*\*/y;
1454
+ var BOLD_UNDER = /__(\S(?:[^\n]*?\S)?)__/y;
1455
+ var ITALIC_STAR = /\*(\S(?:[^*\n]*?\S)?)\*/y;
1456
+ var ITALIC_UNDER = /_(\S(?:[^_\n]*?\S)?)_/y;
1457
+ var STRIKE = /~~(\S(?:[^\n]*?\S)?)~~/y;
1458
+ var FULL_URL = /https?:\/\/[^\s<>]+/y;
1459
+ var BARE_URL = /(?:[a-z0-9-]+\.)+[a-z]{2,24}\/[^\s<>]*/y;
1460
+ var WORD = /[A-Za-z0-9]/;
1461
+ var URL_EDGE = /[A-Za-z0-9@./-]/;
1462
+ var TRAILING_PUNCT = /[.,;:!?'")\]*_~]+$/;
1463
+ var ESCAPABLE = "\\`*_{}[]()#+-.!|~>";
1464
+ var MONO = "ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
1465
+ function at(re, text, i) {
1466
+ re.lastIndex = i;
1467
+ return re.exec(text);
1468
+ }
1469
+ function isSafeHref(href) {
1470
+ try {
1471
+ const { protocol } = new URL(href);
1472
+ return protocol === "http:" || protocol === "https:";
1473
+ } catch (e) {
1474
+ return false;
1475
+ }
1476
+ }
1477
+ function renderInline(text, theme, key) {
1478
+ var _a, _b;
1479
+ const out = [];
1480
+ let plain = "";
1481
+ let i = 0;
1482
+ const flush = () => {
1483
+ if (plain) out.push(plain);
1484
+ plain = "";
1485
+ };
1486
+ const link = (href, label, k) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1487
+ "a",
1488
+ {
1489
+ href,
1490
+ target: "_blank",
1491
+ rel: "noopener noreferrer nofollow",
1492
+ title: href,
1493
+ style: {
1494
+ color: "inherit",
1495
+ textDecoration: "underline",
1496
+ textDecorationColor: theme.accent,
1497
+ textUnderlineOffset: "2px",
1498
+ wordBreak: "break-word"
1499
+ },
1500
+ children: label
1501
+ },
1502
+ k
1503
+ );
1504
+ while (i < text.length) {
1505
+ const ch = text[i];
1506
+ const prev = i > 0 ? text[i - 1] : "";
1507
+ const k = `${key}.${i}`;
1508
+ let m;
1509
+ if (ch === "\\" && i + 1 < text.length && ESCAPABLE.includes(text[i + 1])) {
1510
+ plain += text[i + 1];
1511
+ i += 2;
1512
+ continue;
1513
+ }
1514
+ if (ch === "`" && (m = at(CODE, text, i))) {
1515
+ flush();
1516
+ out.push(
1517
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1518
+ "code",
1519
+ {
1520
+ style: {
1521
+ fontFamily: MONO,
1522
+ fontSize: "0.92em",
1523
+ padding: "1px 4px",
1524
+ borderRadius: "4px",
1525
+ backgroundColor: theme.bg,
1526
+ border: `1px solid ${theme.border}`,
1527
+ wordBreak: "break-word"
1528
+ },
1529
+ children: m[1]
1530
+ },
1531
+ k
1532
+ )
1533
+ );
1534
+ i += m[0].length;
1535
+ continue;
1536
+ }
1537
+ const image = ch === "!" && text[i + 1] === "[";
1538
+ if ((ch === "[" || image) && (m = at(MD_LINK, text, image ? i + 1 : i)) && isSafeHref(m[2])) {
1539
+ flush();
1540
+ const label = m[1] ? renderInline(m[1], theme, k) : m[2];
1541
+ out.push(link(m[2], label, k));
1542
+ i += m[0].length + (image ? 1 : 0);
1543
+ continue;
1544
+ }
1545
+ if (ch === "~" && text[i + 1] === "~" && (m = at(STRIKE, text, i))) {
1546
+ flush();
1547
+ out.push(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("del", { children: renderInline(m[1], theme, k) }, k));
1548
+ i += m[0].length;
1549
+ continue;
1550
+ }
1551
+ if ((ch === "*" || ch === "_") && !WORD.test(prev)) {
1552
+ const double = text[i + 1] === ch;
1553
+ const bold = double ? at(ch === "*" ? BOLD_STAR : BOLD_UNDER, text, i) : null;
1554
+ const italic = bold ? null : at(ch === "*" ? ITALIC_STAR : ITALIC_UNDER, text, i);
1555
+ m = bold != null ? bold : italic;
1556
+ if (m && !WORD.test((_a = text[i + m[0].length]) != null ? _a : "")) {
1557
+ flush();
1558
+ const inner = renderInline(m[1], theme, k);
1559
+ out.push(
1560
+ bold ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { style: { fontWeight: 700 }, children: inner }, k) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("em", { style: { fontStyle: "italic" }, children: inner }, k)
1561
+ );
1562
+ i += m[0].length;
1563
+ continue;
1564
+ }
1565
+ }
1566
+ if (!URL_EDGE.test(prev)) {
1567
+ m = ch === "h" ? at(FULL_URL, text, i) : null;
1568
+ const bare = m ? null : /[a-z0-9]/.test(ch) ? at(BARE_URL, text, i) : null;
1569
+ const raw = (_b = m == null ? void 0 : m[0]) != null ? _b : bare == null ? void 0 : bare[0];
1570
+ if (raw) {
1571
+ const shown = raw.replace(TRAILING_PUNCT, "");
1572
+ const href = m ? shown : `https://${shown}`;
1573
+ if (shown.includes("/") && isSafeHref(href)) {
1574
+ flush();
1575
+ out.push(link(href, shown, k));
1576
+ i += shown.length;
1577
+ continue;
1578
+ }
1579
+ }
1580
+ }
1581
+ plain += ch;
1582
+ i += 1;
1583
+ }
1584
+ flush();
1585
+ return out;
1586
+ }
1587
+ var FENCE = /^\s{0,3}(`{3,}|~{3,})/;
1588
+ var HEADING = /^\s{0,3}(#{1,6})\s+(.+?)(?:\s+#+)?\s*$/;
1589
+ var RULE = /^\s{0,3}([-*_])(?:\s*\1){2,}\s*$/;
1590
+ var QUOTE = /^\s{0,3}>\s?(.*)$/;
1591
+ var LIST_ITEM = /^(\s*)([-*+]|\d{1,9}[.)])\s+(.*)$/;
1592
+ var TABLE_SEP = /^\s*\|?\s*:?-+:?\s*(?:\|\s*:?-+:?\s*)*\|?\s*$/;
1593
+ var TASK = /^\[([ xX])\]\s+(.*)$/;
1594
+ var STACK = {
1595
+ display: "flex",
1596
+ flexDirection: "column",
1597
+ gap: "6px",
1598
+ minWidth: 0
1599
+ };
1600
+ function splitRow(line) {
1601
+ let s = line.trim();
1602
+ if (s.startsWith("|")) s = s.slice(1);
1603
+ if (s.endsWith("|") && !s.endsWith("\\|")) s = s.slice(0, -1);
1604
+ const cells = [];
1605
+ let cell = "";
1606
+ for (let i = 0; i < s.length; i++) {
1607
+ if (s[i] === "\\" && s[i + 1] === "|") {
1608
+ cell += "|";
1609
+ i++;
1610
+ } else if (s[i] === "|") {
1611
+ cells.push(cell.trim());
1612
+ cell = "";
1613
+ } else {
1614
+ cell += s[i];
1615
+ }
1616
+ }
1617
+ cells.push(cell.trim());
1618
+ return cells;
1619
+ }
1620
+ function tableAt(lines, i) {
1621
+ const head = lines[i];
1622
+ const sep = lines[i + 1];
1623
+ if (!(head == null ? void 0 : head.includes("|")) || !(sep == null ? void 0 : sep.includes("|")) || !TABLE_SEP.test(sep)) return null;
1624
+ const aligns = splitRow(sep);
1625
+ return aligns.length === splitRow(head).length ? aligns : null;
1626
+ }
1627
+ function startsBlock(lines, i) {
1628
+ const line = lines[i];
1629
+ return FENCE.test(line) || HEADING.test(line) || RULE.test(line) || QUOTE.test(line) || LIST_ITEM.test(line) || tableAt(lines, i) !== null;
1630
+ }
1631
+ function renderBlocks(lines, theme, key) {
1632
+ const out = [];
1633
+ let i = 0;
1634
+ while (i < lines.length) {
1635
+ const line = lines[i];
1636
+ const k = `${key}-${i}`;
1637
+ let m;
1638
+ if (!line.trim()) {
1639
+ i++;
1640
+ continue;
1641
+ }
1642
+ if (m = FENCE.exec(line)) {
1643
+ const fence = m[1];
1644
+ const body = [];
1645
+ i++;
1646
+ while (i < lines.length) {
1647
+ const t2 = lines[i].trim();
1648
+ if (t2.length >= fence.length && [...t2].every((c) => c === fence[0])) break;
1649
+ body.push(lines[i]);
1650
+ i++;
1651
+ }
1652
+ i++;
1653
+ out.push(
1654
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1655
+ "pre",
1656
+ {
1657
+ style: {
1658
+ margin: 0,
1659
+ padding: "8px 10px",
1660
+ borderRadius: "6px",
1661
+ backgroundColor: theme.bg,
1662
+ border: `1px solid ${theme.border}`,
1663
+ overflowX: "auto",
1664
+ maxWidth: "100%",
1665
+ fontFamily: MONO,
1666
+ fontSize: "12px",
1667
+ lineHeight: 1.5,
1668
+ whiteSpace: "pre"
1669
+ },
1670
+ children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("code", { style: { fontFamily: "inherit" }, children: body.join("\n") })
1671
+ },
1672
+ k
1673
+ )
1674
+ );
1675
+ continue;
1676
+ }
1677
+ if (m = HEADING.exec(line)) {
1678
+ const level = m[1].length;
1679
+ out.push(
1680
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1681
+ "div",
1682
+ {
1683
+ role: "heading",
1684
+ "aria-level": level,
1685
+ style: {
1686
+ fontWeight: 700,
1687
+ fontSize: level === 1 ? "1.15em" : level === 2 ? "1.08em" : "1em",
1688
+ lineHeight: 1.35
1689
+ },
1690
+ children: renderInline(m[2], theme, k)
1691
+ },
1692
+ k
1693
+ )
1694
+ );
1695
+ i++;
1696
+ continue;
1697
+ }
1698
+ if (RULE.test(line)) {
1699
+ out.push(/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { role: "separator", style: { borderTop: `1px solid ${theme.border}` } }, k));
1700
+ i++;
1701
+ continue;
1702
+ }
1703
+ if (QUOTE.test(line)) {
1704
+ const inner = [];
1705
+ while (i < lines.length && (m = QUOTE.exec(lines[i]))) {
1706
+ inner.push(m[1]);
1707
+ i++;
1708
+ }
1709
+ out.push(
1710
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1711
+ "blockquote",
1712
+ {
1713
+ style: {
1714
+ ...STACK,
1715
+ margin: 0,
1716
+ paddingLeft: "10px",
1717
+ // `border` is near the bubble's own colour; the bar vanished.
1718
+ borderLeft: `3px solid ${theme.accent}66`,
1719
+ color: theme.textMuted
1720
+ },
1721
+ children: renderBlocks(inner, theme, k)
1722
+ },
1723
+ k
1724
+ )
1725
+ );
1726
+ continue;
1727
+ }
1728
+ const aligns = tableAt(lines, i);
1729
+ if (aligns) {
1730
+ const head = splitRow(line);
1731
+ const rows = [];
1732
+ i += 2;
1733
+ while (i < lines.length && lines[i].trim() && lines[i].includes("|")) {
1734
+ rows.push(splitRow(lines[i]));
1735
+ i++;
1736
+ }
1737
+ const align = (c) => {
1738
+ var _a;
1739
+ const a = (_a = aligns[c]) != null ? _a : "";
1740
+ if (a.startsWith(":") && a.endsWith(":")) return "center";
1741
+ return a.endsWith(":") ? "right" : "left";
1742
+ };
1743
+ const cell = (c) => ({
1744
+ border: `1px solid ${theme.border}`,
1745
+ padding: "4px 8px",
1746
+ textAlign: align(c),
1747
+ verticalAlign: "top"
1748
+ });
1749
+ out.push(
1750
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { overflowX: "auto", maxWidth: "100%" }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("table", { style: { borderCollapse: "collapse", fontSize: "12px", margin: 0 }, children: [
1751
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { children: head.map((h, c) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("th", { style: { ...cell(c), fontWeight: 600, backgroundColor: theme.bg }, children: renderInline(h, theme, `${k}h${c}`) }, c)) }) }),
1752
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tbody", { children: rows.map((row, r) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { children: head.map((_, c) => {
1753
+ var _a;
1754
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("td", { style: cell(c), children: renderInline((_a = row[c]) != null ? _a : "", theme, `${k}r${r}c${c}`) }, c);
1755
+ }) }, r)) })
1756
+ ] }) }, k)
1757
+ );
1758
+ continue;
1759
+ }
1760
+ if (m = LIST_ITEM.exec(line)) {
1761
+ const baseIndent = m[1].length;
1762
+ const ordered = /\d/.test(m[2]);
1763
+ const start = ordered ? parseInt(m[2], 10) : 1;
1764
+ const items = [];
1765
+ while (i < lines.length) {
1766
+ const l = lines[i];
1767
+ const lm = LIST_ITEM.exec(l);
1768
+ const indent = l.length - l.trimStart().length;
1769
+ if (lm && indent <= baseIndent + 1) {
1770
+ if (/\d/.test(lm[2]) !== ordered) break;
1771
+ items.push([lm[3]]);
1772
+ i++;
1773
+ continue;
1774
+ }
1775
+ const current = items[items.length - 1];
1776
+ if (!l.trim()) {
1777
+ const next = lines[i + 1];
1778
+ const nextIndent = next ? next.length - next.trimStart().length : 0;
1779
+ if ((next == null ? void 0 : next.trim()) && (nextIndent > baseIndent + 1 || LIST_ITEM.test(next))) {
1780
+ current.push("");
1781
+ i++;
1782
+ continue;
1783
+ }
1784
+ break;
1785
+ }
1786
+ if (indent > baseIndent + 1) {
1787
+ current.push(l.slice(Math.min(indent, baseIndent + 2)));
1788
+ i++;
1789
+ continue;
1790
+ }
1791
+ break;
1792
+ }
1793
+ const ListTag = ordered ? "ol" : "ul";
1794
+ out.push(
1795
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1796
+ ListTag,
1797
+ {
1798
+ start: ordered && start !== 1 ? start : void 0,
1799
+ style: {
1800
+ margin: 0,
1801
+ paddingLeft: "20px",
1802
+ listStyleType: ordered ? "decimal" : "disc",
1803
+ listStylePosition: "outside"
1804
+ },
1805
+ children: items.map((itemLines, n) => {
1806
+ const ik = `${k}i${n}`;
1807
+ const task = TASK.exec(itemLines[0]);
1808
+ const body = task ? [task[2], ...itemLines.slice(1)] : itemLines;
1809
+ const box = task ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", style: { marginRight: "6px" }, children: task[1] === " " ? "\u2610" : "\u2611" }) : null;
1810
+ const simple = body.filter((x) => x.trim()).length === 1;
1811
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1812
+ "li",
1813
+ {
1814
+ style: {
1815
+ display: "list-item",
1816
+ marginTop: n ? "3px" : 0,
1817
+ paddingLeft: "2px",
1818
+ listStyleType: task ? "none" : void 0
1819
+ },
1820
+ children: simple ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1821
+ box,
1822
+ renderInline(body[0], theme, ik)
1823
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: STACK, children: [
1824
+ box ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
1825
+ box,
1826
+ renderInline(body[0], theme, ik)
1827
+ ] }) : null,
1828
+ renderBlocks(box ? body.slice(1) : body, theme, ik)
1829
+ ] })
1830
+ },
1831
+ ik
1832
+ );
1833
+ })
1834
+ },
1835
+ k
1836
+ )
1837
+ );
1838
+ continue;
1839
+ }
1840
+ const para = [];
1841
+ while (i < lines.length && lines[i].trim() && !(para.length && startsBlock(lines, i))) {
1842
+ para.push(lines[i].trim());
1843
+ i++;
1844
+ }
1845
+ out.push(
1846
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { children: para.flatMap((p, n) => {
1847
+ const inline = renderInline(p, theme, `${k}p${n}`);
1848
+ return n ? [/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {}, `${k}br${n}`), ...inline] : inline;
1849
+ }) }, k)
1850
+ );
1851
+ }
1852
+ return out;
1853
+ }
1854
+ function ChatMarkdown({ text, theme }) {
1855
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: STACK, children: renderBlocks(text.replace(/\r\n?/g, "\n").split("\n"), theme, "md") });
1856
+ }
1450
1857
  function pickAssistImages(all) {
1451
1858
  const picked = [];
1452
1859
  let total = 0;
@@ -1489,7 +1896,7 @@ function isAffirmativeReply(text) {
1489
1896
  text.trim()
1490
1897
  );
1491
1898
  }
1492
- var AUTO_FILE_SECONDS = 4;
1899
+ var AUTO_FILE_SECONDS = 3;
1493
1900
  var NARROW_QUERY = "(max-width: 640px)";
1494
1901
  function useIsNarrow() {
1495
1902
  const [narrow, setNarrow] = (0, import_react3.useState)(false);
@@ -1506,7 +1913,7 @@ function useIsNarrow() {
1506
1913
  return narrow;
1507
1914
  }
1508
1915
  function Sparkle({ color, size = 14 }) {
1509
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1916
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1510
1917
  "path",
1511
1918
  {
1512
1919
  d: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3zM19 15l.75 2.25L22 18l-2.25.75L19 21l-.75-2.25L16 18l2.25-.75L19 15z",
@@ -1522,7 +1929,7 @@ function Avatar({
1522
1929
  initials
1523
1930
  }) {
1524
1931
  const isAi = who === "assistant";
1525
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1932
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1526
1933
  "span",
1527
1934
  {
1528
1935
  "aria-hidden": "true",
@@ -1541,9 +1948,9 @@ function Avatar({
1541
1948
  fontSize: "10px",
1542
1949
  fontWeight: 700
1543
1950
  },
1544
- children: isAi ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Sparkle, { color: t2.accent, size: 12 }) : initials ? initials : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
1545
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "12", cy: "8", r: "3.4", stroke: "currentColor", strokeWidth: "1.8" }),
1546
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1951
+ children: isAi ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Sparkle, { color: t2.accent, size: 12 }) : initials ? initials : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
1952
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("circle", { cx: "12", cy: "8", r: "3.4", stroke: "currentColor", strokeWidth: "1.8" }),
1953
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1547
1954
  "path",
1548
1955
  {
1549
1956
  d: "M5 20c0-3.6 3.1-5.6 7-5.6s7 2 7 5.6",
@@ -1823,7 +2230,7 @@ function AssistSheet({
1823
2230
  const empty = phase === "chat" && messages.length === 0 && !busy;
1824
2231
  function renderKnownIssue({ title, footer }) {
1825
2232
  if (!duplicate) return null;
1826
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2233
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1827
2234
  "div",
1828
2235
  {
1829
2236
  "data-gg-known-issue": "",
@@ -1840,15 +2247,15 @@ function AssistSheet({
1840
2247
  minWidth: 0
1841
2248
  },
1842
2249
  children: [
1843
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: duplicate.kind === "related" ? title ? "Your request goes onto this issue" : `Connected to #${duplicate.number}` : title ? "Our team is already on this" : `Our team is already on #${duplicate.number}` }),
1844
- title && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { color: t2.textMuted, wordBreak: "break-word" }, children: [
2250
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: duplicate.kind === "related" ? title ? "Your request goes onto this issue" : `Connected to #${duplicate.number}` : title ? "Our team is already on this" : `Our team is already on #${duplicate.number}` }),
2251
+ title && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: { color: t2.textMuted, wordBreak: "break-word" }, children: [
1845
2252
  "#",
1846
2253
  duplicate.number,
1847
2254
  " ",
1848
2255
  duplicate.title
1849
2256
  ] }),
1850
- duplicate.status && duplicate.kind !== "related" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: duplicate.status }),
1851
- footer && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: t2.textMuted }, children: duplicate.kind === "related" ? "Added as a separate request on it, not a repeat \u2014 the team sees both." : footer })
2257
+ duplicate.status && duplicate.kind !== "related" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: duplicate.status }),
2258
+ footer && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { color: t2.textMuted }, children: duplicate.kind === "related" ? "Added as a separate request on it, not a repeat \u2014 the team sees both." : footer })
1852
2259
  ]
1853
2260
  }
1854
2261
  );
@@ -1871,16 +2278,16 @@ function AssistSheet({
1871
2278
  animation: "gg-sheet-in .22s cubic-bezier(.2,.8,.2,1)"
1872
2279
  };
1873
2280
  return (0, import_react_dom2.createPortal)(
1874
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1875
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("style", { children: `
2281
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
2282
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("style", { children: `
1876
2283
  @keyframes gg-sheet-in{from{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}
1877
2284
  @keyframes gg-sheet-up{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}
1878
2285
  @keyframes gg-sheet-fade{from{opacity:0}to{opacity:1}}
1879
2286
  @keyframes gg-autofile{from{transform:scaleX(0)}to{transform:scaleX(1)}}
1880
2287
  @keyframes gg-dot{0%,80%,100%{transform:translateY(0);opacity:.4}40%{transform:translateY(-3px);opacity:1}}
1881
- [data-gg-sheet-send]:focus-visible,[data-gg-chip]:focus-visible,[data-gg-assist-remove]:focus-visible{outline:2px solid currentColor;outline-offset:2px}
2288
+ [data-gg-sheet-send]:focus-visible,[data-gg-chip]:focus-visible,[data-gg-assist-remove]:focus-visible,[data-gg-stop-auto-file]:focus-visible{outline:2px solid currentColor;outline-offset:2px}
1882
2289
  ` }),
1883
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2290
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1884
2291
  "div",
1885
2292
  {
1886
2293
  "data-glitchgrab-layer": "",
@@ -1900,7 +2307,7 @@ function AssistSheet({
1900
2307
  },
1901
2308
  onClick: () => leave("closed"),
1902
2309
  onPointerDown: (e) => e.stopPropagation(),
1903
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2310
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1904
2311
  "div",
1905
2312
  {
1906
2313
  onClick: (e) => e.stopPropagation(),
@@ -1921,7 +2328,7 @@ function AssistSheet({
1921
2328
  isolation: "isolate"
1922
2329
  },
1923
2330
  children: [
1924
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2331
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1925
2332
  "div",
1926
2333
  {
1927
2334
  "data-gg-sheet-header": "",
@@ -1936,8 +2343,8 @@ function AssistSheet({
1936
2343
  minWidth: 0
1937
2344
  },
1938
2345
  children: [
1939
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { minWidth: 0 }, children: [
1940
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2346
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { minWidth: 0 }, children: [
2347
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1941
2348
  "div",
1942
2349
  {
1943
2350
  style: {
@@ -1948,9 +2355,9 @@ function AssistSheet({
1948
2355
  fontWeight: 600
1949
2356
  },
1950
2357
  children: [
1951
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Sparkle, { color: t2.accent }),
2358
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Sparkle, { color: t2.accent }),
1952
2359
  "Describe it with AI",
1953
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2360
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1954
2361
  "span",
1955
2362
  {
1956
2363
  style: {
@@ -1969,13 +2376,13 @@ function AssistSheet({
1969
2376
  ]
1970
2377
  }
1971
2378
  ),
1972
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { fontSize: "11.5px", color: t2.textMuted, marginTop: "3px" }, children: [
2379
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { fontSize: "11.5px", color: t2.textMuted, marginTop: "3px" }, children: [
1973
2380
  phase === "type" ? null : reportTypeLabel,
1974
2381
  phase !== "type" && severityAsked && severity ? ` \xB7 ${SEVERITY_LABELS[severity]}` : null,
1975
- projectSlot ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { marginLeft: "6px" }, children: projectSlot }) : null
2382
+ projectSlot ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { marginLeft: "6px" }, children: projectSlot }) : null
1976
2383
  ] })
1977
2384
  ] }),
1978
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2385
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1979
2386
  "button",
1980
2387
  {
1981
2388
  type: "button",
@@ -2002,7 +2409,7 @@ function AssistSheet({
2002
2409
  ]
2003
2410
  }
2004
2411
  ),
2005
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2412
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2006
2413
  "div",
2007
2414
  {
2008
2415
  ref: scrollRef,
@@ -2014,7 +2421,7 @@ function AssistSheet({
2014
2421
  display: "flex",
2015
2422
  flexDirection: "column"
2016
2423
  },
2017
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2424
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2018
2425
  "div",
2019
2426
  {
2020
2427
  style: {
@@ -2025,10 +2432,10 @@ function AssistSheet({
2025
2432
  minWidth: 0
2026
2433
  },
2027
2434
  children: [
2028
- phase === "type" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2029
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2030
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2031
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2435
+ phase === "type" && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2436
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2437
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2438
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2032
2439
  "div",
2033
2440
  {
2034
2441
  style: {
@@ -2046,7 +2453,7 @@ function AssistSheet({
2046
2453
  }
2047
2454
  )
2048
2455
  ] }),
2049
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2456
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2050
2457
  "div",
2051
2458
  {
2052
2459
  style: {
@@ -2057,7 +2464,7 @@ function AssistSheet({
2057
2464
  },
2058
2465
  children: tiles.map((tile) => {
2059
2466
  const rate = tile === "RATING";
2060
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2467
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2061
2468
  "button",
2062
2469
  {
2063
2470
  type: "button",
@@ -2090,10 +2497,10 @@ function AssistSheet({
2090
2497
  }
2091
2498
  )
2092
2499
  ] }),
2093
- phase === "severity" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2094
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2095
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2096
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2500
+ phase === "severity" && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2501
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2502
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2503
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2097
2504
  "div",
2098
2505
  {
2099
2506
  style: {
@@ -2108,7 +2515,7 @@ function AssistSheet({
2108
2515
  }
2109
2516
  )
2110
2517
  ] }),
2111
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2518
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2112
2519
  "div",
2113
2520
  {
2114
2521
  role: "radiogroup",
@@ -2119,7 +2526,7 @@ function AssistSheet({
2119
2526
  gap: "6px",
2120
2527
  paddingLeft: "32px"
2121
2528
  },
2122
- children: SEVERITY_LEVELS.map((s) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2529
+ children: SEVERITY_LEVELS.map((s) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2123
2530
  "button",
2124
2531
  {
2125
2532
  type: "button",
@@ -2146,10 +2553,10 @@ function AssistSheet({
2146
2553
  }
2147
2554
  )
2148
2555
  ] }),
2149
- phase === "rating" && !submitted && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2150
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2151
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2152
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2556
+ phase === "rating" && !submitted && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2557
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2558
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2559
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2153
2560
  "div",
2154
2561
  {
2155
2562
  style: {
@@ -2164,7 +2571,7 @@ function AssistSheet({
2164
2571
  }
2165
2572
  )
2166
2573
  ] }),
2167
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2574
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2168
2575
  "div",
2169
2576
  {
2170
2577
  style: {
@@ -2178,9 +2585,9 @@ function AssistSheet({
2178
2585
  backgroundColor: "rgba(245,158,11,0.06)"
2179
2586
  },
2180
2587
  children: [
2181
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { display: "flex", gap: "4px" }, role: "group", "aria-label": "Rating", children: [1, 2, 3, 4, 5].map((star) => {
2588
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { display: "flex", gap: "4px" }, role: "group", "aria-label": "Rating", children: [1, 2, 3, 4, 5].map((star) => {
2182
2589
  const filled = star <= (hoveredStar || rating);
2183
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2590
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2184
2591
  "button",
2185
2592
  {
2186
2593
  type: "button",
@@ -2196,7 +2603,7 @@ function AssistSheet({
2196
2603
  cursor: "pointer",
2197
2604
  lineHeight: 0
2198
2605
  },
2199
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "30", height: "30", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2606
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "30", height: "30", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2200
2607
  "path",
2201
2608
  {
2202
2609
  d: "M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.4 6.8 19.1l1-5.8L3.5 9.2l5.9-.9L12 3z",
@@ -2210,7 +2617,7 @@ function AssistSheet({
2210
2617
  star
2211
2618
  );
2212
2619
  }) }),
2213
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2620
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2214
2621
  "textarea",
2215
2622
  {
2216
2623
  value: description,
@@ -2233,7 +2640,7 @@ function AssistSheet({
2233
2640
  }
2234
2641
  }
2235
2642
  ),
2236
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2643
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2237
2644
  "button",
2238
2645
  {
2239
2646
  type: "button",
@@ -2257,10 +2664,10 @@ function AssistSheet({
2257
2664
  }
2258
2665
  )
2259
2666
  ] }),
2260
- empty && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2261
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2262
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2263
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2667
+ empty && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2668
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2669
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2670
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2264
2671
  "div",
2265
2672
  {
2266
2673
  style: {
@@ -2278,7 +2685,7 @@ function AssistSheet({
2278
2685
  }
2279
2686
  )
2280
2687
  ] }),
2281
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2688
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2282
2689
  "div",
2283
2690
  {
2284
2691
  style: {
@@ -2287,7 +2694,7 @@ function AssistSheet({
2287
2694
  gap: "6px",
2288
2695
  paddingLeft: "32px"
2289
2696
  },
2290
- children: STARTERS.map((s) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2697
+ children: STARTERS.map((s) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2291
2698
  "button",
2292
2699
  {
2293
2700
  type: "button",
@@ -2317,9 +2724,9 @@ function AssistSheet({
2317
2724
  const mine = m.role === "user";
2318
2725
  if (m.kind === "report") {
2319
2726
  const live = phase === "draft" && i === messages.length - 1;
2320
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px", minWidth: 0 }, children: [
2321
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2322
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2727
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px", minWidth: 0 }, children: [
2728
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2729
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2323
2730
  "div",
2324
2731
  {
2325
2732
  "data-gg-draft-bubble": "",
@@ -2338,8 +2745,8 @@ function AssistSheet({
2338
2745
  // #402: "have a read" beside a countdown reads as a
2339
2746
  // contradiction. Say what is about to happen instead.
2340
2747
  autoFileLeft !== null ? "Here's your report \u2014 I'll file it unless you want to change something." : "Here's your report \u2014 have a read."
2341
- ) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2342
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2748
+ ) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
2749
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2343
2750
  "span",
2344
2751
  {
2345
2752
  style: {
@@ -2354,7 +2761,7 @@ function AssistSheet({
2354
2761
  children: "Draft so far"
2355
2762
  }
2356
2763
  ),
2357
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2764
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2358
2765
  "span",
2359
2766
  {
2360
2767
  style: {
@@ -2373,7 +2780,7 @@ function AssistSheet({
2373
2780
  )
2374
2781
  ] }, i);
2375
2782
  }
2376
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2783
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2377
2784
  "div",
2378
2785
  {
2379
2786
  style: {
@@ -2383,22 +2790,24 @@ function AssistSheet({
2383
2790
  flexDirection: mine ? "row-reverse" : "row"
2384
2791
  },
2385
2792
  children: [
2386
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: m.role, theme: t2, initials }),
2387
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2793
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: m.role, theme: t2, initials }),
2794
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2388
2795
  "div",
2389
2796
  {
2390
2797
  style: {
2391
2798
  maxWidth: "82%",
2799
+ minWidth: 0,
2392
2800
  padding: "9px 12px",
2393
2801
  borderRadius: mine ? "12px 12px 4px 12px" : "12px 12px 12px 4px",
2394
2802
  fontSize: "13px",
2395
2803
  lineHeight: 1.55,
2396
- whiteSpace: "pre-wrap",
2804
+ // Markdown owns the assistant's line breaks and lists.
2805
+ whiteSpace: mine ? "pre-wrap" : "normal",
2397
2806
  wordBreak: "break-word",
2398
2807
  backgroundColor: mine ? t2.accent : t2.bgSecondary,
2399
2808
  color: mine ? t2.accentText : t2.text
2400
2809
  },
2401
- children: m.content
2810
+ children: mine ? m.content : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ChatMarkdown, { text: m.content, theme: t2 })
2402
2811
  }
2403
2812
  )
2404
2813
  ]
@@ -2406,8 +2815,8 @@ function AssistSheet({
2406
2815
  i
2407
2816
  );
2408
2817
  }),
2409
- duplicate && !busy && phase === "chat" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { paddingLeft: "32px", minWidth: 0 }, children: renderKnownIssue({ title: false }) }),
2410
- glitchgrabOffer && onReportGlitchgrabProblem && !busy && phase === "chat" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { style: { paddingLeft: "32px", minWidth: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2818
+ duplicate && !busy && phase === "chat" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { paddingLeft: "32px", minWidth: 0 }, children: renderKnownIssue({ title: false }) }),
2819
+ glitchgrabOffer && onReportGlitchgrabProblem && !busy && phase === "chat" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { style: { paddingLeft: "32px", minWidth: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2411
2820
  "div",
2412
2821
  {
2413
2822
  "data-gg-glitchgrab-offer": "",
@@ -2423,10 +2832,10 @@ function AssistSheet({
2423
2832
  lineHeight: 1.5
2424
2833
  },
2425
2834
  children: [
2426
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: "This is about Glitchgrab, not this app" }),
2427
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { style: { color: t2.textMuted }, children: "It goes to the team that builds this reporter, with your chat attached." }),
2428
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "6px" }, children: [
2429
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2835
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { color: t2.text, fontWeight: 600 }, children: "This is about Glitchgrab, not this app" }),
2836
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { color: t2.textMuted }, children: "It goes to the team that builds this reporter, with your chat attached." }),
2837
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexWrap: "wrap", gap: "6px" }, children: [
2838
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2430
2839
  "button",
2431
2840
  {
2432
2841
  type: "button",
@@ -2455,7 +2864,7 @@ function AssistSheet({
2455
2864
  children: "Send to the Glitchgrab team"
2456
2865
  }
2457
2866
  ),
2458
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2867
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2459
2868
  "button",
2460
2869
  {
2461
2870
  type: "button",
@@ -2482,7 +2891,7 @@ function AssistSheet({
2482
2891
  ]
2483
2892
  }
2484
2893
  ) }),
2485
- options.length > 0 && !busy && phase === "chat" && !glitchgrabOffer && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2894
+ options.length > 0 && !busy && phase === "chat" && !glitchgrabOffer && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2486
2895
  "div",
2487
2896
  {
2488
2897
  style: {
@@ -2497,7 +2906,7 @@ function AssistSheet({
2497
2906
  gap: "6px",
2498
2907
  paddingLeft: "32px"
2499
2908
  },
2500
- children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2909
+ children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2501
2910
  "button",
2502
2911
  {
2503
2912
  type: "button",
@@ -2526,9 +2935,9 @@ function AssistSheet({
2526
2935
  ))
2527
2936
  }
2528
2937
  ),
2529
- busy && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, role: "status", "aria-label": "Thinking", children: [
2530
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2531
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2938
+ busy && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, role: "status", "aria-label": "Thinking", children: [
2939
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
2940
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2532
2941
  "span",
2533
2942
  {
2534
2943
  style: {
@@ -2539,7 +2948,7 @@ function AssistSheet({
2539
2948
  borderRadius: "12px 12px 12px 4px",
2540
2949
  backgroundColor: t2.bgSecondary
2541
2950
  },
2542
- children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2951
+ children: [0, 1, 2].map((i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2543
2952
  "span",
2544
2953
  {
2545
2954
  style: {
@@ -2555,7 +2964,7 @@ function AssistSheet({
2555
2964
  }
2556
2965
  )
2557
2966
  ] }),
2558
- phase === "draft" && !submitted && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
2967
+ phase === "draft" && !submitted && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2559
2968
  "div",
2560
2969
  {
2561
2970
  style: {
@@ -2570,7 +2979,7 @@ function AssistSheet({
2570
2979
  boxSizing: "border-box"
2571
2980
  },
2572
2981
  children: [
2573
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2982
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2574
2983
  "span",
2575
2984
  {
2576
2985
  style: {
@@ -2587,7 +2996,7 @@ function AssistSheet({
2587
2996
  title: true,
2588
2997
  footer: "Your details will be added to it instead of opening a new issue."
2589
2998
  }),
2590
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2999
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2591
3000
  "textarea",
2592
3001
  {
2593
3002
  ref: draftRef,
@@ -2614,8 +3023,8 @@ function AssistSheet({
2614
3023
  }
2615
3024
  }
2616
3025
  ),
2617
- severityAsked && autoFileLeft === null && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
2618
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3026
+ severityAsked && autoFileLeft === null && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
3027
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2619
3028
  "span",
2620
3029
  {
2621
3030
  style: {
@@ -2626,7 +3035,7 @@ function AssistSheet({
2626
3035
  },
2627
3036
  children: [
2628
3037
  "How bad is it?",
2629
- !severity && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3038
+ !severity && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2630
3039
  "span",
2631
3040
  {
2632
3041
  style: {
@@ -2640,7 +3049,7 @@ function AssistSheet({
2640
3049
  ]
2641
3050
  }
2642
3051
  ),
2643
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3052
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2644
3053
  "div",
2645
3054
  {
2646
3055
  role: "radiogroup",
@@ -2648,7 +3057,7 @@ function AssistSheet({
2648
3057
  style: { display: "flex", gap: "6px" },
2649
3058
  children: SEVERITY_LEVELS.map((s) => {
2650
3059
  const on = severity === s;
2651
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3060
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2652
3061
  "button",
2653
3062
  {
2654
3063
  type: "button",
@@ -2679,7 +3088,7 @@ function AssistSheet({
2679
3088
  }
2680
3089
  )
2681
3090
  ] }),
2682
- attachmentCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { fontSize: "11.5px", color: t2.textMuted }, children: [
3091
+ attachmentCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: { fontSize: "11.5px", color: t2.textMuted }, children: [
2683
3092
  attachmentCount,
2684
3093
  " ",
2685
3094
  attachmentCount === 1 ? "attachment" : "attachments",
@@ -2688,10 +3097,10 @@ function AssistSheet({
2688
3097
  ]
2689
3098
  }
2690
3099
  ),
2691
- phase === "solved" && solved && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
2692
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
2693
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Avatar, { who: "assistant", theme: t2 }),
2694
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3100
+ phase === "solved" && solved && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "12px" }, children: [
3101
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px" }, children: [
3102
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Avatar, { who: "assistant", theme: t2 }),
3103
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2695
3104
  "div",
2696
3105
  {
2697
3106
  style: {
@@ -2707,7 +3116,7 @@ function AssistSheet({
2707
3116
  }
2708
3117
  )
2709
3118
  ] }),
2710
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3119
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2711
3120
  "span",
2712
3121
  {
2713
3122
  style: { fontSize: "11.5px", color: t2.textMuted, paddingLeft: "32px" },
@@ -2715,7 +3124,7 @@ function AssistSheet({
2715
3124
  }
2716
3125
  )
2717
3126
  ] }),
2718
- submitted && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3127
+ submitted && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2719
3128
  "div",
2720
3129
  {
2721
3130
  style: {
@@ -2736,7 +3145,7 @@ function AssistSheet({
2736
3145
  )
2737
3146
  }
2738
3147
  ),
2739
- !submitted && phase !== "type" && phase !== "severity" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3148
+ !submitted && phase !== "type" && phase !== "severity" && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2740
3149
  "div",
2741
3150
  {
2742
3151
  style: {
@@ -2747,7 +3156,7 @@ function AssistSheet({
2747
3156
  backgroundColor: t2.bg
2748
3157
  },
2749
3158
  children: [
2750
- phase === "solved" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3159
+ phase === "solved" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2751
3160
  "button",
2752
3161
  {
2753
3162
  type: "button",
@@ -2767,7 +3176,7 @@ function AssistSheet({
2767
3176
  },
2768
3177
  children: "Done"
2769
3178
  }
2770
- ) : phase === "rating" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3179
+ ) : phase === "rating" ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2771
3180
  "button",
2772
3181
  {
2773
3182
  type: "button",
@@ -2793,8 +3202,8 @@ function AssistSheet({
2793
3202
  // element on both sides of a draft landing — it stays put
2794
3203
  // instead of remounting, and a draft is something you can
2795
3204
  // still reply to (#360), not a form that replaced the chat.
2796
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
2797
- (screenshots.length > 0 || files.length > 0 || onAddFiles) && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3205
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
3206
+ (screenshots.length > 0 || files.length > 0 || onAddFiles) && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2798
3207
  "div",
2799
3208
  {
2800
3209
  style: {
@@ -2807,7 +3216,7 @@ function AssistSheet({
2807
3216
  children: [
2808
3217
  screenshots.map((shot, i) => {
2809
3218
  const read = readShots.has(shot);
2810
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3219
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2811
3220
  "div",
2812
3221
  {
2813
3222
  style: {
@@ -2817,7 +3226,7 @@ function AssistSheet({
2817
3226
  flexShrink: 0
2818
3227
  },
2819
3228
  children: [
2820
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3229
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2821
3230
  "img",
2822
3231
  {
2823
3232
  src: shot,
@@ -2835,7 +3244,7 @@ function AssistSheet({
2835
3244
  }
2836
3245
  }
2837
3246
  ),
2838
- onRemoveImage && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3247
+ onRemoveImage && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2839
3248
  "button",
2840
3249
  {
2841
3250
  type: "button",
@@ -2865,7 +3274,7 @@ function AssistSheet({
2865
3274
  justifyContent: "center",
2866
3275
  borderRadius: "50%"
2867
3276
  },
2868
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3277
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2869
3278
  "span",
2870
3279
  {
2871
3280
  "aria-hidden": "true",
@@ -2881,7 +3290,7 @@ function AssistSheet({
2881
3290
  alignItems: "center",
2882
3291
  justifyContent: "center"
2883
3292
  },
2884
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3293
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2885
3294
  "path",
2886
3295
  {
2887
3296
  d: "M1 1L9 9M9 1L1 9",
@@ -2902,7 +3311,7 @@ function AssistSheet({
2902
3311
  files.map((file, i) => {
2903
3312
  const read = readFiles.has(i);
2904
3313
  const why = read ? "the assistant reads this file" : isAssistReadableFile(file.name) ? "attached, but more than one message can carry, so the assistant is not reading it" : "attached to the report \u2014 the assistant can't read this kind of file";
2905
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3314
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
2906
3315
  "div",
2907
3316
  {
2908
3317
  "data-gg-assist-file": "",
@@ -2923,7 +3332,7 @@ function AssistSheet({
2923
3332
  flexShrink: 0
2924
3333
  },
2925
3334
  children: [
2926
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", style: { flexShrink: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3335
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", style: { flexShrink: 0 }, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2927
3336
  "path",
2928
3337
  {
2929
3338
  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z M14 2v6h6",
@@ -2933,7 +3342,7 @@ function AssistSheet({
2933
3342
  strokeLinejoin: "round"
2934
3343
  }
2935
3344
  ) }),
2936
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3345
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2937
3346
  "span",
2938
3347
  {
2939
3348
  style: {
@@ -2946,7 +3355,7 @@ function AssistSheet({
2946
3355
  children: file.name
2947
3356
  }
2948
3357
  ),
2949
- onRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3358
+ onRemoveFile && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2950
3359
  "button",
2951
3360
  {
2952
3361
  type: "button",
@@ -2973,7 +3382,7 @@ function AssistSheet({
2973
3382
  justifyContent: "center",
2974
3383
  borderRadius: "50%"
2975
3384
  },
2976
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3385
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2977
3386
  "span",
2978
3387
  {
2979
3388
  "aria-hidden": "true",
@@ -2989,7 +3398,7 @@ function AssistSheet({
2989
3398
  alignItems: "center",
2990
3399
  justifyContent: "center"
2991
3400
  },
2992
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3401
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
2993
3402
  "path",
2994
3403
  {
2995
3404
  d: "M1 1L9 9M9 1L1 9",
@@ -3007,7 +3416,7 @@ function AssistSheet({
3007
3416
  `file-${i}-${file.name}`
3008
3417
  );
3009
3418
  }),
3010
- onAddFiles && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3419
+ onAddFiles && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
3011
3420
  "label",
3012
3421
  {
3013
3422
  "data-gg-assist-attach": "",
@@ -3027,7 +3436,7 @@ function AssistSheet({
3027
3436
  },
3028
3437
  children: [
3029
3438
  "+",
3030
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3439
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3031
3440
  "input",
3032
3441
  {
3033
3442
  type: "file",
@@ -3053,7 +3462,7 @@ function AssistSheet({
3053
3462
  ]
3054
3463
  }
3055
3464
  ),
3056
- readShots.size < screenshots.length && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { color: t2.textMuted, fontSize: "11px" }, children: [
3465
+ readShots.size < screenshots.length && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: { color: t2.textMuted, fontSize: "11px" }, children: [
3057
3466
  readShots.size,
3058
3467
  " of ",
3059
3468
  screenshots.length,
@@ -3062,8 +3471,8 @@ function AssistSheet({
3062
3471
  ]
3063
3472
  }
3064
3473
  ),
3065
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px", alignItems: "flex-end" }, children: [
3066
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3474
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px", alignItems: "flex-end" }, children: [
3475
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3067
3476
  "textarea",
3068
3477
  {
3069
3478
  value: input,
@@ -3099,7 +3508,7 @@ function AssistSheet({
3099
3508
  }
3100
3509
  }
3101
3510
  ),
3102
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3511
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3103
3512
  "button",
3104
3513
  {
3105
3514
  type: "button",
@@ -3121,7 +3530,7 @@ function AssistSheet({
3121
3530
  color: busy || !input.trim() ? t2.textMuted : t2.accentText,
3122
3531
  cursor: busy || !input.trim() ? "default" : "pointer"
3123
3532
  },
3124
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("svg", { width: "17", height: "17", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3533
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "17", height: "17", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3125
3534
  "path",
3126
3535
  {
3127
3536
  d: "M3 20.5L21.5 12 3 3.5V10l12 2-12 2v6.5z",
@@ -3131,8 +3540,8 @@ function AssistSheet({
3131
3540
  }
3132
3541
  )
3133
3542
  ] }),
3134
- phase === "draft" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
3135
- validationError && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3543
+ phase === "draft" && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
3544
+ validationError && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3136
3545
  "p",
3137
3546
  {
3138
3547
  style: {
@@ -3146,9 +3555,11 @@ function AssistSheet({
3146
3555
  autoFileLeft !== null ? (
3147
3556
  // #402: "Yes, that's it" was the confirmation. The draft
3148
3557
  // files itself unless they stop it — the bar shows how
3149
- // long is left, the button sends now.
3150
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { style: { display: "flex", gap: "8px", marginTop: "8px" }, children: [
3151
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
3558
+ // long is left, the button sends now, the × on its right
3559
+ // stops it (#406). Stopping keeps the draft: Send Report
3560
+ // comes back, and closing the sheet drops it.
3561
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", gap: "8px", marginTop: "8px" }, children: [
3562
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
3152
3563
  "button",
3153
3564
  {
3154
3565
  type: "button",
@@ -3171,7 +3582,7 @@ function AssistSheet({
3171
3582
  cursor: "pointer"
3172
3583
  },
3173
3584
  children: [
3174
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3585
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3175
3586
  "span",
3176
3587
  {
3177
3588
  "aria-hidden": "true",
@@ -3184,7 +3595,7 @@ function AssistSheet({
3184
3595
  }
3185
3596
  }
3186
3597
  ),
3187
- /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { style: { position: "relative" }, children: [
3598
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { style: { position: "relative" }, children: [
3188
3599
  "Filing in ",
3189
3600
  autoFileLeft,
3190
3601
  "s\u2026"
@@ -3192,33 +3603,39 @@ function AssistSheet({
3192
3603
  ]
3193
3604
  }
3194
3605
  ),
3195
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3606
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3196
3607
  "button",
3197
3608
  {
3198
3609
  type: "button",
3199
- "data-gg-edit-first": "",
3200
- onClick: () => {
3201
- var _a;
3202
- stopAutoFile("edit first");
3203
- (_a = draftRef.current) == null ? void 0 : _a.focus();
3204
- },
3610
+ "data-gg-stop-auto-file": "",
3611
+ onClick: () => stopAutoFile("pressed stop"),
3612
+ "aria-label": "Stop \u2014 don't send",
3613
+ title: "Stop \u2014 don't send",
3205
3614
  style: {
3206
3615
  flexShrink: 0,
3207
- padding: "12px 14px",
3616
+ width: "44px",
3208
3617
  borderRadius: "10px",
3209
3618
  border: `1px solid ${t2.inputBorder}`,
3210
3619
  background: "transparent",
3211
3620
  color: t2.text,
3212
- fontSize: "13px",
3213
- fontWeight: 600,
3214
- fontFamily: "inherit",
3621
+ display: "inline-flex",
3622
+ alignItems: "center",
3623
+ justifyContent: "center",
3215
3624
  cursor: "pointer"
3216
3625
  },
3217
- children: "Edit first"
3626
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3627
+ "path",
3628
+ {
3629
+ d: "M6 6l12 12M18 6L6 18",
3630
+ stroke: "currentColor",
3631
+ strokeWidth: "2.25",
3632
+ strokeLinecap: "round"
3633
+ }
3634
+ ) })
3218
3635
  }
3219
3636
  )
3220
3637
  ] })
3221
- ) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3638
+ ) : /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3222
3639
  "button",
3223
3640
  {
3224
3641
  type: "button",
@@ -3244,7 +3661,7 @@ function AssistSheet({
3244
3661
  ] })
3245
3662
  ] })
3246
3663
  ),
3247
- phase === "chat" && messages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3664
+ phase === "chat" && messages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3248
3665
  "button",
3249
3666
  {
3250
3667
  type: "button",
@@ -3264,7 +3681,7 @@ function AssistSheet({
3264
3681
  children: "Not getting it? Fill the form yourself \u2192"
3265
3682
  }
3266
3683
  ),
3267
- onReportGlitchgrabProblem && phase !== "solved" && !glitchgrabOffer && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
3684
+ onReportGlitchgrabProblem && phase !== "solved" && !glitchgrabOffer && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3268
3685
  "button",
3269
3686
  {
3270
3687
  type: "button",
@@ -3427,7 +3844,7 @@ function GlitchgrabProblemPanel({
3427
3844
  // `data-glitchgrab-layer` exempts this from the dialog's anti-focus-trap
3428
3845
  // sweep, which sets `inert` on every other role="dialog" on the page —
3429
3846
  // without it the panel renders but cannot be typed into.
3430
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3847
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3431
3848
  "div",
3432
3849
  {
3433
3850
  "data-glitchgrab-layer": "",
@@ -3447,7 +3864,7 @@ function GlitchgrabProblemPanel({
3447
3864
  boxSizing: "border-box",
3448
3865
  fontFamily: FONT
3449
3866
  },
3450
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3867
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3451
3868
  "div",
3452
3869
  {
3453
3870
  style: {
@@ -3461,10 +3878,10 @@ function GlitchgrabProblemPanel({
3461
3878
  boxShadow: "0 20px 50px rgba(0,0,0,0.5)",
3462
3879
  padding: "18px"
3463
3880
  },
3464
- children: sent ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
3465
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: "gg-self-report-title", style: { fontSize: "15px", fontWeight: 600 }, children: "Sent to the Glitchgrab team" }),
3466
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { margin: "6px 0 16px", fontSize: "13px", lineHeight: 1.5, color: t2.textMuted }, children: "Thanks \u2014 we'll look into it. Your report is still open behind this, exactly as you left it." }),
3467
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3881
+ children: sent ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
3882
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { id: "gg-self-report-title", style: { fontSize: "15px", fontWeight: 600 }, children: "Sent to the Glitchgrab team" }),
3883
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { margin: "6px 0 16px", fontSize: "13px", lineHeight: 1.5, color: t2.textMuted }, children: "Thanks \u2014 we'll look into it. Your report is still open behind this, exactly as you left it." }),
3884
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3468
3885
  "button",
3469
3886
  {
3470
3887
  type: "button",
@@ -3474,8 +3891,8 @@ function GlitchgrabProblemPanel({
3474
3891
  children: "Back to your report"
3475
3892
  }
3476
3893
  )
3477
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
3478
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
3894
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
3895
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
3479
3896
  "div",
3480
3897
  {
3481
3898
  style: {
@@ -3485,8 +3902,8 @@ function GlitchgrabProblemPanel({
3485
3902
  gap: "12px"
3486
3903
  },
3487
3904
  children: [
3488
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { id: "gg-self-report-title", style: { fontSize: "15px", fontWeight: 600 }, children: "Problem with Glitchgrab?" }),
3489
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3905
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { id: "gg-self-report-title", style: { fontSize: "15px", fontWeight: 600 }, children: "Problem with Glitchgrab?" }),
3906
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3490
3907
  "button",
3491
3908
  {
3492
3909
  type: "button",
@@ -3508,8 +3925,8 @@ function GlitchgrabProblemPanel({
3508
3925
  ]
3509
3926
  }
3510
3927
  ),
3511
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { style: { margin: "6px 0 12px", fontSize: "13px", lineHeight: 1.5, color: t2.textMuted }, children: "This goes to the people who build this reporter \u2014 not to this project's team. Tell us what went wrong: the AI chat, a button, anything." }),
3512
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3928
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { style: { margin: "6px 0 12px", fontSize: "13px", lineHeight: 1.5, color: t2.textMuted }, children: "This goes to the people who build this reporter \u2014 not to this project's team. Tell us what went wrong: the AI chat, a button, anything." }),
3929
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3513
3930
  "textarea",
3514
3931
  {
3515
3932
  ref: inputRef,
@@ -3543,7 +3960,7 @@ function GlitchgrabProblemPanel({
3543
3960
  }
3544
3961
  }
3545
3962
  ),
3546
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
3963
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
3547
3964
  "div",
3548
3965
  {
3549
3966
  "data-gg-self-report-images": "",
@@ -3555,8 +3972,8 @@ function GlitchgrabProblemPanel({
3555
3972
  marginTop: "10px"
3556
3973
  },
3557
3974
  children: [
3558
- images.map((src, i) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { position: "relative", width: "48px", height: "48px" }, children: [
3559
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3975
+ images.map((src, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { position: "relative", width: "48px", height: "48px" }, children: [
3976
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3560
3977
  "img",
3561
3978
  {
3562
3979
  src,
@@ -3572,7 +3989,7 @@ function GlitchgrabProblemPanel({
3572
3989
  }
3573
3990
  }
3574
3991
  ),
3575
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
3992
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3576
3993
  "button",
3577
3994
  {
3578
3995
  type: "button",
@@ -3595,7 +4012,7 @@ function GlitchgrabProblemPanel({
3595
4012
  justifyContent: "center",
3596
4013
  borderRadius: "50%"
3597
4014
  },
3598
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4015
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3599
4016
  "span",
3600
4017
  {
3601
4018
  "aria-hidden": "true",
@@ -3611,7 +4028,7 @@ function GlitchgrabProblemPanel({
3611
4028
  alignItems: "center",
3612
4029
  justifyContent: "center"
3613
4030
  },
3614
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4031
+ children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: "8", height: "8", viewBox: "0 0 10 10", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3615
4032
  "path",
3616
4033
  {
3617
4034
  d: "M1 1L9 9M9 1L1 9",
@@ -3625,7 +4042,7 @@ function GlitchgrabProblemPanel({
3625
4042
  }
3626
4043
  )
3627
4044
  ] }, i)),
3628
- images.length < MAX_SELF_REPORT_IMAGES && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4045
+ images.length < MAX_SELF_REPORT_IMAGES && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3629
4046
  "button",
3630
4047
  {
3631
4048
  type: "button",
@@ -3652,7 +4069,7 @@ function GlitchgrabProblemPanel({
3652
4069
  children: images.length >= 3 ? "+ Add" : "+ Add screenshot"
3653
4070
  }
3654
4071
  ),
3655
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4072
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3656
4073
  "input",
3657
4074
  {
3658
4075
  ref: fileRef,
@@ -3671,7 +4088,7 @@ function GlitchgrabProblemPanel({
3671
4088
  ]
3672
4089
  }
3673
4090
  ),
3674
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
4091
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
3675
4092
  "p",
3676
4093
  {
3677
4094
  "data-gg-self-report-includes": "",
@@ -3684,10 +4101,10 @@ function GlitchgrabProblemPanel({
3684
4101
  ]
3685
4102
  }
3686
4103
  ),
3687
- error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { role: "alert", style: { margin: "8px 0 0", fontSize: "12px", color: "#ef4444" }, children: error }),
3688
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { style: { display: "flex", justifyContent: "flex-end", gap: "8px", marginTop: "14px" }, children: [
3689
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "button", onClick: onClose, style: secondaryButton, children: "Cancel" }),
3690
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
4104
+ error && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("p", { role: "alert", style: { margin: "8px 0 0", fontSize: "12px", color: "#ef4444" }, children: error }),
4105
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", justifyContent: "flex-end", gap: "8px", marginTop: "14px" }, children: [
4106
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("button", { type: "button", onClick: onClose, style: secondaryButton, children: "Cancel" }),
4107
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
3691
4108
  "button",
3692
4109
  {
3693
4110
  type: "button",
@@ -3866,7 +4283,7 @@ var SHOT_WAIT_MS = 3e3;
3866
4283
  var SIMILAR_WAIT_MS = 2500;
3867
4284
  var MAX_SIMILAR_SHOWN = 3;
3868
4285
  function ButtonSpinner() {
3869
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4286
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
3870
4287
  "span",
3871
4288
  {
3872
4289
  "aria-hidden": "true",
@@ -4018,13 +4435,13 @@ function ReporterChip({
4018
4435
  const label = isAnonymous ? "Anonymous" : name;
4019
4436
  const title = isAnonymous ? "No reporter identity was passed to Glitchgrab \u2014 this report won't be attributed to anyone" : [name, reporter == null ? void 0 : reporter.email, reporter == null ? void 0 : reporter.role].filter(Boolean).join(" \xB7 ");
4020
4437
  const showAvatarImage = !!avatarUrl && !avatarFailed;
4021
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
4438
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
4022
4439
  "span",
4023
4440
  {
4024
4441
  title,
4025
4442
  style: { display: "flex", alignItems: "center", gap: "6px", minWidth: 0 },
4026
4443
  children: [
4027
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4444
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
4028
4445
  "span",
4029
4446
  {
4030
4447
  "aria-hidden": "true",
@@ -4044,7 +4461,7 @@ function ReporterChip({
4044
4461
  color: isAnonymous ? t2.textMuted : t2.accentText,
4045
4462
  border: `1px solid ${isAnonymous ? t2.inputBorder : "transparent"}`
4046
4463
  },
4047
- children: showAvatarImage ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4464
+ children: showAvatarImage ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
4048
4465
  "img",
4049
4466
  {
4050
4467
  src: avatarUrl,
@@ -4054,9 +4471,9 @@ function ReporterChip({
4054
4471
  onError: () => setAvatarFailed(true),
4055
4472
  style: { width: "100%", height: "100%", objectFit: "cover" }
4056
4473
  }
4057
- ) : initials ? initials : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { width: "10", height: "10", viewBox: "0 0 16 16", fill: "none", children: [
4058
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("circle", { cx: "8", cy: "5.5", r: "2.75", stroke: "currentColor", strokeWidth: "1.4" }),
4059
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
4474
+ ) : initials ? initials : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { width: "10", height: "10", viewBox: "0 0 16 16", fill: "none", children: [
4475
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "8", cy: "5.5", r: "2.75", stroke: "currentColor", strokeWidth: "1.4" }),
4476
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
4060
4477
  "path",
4061
4478
  {
4062
4479
  d: "M2.75 13.5c0-2.35 2.35-3.75 5.25-3.75s5.25 1.4 5.25 3.75",
@@ -4068,7 +4485,7 @@ function ReporterChip({
4068
4485
  ] })
4069
4486
  }
4070
4487
  ),
4071
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
4488
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
4072
4489
  "span",
4073
4490
  {
4074
4491
  style: {
@@ -4958,9 +5375,9 @@ function ReportDialog({
4958
5375
  }
4959
5376
  };
4960
5377
  if (!mounted) return null;
4961
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
5378
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
4962
5379
  isOpen && (0, import_react_dom.createPortal)(
4963
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("style", { children: `
5380
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("style", { children: `
4964
5381
  @keyframes gg-pulse{0%,100%{opacity:1}50%{opacity:0.35}}
4965
5382
  @keyframes gg-spin{to{transform:rotate(360deg)}}
4966
5383
  @keyframes gg-b1{0%,100%{height:3px}40%{height:13px}}
@@ -4998,7 +5415,7 @@ function ReportDialog({
4998
5415
  document.body
4999
5416
  ),
5000
5417
  isOpen && (0, import_react_dom.createPortal)(
5001
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5418
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5002
5419
  "div",
5003
5420
  {
5004
5421
  "data-glitchgrab-layer": "",
@@ -5021,7 +5438,7 @@ function ReportDialog({
5021
5438
  },
5022
5439
  onPointerDown: (e) => e.stopPropagation(),
5023
5440
  onFocus: (e) => e.stopPropagation(),
5024
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5441
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5025
5442
  "div",
5026
5443
  {
5027
5444
  ref: modalRef,
@@ -5047,7 +5464,7 @@ function ReportDialog({
5047
5464
  isolation: "isolate"
5048
5465
  },
5049
5466
  children: [
5050
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5467
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5051
5468
  "div",
5052
5469
  {
5053
5470
  style: {
@@ -5056,7 +5473,7 @@ function ReportDialog({
5056
5473
  borderBottom: `1px solid ${t2.border}`
5057
5474
  },
5058
5475
  children: [
5059
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5476
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5060
5477
  "div",
5061
5478
  {
5062
5479
  style: {
@@ -5065,7 +5482,7 @@ function ReportDialog({
5065
5482
  alignItems: "center"
5066
5483
  },
5067
5484
  children: [
5068
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5485
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5069
5486
  "div",
5070
5487
  {
5071
5488
  style: {
@@ -5074,7 +5491,7 @@ function ReportDialog({
5074
5491
  gap: "8px"
5075
5492
  },
5076
5493
  children: [
5077
- step > 1 && availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5494
+ step > 1 && availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5078
5495
  "button",
5079
5496
  {
5080
5497
  type: "button",
@@ -5088,14 +5505,14 @@ function ReportDialog({
5088
5505
  alignItems: "center"
5089
5506
  },
5090
5507
  "aria-label": "Back",
5091
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5508
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5092
5509
  "svg",
5093
5510
  {
5094
5511
  width: "16",
5095
5512
  height: "16",
5096
5513
  viewBox: "0 0 16 16",
5097
5514
  fill: "none",
5098
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5515
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5099
5516
  "path",
5100
5517
  {
5101
5518
  d: "M10 3L5 8L10 13",
@@ -5109,7 +5526,7 @@ function ReportDialog({
5109
5526
  )
5110
5527
  }
5111
5528
  ),
5112
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5529
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5113
5530
  "span",
5114
5531
  {
5115
5532
  style: {
@@ -5123,7 +5540,7 @@ function ReportDialog({
5123
5540
  ]
5124
5541
  }
5125
5542
  ),
5126
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5543
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5127
5544
  "div",
5128
5545
  {
5129
5546
  style: {
@@ -5132,7 +5549,7 @@ function ReportDialog({
5132
5549
  gap: "8px"
5133
5550
  },
5134
5551
  children: [
5135
- step === 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5552
+ step === 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5136
5553
  "span",
5137
5554
  {
5138
5555
  title: "Press this anywhere to open Glitchgrab",
@@ -5150,7 +5567,7 @@ function ReportDialog({
5150
5567
  children: getShortcutLabel()
5151
5568
  }
5152
5569
  ),
5153
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5570
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5154
5571
  "button",
5155
5572
  {
5156
5573
  type: "button",
@@ -5165,7 +5582,7 @@ function ReportDialog({
5165
5582
  justifyContent: "center"
5166
5583
  },
5167
5584
  "aria-label": "Close",
5168
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5585
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5169
5586
  "svg",
5170
5587
  {
5171
5588
  width: "16",
@@ -5173,7 +5590,7 @@ function ReportDialog({
5173
5590
  viewBox: "0 0 16 16",
5174
5591
  fill: "none",
5175
5592
  style: { display: "block" },
5176
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5593
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5177
5594
  "path",
5178
5595
  {
5179
5596
  d: "M4 4L12 12M12 4L4 12",
@@ -5192,7 +5609,7 @@ function ReportDialog({
5192
5609
  ]
5193
5610
  }
5194
5611
  ),
5195
- availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5612
+ availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5196
5613
  "div",
5197
5614
  {
5198
5615
  style: {
@@ -5202,12 +5619,12 @@ function ReportDialog({
5202
5619
  gap: "0",
5203
5620
  marginTop: "12px"
5204
5621
  },
5205
- children: [1, 2].map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5622
+ children: [1, 2].map((s, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5206
5623
  "div",
5207
5624
  {
5208
5625
  style: { display: "flex", alignItems: "center" },
5209
5626
  children: [
5210
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5627
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5211
5628
  "div",
5212
5629
  {
5213
5630
  style: {
@@ -5219,7 +5636,7 @@ function ReportDialog({
5219
5636
  }
5220
5637
  }
5221
5638
  ),
5222
- i < 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5639
+ i < 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5223
5640
  "div",
5224
5641
  {
5225
5642
  style: {
@@ -5239,7 +5656,7 @@ function ReportDialog({
5239
5656
  ]
5240
5657
  }
5241
5658
  ),
5242
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5659
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5243
5660
  "div",
5244
5661
  {
5245
5662
  style: {
@@ -5248,7 +5665,7 @@ function ReportDialog({
5248
5665
  flex: "1 1 auto",
5249
5666
  minHeight: 0
5250
5667
  },
5251
- children: submitted ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5668
+ children: submitted ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5252
5669
  "div",
5253
5670
  {
5254
5671
  style: {
@@ -5258,7 +5675,7 @@ function ReportDialog({
5258
5675
  fontSize: "14px",
5259
5676
  fontWeight: 500
5260
5677
  },
5261
- children: queuedMessage ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5678
+ children: queuedMessage ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5262
5679
  "span",
5263
5680
  {
5264
5681
  style: {
@@ -5271,9 +5688,9 @@ function ReportDialog({
5271
5688
  }
5272
5689
  ) : addedToIssue ? `Added to #${addedToIssue}${addedAsRelated ? " as a related request" : ""}. Thank you!` : `${getTypeLabel(reportType)} sent. Thank you!`
5273
5690
  }
5274
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
5275
- step === 1 && headerSlot ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { style: { marginBottom: "14px" }, children: headerSlot }) : null,
5276
- step === 1 && sendFeedback2 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5691
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
5692
+ step === 1 && headerSlot ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { marginBottom: "14px" }, children: headerSlot }) : null,
5693
+ step === 1 && sendFeedback2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5277
5694
  "div",
5278
5695
  {
5279
5696
  style: {
@@ -5290,16 +5707,16 @@ function ReportDialog({
5290
5707
  },
5291
5708
  onMouseLeave: () => setHoveredStar(0),
5292
5709
  children: [
5293
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5710
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5294
5711
  "span",
5295
5712
  {
5296
5713
  style: { fontSize: "13px", fontWeight: 600, color: t2.text },
5297
5714
  children: "How are we doing?"
5298
5715
  }
5299
5716
  ),
5300
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { display: "flex", gap: "4px" }, children: [1, 2, 3, 4, 5].map((star) => {
5717
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { display: "flex", gap: "4px" }, children: [1, 2, 3, 4, 5].map((star) => {
5301
5718
  const filled = star <= (hoveredStar || rating);
5302
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5719
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5303
5720
  "button",
5304
5721
  {
5305
5722
  type: "button",
@@ -5320,7 +5737,7 @@ function ReportDialog({
5320
5737
  cursor: "pointer",
5321
5738
  lineHeight: 0
5322
5739
  },
5323
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: "26", height: "26", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5740
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "26", height: "26", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5324
5741
  "path",
5325
5742
  {
5326
5743
  d: "M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.4 6.8 19.1l1-5.8L3.5 9.2l5.9-.9L12 3z",
@@ -5337,7 +5754,7 @@ function ReportDialog({
5337
5754
  ]
5338
5755
  }
5339
5756
  ),
5340
- step === 1 && sendFeedback2 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5757
+ step === 1 && sendFeedback2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5341
5758
  "div",
5342
5759
  {
5343
5760
  style: {
@@ -5347,13 +5764,13 @@ function ReportDialog({
5347
5764
  marginBottom: "16px"
5348
5765
  },
5349
5766
  children: [
5350
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { flex: 1, height: "1px", background: t2.border } }),
5351
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { fontSize: "11px", color: t2.textMuted }, children: "or report something" }),
5352
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { flex: 1, height: "1px", background: t2.border } })
5767
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { flex: 1, height: "1px", background: t2.border } }),
5768
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { fontSize: "11px", color: t2.textMuted }, children: "or report something" }),
5769
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { flex: 1, height: "1px", background: t2.border } })
5353
5770
  ]
5354
5771
  }
5355
5772
  ),
5356
- step === 1 && screenshots.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5773
+ step === 1 && screenshots.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5357
5774
  "div",
5358
5775
  {
5359
5776
  style: {
@@ -5367,7 +5784,7 @@ function ReportDialog({
5367
5784
  background: t2.inputBg
5368
5785
  },
5369
5786
  children: [
5370
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5787
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5371
5788
  "img",
5372
5789
  {
5373
5790
  src: screenshots[0],
@@ -5382,8 +5799,8 @@ function ReportDialog({
5382
5799
  }
5383
5800
  }
5384
5801
  ),
5385
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { fontSize: "11px", color: t2.textMuted, flex: 1 }, children: "Screenshot attached" }),
5386
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5802
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { fontSize: "11px", color: t2.textMuted, flex: 1 }, children: "Screenshot attached" }),
5803
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5387
5804
  "button",
5388
5805
  {
5389
5806
  type: "button",
@@ -5404,7 +5821,7 @@ function ReportDialog({
5404
5821
  ]
5405
5822
  }
5406
5823
  ),
5407
- step === 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5824
+ step === 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5408
5825
  "div",
5409
5826
  {
5410
5827
  ref: tileGridRef,
@@ -5414,7 +5831,7 @@ function ReportDialog({
5414
5831
  gridTemplateColumns: "1fr 1fr 1fr",
5415
5832
  gap: "10px"
5416
5833
  },
5417
- children: availableTypes.map((type) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5834
+ children: availableTypes.map((type) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5418
5835
  "button",
5419
5836
  {
5420
5837
  type: "button",
@@ -5445,7 +5862,7 @@ function ReportDialog({
5445
5862
  },
5446
5863
  children: [
5447
5864
  getTypeIcon(type, t2.accent, 22),
5448
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5865
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5449
5866
  "span",
5450
5867
  {
5451
5868
  style: {
@@ -5463,8 +5880,8 @@ function ReportDialog({
5463
5880
  ))
5464
5881
  }
5465
5882
  ),
5466
- step === 2 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
5467
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5883
+ step === 2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
5884
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5468
5885
  "button",
5469
5886
  {
5470
5887
  type: "button",
@@ -5488,11 +5905,11 @@ function ReportDialog({
5488
5905
  children: [
5489
5906
  getTypeIcon(reportType, isRating ? "#f59e0b" : t2.accent, 13),
5490
5907
  getTypeLabel(reportType),
5491
- availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { color: t2.textMuted, fontWeight: 400 }, children: "\xB7 change" })
5908
+ availableTypes.length > 1 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { color: t2.textMuted, fontWeight: 400 }, children: "\xB7 change" })
5492
5909
  ]
5493
5910
  }
5494
5911
  ),
5495
- isRating && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5912
+ isRating && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5496
5913
  "div",
5497
5914
  {
5498
5915
  style: {
@@ -5503,7 +5920,7 @@ function ReportDialog({
5503
5920
  onMouseLeave: () => setHoveredStar(0),
5504
5921
  children: [1, 2, 3, 4, 5].map((star) => {
5505
5922
  const filled = star <= (hoveredStar || rating);
5506
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5923
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5507
5924
  "button",
5508
5925
  {
5509
5926
  type: "button",
@@ -5520,7 +5937,7 @@ function ReportDialog({
5520
5937
  cursor: "pointer",
5521
5938
  lineHeight: 0
5522
5939
  },
5523
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: "30", height: "30", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5940
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "30", height: "30", viewBox: "0 0 24 24", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5524
5941
  "path",
5525
5942
  {
5526
5943
  d: "M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.4 6.8 19.1l1-5.8L3.5 9.2l5.9-.9L12 3z",
@@ -5536,7 +5953,7 @@ function ReportDialog({
5536
5953
  })
5537
5954
  }
5538
5955
  ),
5539
- assist && !isRating && !assistUsed && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
5956
+ assist && !isRating && !assistUsed && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5540
5957
  "button",
5541
5958
  {
5542
5959
  type: "button",
@@ -5563,7 +5980,7 @@ function ReportDialog({
5563
5980
  },
5564
5981
  title: "Answer a question or two and the assistant writes the report for you",
5565
5982
  children: [
5566
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5983
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5567
5984
  "path",
5568
5985
  {
5569
5986
  d: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3zM19 15l.75 2.25L22 18l-2.25.75L19 21l-.75-2.25L16 18l2.25-.75L19 15z",
@@ -5576,8 +5993,8 @@ function ReportDialog({
5576
5993
  ]
5577
5994
  }
5578
5995
  ),
5579
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { position: "relative" }, children: [
5580
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
5996
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { position: "relative" }, children: [
5997
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5581
5998
  "textarea",
5582
5999
  {
5583
6000
  ref: textareaRef,
@@ -5619,7 +6036,7 @@ function ReportDialog({
5619
6036
  autoFocus: true
5620
6037
  }
5621
6038
  ),
5622
- (isListening || isTranscribing) && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6039
+ (isListening || isTranscribing) && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5623
6040
  "span",
5624
6041
  {
5625
6042
  style: {
@@ -5637,7 +6054,7 @@ function ReportDialog({
5637
6054
  zIndex: 1
5638
6055
  },
5639
6056
  children: [
5640
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6057
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5641
6058
  "span",
5642
6059
  {
5643
6060
  style: {
@@ -5652,7 +6069,7 @@ function ReportDialog({
5652
6069
  }
5653
6070
  ),
5654
6071
  isTranscribing ? "Transcribing\u2026" : "REC",
5655
- isListening && !isTranscribing && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6072
+ isListening && !isTranscribing && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5656
6073
  "span",
5657
6074
  {
5658
6075
  style: {
@@ -5679,7 +6096,7 @@ function ReportDialog({
5679
6096
  dur: "0.55s",
5680
6097
  delay: "0.15s"
5681
6098
  }
5682
- ].map((b, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6099
+ ].map((b, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5683
6100
  "span",
5684
6101
  {
5685
6102
  style: {
@@ -5699,7 +6116,7 @@ function ReportDialog({
5699
6116
  ]
5700
6117
  }
5701
6118
  ),
5702
- enhanceText2 && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6119
+ enhanceText2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5703
6120
  "button",
5704
6121
  {
5705
6122
  type: "button",
@@ -5744,7 +6161,7 @@ function ReportDialog({
5744
6161
  },
5745
6162
  title: "Polish grammar \u2014 preserves your meaning",
5746
6163
  children: [
5747
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6164
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5748
6165
  "svg",
5749
6166
  {
5750
6167
  width: "11",
@@ -5752,7 +6169,7 @@ function ReportDialog({
5752
6169
  viewBox: "0 0 24 24",
5753
6170
  fill: "none",
5754
6171
  "aria-hidden": "true",
5755
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6172
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5756
6173
  "path",
5757
6174
  {
5758
6175
  d: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3zM19 15l.75 2.25L22 18l-2.25.75L19 21l-.75-2.25L16 18l2.25-.75L19 15z",
@@ -5767,7 +6184,7 @@ function ReportDialog({
5767
6184
  ]
5768
6185
  }
5769
6186
  ),
5770
- transcribeAudio2 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6187
+ transcribeAudio2 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5771
6188
  "button",
5772
6189
  {
5773
6190
  type: "button",
@@ -5793,7 +6210,7 @@ function ReportDialog({
5793
6210
  padding: 0,
5794
6211
  transition: "border-color 0.2s ease, color 0.2s ease"
5795
6212
  },
5796
- children: isListening ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6213
+ children: isListening ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5797
6214
  "svg",
5798
6215
  {
5799
6216
  width: "12",
@@ -5801,7 +6218,7 @@ function ReportDialog({
5801
6218
  viewBox: "0 0 24 24",
5802
6219
  fill: "currentColor",
5803
6220
  "aria-hidden": "true",
5804
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6221
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5805
6222
  "rect",
5806
6223
  {
5807
6224
  x: "6",
@@ -5812,7 +6229,7 @@ function ReportDialog({
5812
6229
  }
5813
6230
  )
5814
6231
  }
5815
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6232
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5816
6233
  "svg",
5817
6234
  {
5818
6235
  width: "13",
@@ -5821,7 +6238,7 @@ function ReportDialog({
5821
6238
  fill: "none",
5822
6239
  "aria-hidden": "true",
5823
6240
  children: [
5824
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6241
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5825
6242
  "rect",
5826
6243
  {
5827
6244
  x: "9",
@@ -5833,7 +6250,7 @@ function ReportDialog({
5833
6250
  strokeWidth: "1.8"
5834
6251
  }
5835
6252
  ),
5836
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6253
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5837
6254
  "path",
5838
6255
  {
5839
6256
  d: "M5 10a7 7 0 0014 0M12 19v3M9 22h6",
@@ -5848,7 +6265,7 @@ function ReportDialog({
5848
6265
  }
5849
6266
  )
5850
6267
  ] }),
5851
- transcribeAudio2 && !isListening && !isTranscribing && !voiceError && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6268
+ transcribeAudio2 && !isListening && !isTranscribing && !voiceError && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5852
6269
  "div",
5853
6270
  {
5854
6271
  style: {
@@ -5862,16 +6279,16 @@ function ReportDialog({
5862
6279
  userSelect: "none"
5863
6280
  },
5864
6281
  children: [
5865
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
5866
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" }),
5867
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("path", { d: "M19 10v2a7 7 0 0 1-14 0v-2" }),
5868
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("line", { x1: "12", x2: "12", y1: "19", y2: "22" })
6282
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
6283
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z" }),
6284
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M19 10v2a7 7 0 0 1-14 0v-2" }),
6285
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("line", { x1: "12", x2: "12", y1: "19", y2: "22" })
5869
6286
  ] }),
5870
6287
  "Hold Space to speak \u2014 we'll transcribe it"
5871
6288
  ]
5872
6289
  }
5873
6290
  ),
5874
- isEnhanced && originalDescription !== null && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6291
+ isEnhanced && originalDescription !== null && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5875
6292
  "div",
5876
6293
  {
5877
6294
  style: {
@@ -5885,7 +6302,7 @@ function ReportDialog({
5885
6302
  border: `1px solid ${t2.accent}40`
5886
6303
  },
5887
6304
  children: [
5888
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6305
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5889
6306
  "svg",
5890
6307
  {
5891
6308
  width: "12",
@@ -5893,7 +6310,7 @@ function ReportDialog({
5893
6310
  viewBox: "0 0 24 24",
5894
6311
  fill: "none",
5895
6312
  style: { flexShrink: 0 },
5896
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6313
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5897
6314
  "path",
5898
6315
  {
5899
6316
  d: "M12 3l1.5 4.5L18 9l-4.5 1.5L12 15l-1.5-4.5L6 9l4.5-1.5L12 3z",
@@ -5904,7 +6321,7 @@ function ReportDialog({
5904
6321
  )
5905
6322
  }
5906
6323
  ),
5907
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6324
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5908
6325
  "span",
5909
6326
  {
5910
6327
  style: {
@@ -5915,7 +6332,7 @@ function ReportDialog({
5915
6332
  children: "AI enhanced"
5916
6333
  }
5917
6334
  ),
5918
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6335
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5919
6336
  "button",
5920
6337
  {
5921
6338
  type: "button",
@@ -5937,7 +6354,7 @@ function ReportDialog({
5937
6354
  children: "Keep"
5938
6355
  }
5939
6356
  ),
5940
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6357
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5941
6358
  "button",
5942
6359
  {
5943
6360
  type: "button",
@@ -5963,7 +6380,7 @@ function ReportDialog({
5963
6380
  ]
5964
6381
  }
5965
6382
  ),
5966
- voiceError && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6383
+ voiceError && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5967
6384
  "p",
5968
6385
  {
5969
6386
  role: "alert",
@@ -5977,7 +6394,7 @@ function ReportDialog({
5977
6394
  children: voiceError
5978
6395
  }
5979
6396
  ),
5980
- assistNotice && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6397
+ assistNotice && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
5981
6398
  "p",
5982
6399
  {
5983
6400
  style: {
@@ -5990,8 +6407,8 @@ function ReportDialog({
5990
6407
  children: assistNotice
5991
6408
  }
5992
6409
  ),
5993
- !isRating && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { marginTop: "10px" }, children: [
5994
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6410
+ !isRating && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { marginTop: "10px" }, children: [
6411
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
5995
6412
  "span",
5996
6413
  {
5997
6414
  style: {
@@ -6007,7 +6424,7 @@ function ReportDialog({
6007
6424
  ]
6008
6425
  }
6009
6426
  ),
6010
- (screenshots.length > 0 || shotPending) && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6427
+ (screenshots.length > 0 || shotPending) && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6011
6428
  "div",
6012
6429
  {
6013
6430
  style: {
@@ -6017,7 +6434,7 @@ function ReportDialog({
6017
6434
  marginBottom: "8px"
6018
6435
  },
6019
6436
  children: [
6020
- shotPending && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6437
+ shotPending && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6021
6438
  "div",
6022
6439
  {
6023
6440
  role: "status",
@@ -6042,7 +6459,7 @@ function ReportDialog({
6042
6459
  children: "Capturing\u2026"
6043
6460
  }
6044
6461
  ),
6045
- screenshots.map((src, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6462
+ screenshots.map((src, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6046
6463
  "div",
6047
6464
  {
6048
6465
  style: {
@@ -6051,7 +6468,7 @@ function ReportDialog({
6051
6468
  height: "56px"
6052
6469
  },
6053
6470
  children: [
6054
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6471
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6055
6472
  "img",
6056
6473
  {
6057
6474
  src,
@@ -6069,7 +6486,7 @@ function ReportDialog({
6069
6486
  }
6070
6487
  }
6071
6488
  ),
6072
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6489
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6073
6490
  "button",
6074
6491
  {
6075
6492
  type: "button",
@@ -6095,14 +6512,14 @@ function ReportDialog({
6095
6512
  alignItems: "center",
6096
6513
  justifyContent: "center"
6097
6514
  },
6098
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6515
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6099
6516
  "svg",
6100
6517
  {
6101
6518
  width: "8",
6102
6519
  height: "8",
6103
6520
  viewBox: "0 0 10 10",
6104
6521
  fill: "none",
6105
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6522
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6106
6523
  "path",
6107
6524
  {
6108
6525
  d: "M1 1L9 9M9 1L1 9",
@@ -6115,7 +6532,7 @@ function ReportDialog({
6115
6532
  )
6116
6533
  }
6117
6534
  ),
6118
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6535
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6119
6536
  "button",
6120
6537
  {
6121
6538
  type: "button",
@@ -6140,14 +6557,14 @@ function ReportDialog({
6140
6557
  justifyContent: "center",
6141
6558
  boxShadow: "0 2px 8px rgba(0,0,0,0.45)"
6142
6559
  },
6143
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6560
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6144
6561
  "svg",
6145
6562
  {
6146
6563
  width: "12",
6147
6564
  height: "12",
6148
6565
  viewBox: "0 0 24 24",
6149
6566
  fill: "none",
6150
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6567
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6151
6568
  "path",
6152
6569
  {
6153
6570
  d: "M12 20h9M16.5 3.5a2.12 2.12 0 013 3L7 19l-4 1 1-4L16.5 3.5z",
@@ -6168,7 +6585,7 @@ function ReportDialog({
6168
6585
  ]
6169
6586
  }
6170
6587
  ),
6171
- attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6588
+ attachments.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6172
6589
  "div",
6173
6590
  {
6174
6591
  style: {
@@ -6177,7 +6594,7 @@ function ReportDialog({
6177
6594
  gap: "6px",
6178
6595
  marginBottom: "8px"
6179
6596
  },
6180
- children: attachments.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6597
+ children: attachments.map((a, i) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6181
6598
  "div",
6182
6599
  {
6183
6600
  style: {
@@ -6189,7 +6606,7 @@ function ReportDialog({
6189
6606
  border: `1px solid ${t2.border}`
6190
6607
  },
6191
6608
  children: [
6192
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6609
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6193
6610
  "svg",
6194
6611
  {
6195
6612
  width: "14",
@@ -6198,7 +6615,7 @@ function ReportDialog({
6198
6615
  fill: "none",
6199
6616
  style: { flexShrink: 0, opacity: 0.6 },
6200
6617
  children: [
6201
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6618
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6202
6619
  "path",
6203
6620
  {
6204
6621
  d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z",
@@ -6208,7 +6625,7 @@ function ReportDialog({
6208
6625
  strokeLinejoin: "round"
6209
6626
  }
6210
6627
  ),
6211
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6628
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6212
6629
  "path",
6213
6630
  {
6214
6631
  d: "M14 2v6h6",
@@ -6221,7 +6638,7 @@ function ReportDialog({
6221
6638
  ]
6222
6639
  }
6223
6640
  ),
6224
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6641
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6225
6642
  "span",
6226
6643
  {
6227
6644
  style: {
@@ -6235,7 +6652,7 @@ function ReportDialog({
6235
6652
  children: a.name
6236
6653
  }
6237
6654
  ),
6238
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6655
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6239
6656
  "span",
6240
6657
  {
6241
6658
  style: { fontSize: "10px", color: t2.textMuted },
@@ -6245,7 +6662,7 @@ function ReportDialog({
6245
6662
  ]
6246
6663
  }
6247
6664
  ),
6248
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6665
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6249
6666
  "button",
6250
6667
  {
6251
6668
  type: "button",
@@ -6269,14 +6686,14 @@ function ReportDialog({
6269
6686
  justifyContent: "center",
6270
6687
  flexShrink: 0
6271
6688
  },
6272
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6689
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6273
6690
  "svg",
6274
6691
  {
6275
6692
  width: "8",
6276
6693
  height: "8",
6277
6694
  viewBox: "0 0 10 10",
6278
6695
  fill: "none",
6279
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6696
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6280
6697
  "path",
6281
6698
  {
6282
6699
  d: "M1 1L9 9M9 1L1 9",
@@ -6295,7 +6712,7 @@ function ReportDialog({
6295
6712
  ))
6296
6713
  }
6297
6714
  ),
6298
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6715
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6299
6716
  "div",
6300
6717
  {
6301
6718
  onClick: () => {
@@ -6321,7 +6738,7 @@ function ReportDialog({
6321
6738
  background: screenshotDragOver ? isDark ? "rgba(34,211,238,0.06)" : "rgba(8,145,178,0.04)" : "transparent",
6322
6739
  transition: "border-color 0.15s ease, background 0.15s ease"
6323
6740
  },
6324
- children: screenshots.length + attachments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6741
+ children: screenshots.length + attachments.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6325
6742
  "p",
6326
6743
  {
6327
6744
  style: {
@@ -6332,8 +6749,8 @@ function ReportDialog({
6332
6749
  },
6333
6750
  children: screenshotDragOver ? "Drop to attach" : "+ Add more \xB7 Drag & drop \xB7 Paste"
6334
6751
  }
6335
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
6336
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6752
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
6753
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6337
6754
  "svg",
6338
6755
  {
6339
6756
  width: "22",
@@ -6346,7 +6763,7 @@ function ReportDialog({
6346
6763
  opacity: 0.45
6347
6764
  },
6348
6765
  children: [
6349
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6766
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6350
6767
  "rect",
6351
6768
  {
6352
6769
  x: "3",
@@ -6358,7 +6775,7 @@ function ReportDialog({
6358
6775
  strokeWidth: "1.5"
6359
6776
  }
6360
6777
  ),
6361
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6778
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6362
6779
  "circle",
6363
6780
  {
6364
6781
  cx: "8.5",
@@ -6368,7 +6785,7 @@ function ReportDialog({
6368
6785
  strokeWidth: "1.5"
6369
6786
  }
6370
6787
  ),
6371
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6788
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6372
6789
  "path",
6373
6790
  {
6374
6791
  d: "M21 15l-5-5L5 21",
@@ -6381,7 +6798,7 @@ function ReportDialog({
6381
6798
  ]
6382
6799
  }
6383
6800
  ),
6384
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6801
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6385
6802
  "p",
6386
6803
  {
6387
6804
  style: {
@@ -6393,7 +6810,7 @@ function ReportDialog({
6393
6810
  children: screenshotDragOver ? "Drop to attach" : "Add screenshots or files"
6394
6811
  }
6395
6812
  ),
6396
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6813
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6397
6814
  "p",
6398
6815
  {
6399
6816
  style: {
@@ -6408,8 +6825,8 @@ function ReportDialog({
6408
6825
  }
6409
6826
  )
6410
6827
  ] }),
6411
- showSeverity && reportType === "BUG" && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { marginTop: "10px" }, children: [
6412
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6828
+ showSeverity && reportType === "BUG" && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { marginTop: "10px" }, children: [
6829
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6413
6830
  "span",
6414
6831
  {
6415
6832
  style: {
@@ -6422,7 +6839,7 @@ function ReportDialog({
6422
6839
  },
6423
6840
  children: [
6424
6841
  "How bad is it?",
6425
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6842
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6426
6843
  "span",
6427
6844
  {
6428
6845
  style: {
@@ -6435,7 +6852,7 @@ function ReportDialog({
6435
6852
  ]
6436
6853
  }
6437
6854
  ),
6438
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6855
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6439
6856
  "div",
6440
6857
  {
6441
6858
  role: "radiogroup",
@@ -6443,7 +6860,7 @@ function ReportDialog({
6443
6860
  style: { display: "flex", gap: "6px" },
6444
6861
  children: SEVERITY_LEVELS.map((s) => {
6445
6862
  const on = severity === s;
6446
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6863
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6447
6864
  "button",
6448
6865
  {
6449
6866
  type: "button",
@@ -6484,7 +6901,7 @@ function ReportDialog({
6484
6901
  }
6485
6902
  )
6486
6903
  ] }),
6487
- validationError && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6904
+ validationError && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6488
6905
  "p",
6489
6906
  {
6490
6907
  style: {
@@ -6499,7 +6916,7 @@ function ReportDialog({
6499
6916
  // Same visual language as the assistant's "Our team is
6500
6917
  // already on this" card, so both routes to a duplicate
6501
6918
  // read as one feature.
6502
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6919
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6503
6920
  "div",
6504
6921
  {
6505
6922
  "data-gg-similar": "",
@@ -6514,11 +6931,11 @@ function ReportDialog({
6514
6931
  backgroundColor: "rgba(245,158,11,0.08)"
6515
6932
  },
6516
6933
  children: [
6517
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [
6518
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { color: t2.text, fontWeight: 600, fontSize: "13px" }, children: "Our team may already have this, or something close" }),
6519
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { color: t2.textMuted, fontSize: "12px", lineHeight: 1.5 }, children: similarIssues.length > 1 ? "Pick the one that matches. Same problem, or a different request for the same feature \u2014 it's added to that issue, so the team has it in one place." : "Same problem, or a different request for the same feature? Pick it \u2014 it's added to that issue, so the team has it in one place." })
6934
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: "2px" }, children: [
6935
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { color: t2.text, fontWeight: 600, fontSize: "13px" }, children: "Our team may already have this, or something close" }),
6936
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { color: t2.textMuted, fontSize: "12px", lineHeight: 1.5 }, children: similarIssues.length > 1 ? "Pick the one that matches. Same problem, or a different request for the same feature \u2014 it's added to that issue, so the team has it in one place." : "Same problem, or a different request for the same feature? Pick it \u2014 it's added to that issue, so the team has it in one place." })
6520
6937
  ] }),
6521
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6938
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6522
6939
  "div",
6523
6940
  {
6524
6941
  role: "radiogroup",
@@ -6526,7 +6943,7 @@ function ReportDialog({
6526
6943
  style: { display: "flex", flexDirection: "column", gap: "6px" },
6527
6944
  children: similarIssues.map((issue) => {
6528
6945
  const picked = pickedSimilar === issue.number;
6529
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6946
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6530
6947
  "button",
6531
6948
  {
6532
6949
  type: "button",
@@ -6551,7 +6968,7 @@ function ReportDialog({
6551
6968
  fontFamily: "inherit"
6552
6969
  },
6553
6970
  children: [
6554
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
6971
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6555
6972
  "span",
6556
6973
  {
6557
6974
  "aria-hidden": "true",
@@ -6568,7 +6985,7 @@ function ReportDialog({
6568
6985
  }
6569
6986
  }
6570
6987
  ),
6571
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6988
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6572
6989
  "span",
6573
6990
  {
6574
6991
  style: {
@@ -6578,7 +6995,7 @@ function ReportDialog({
6578
6995
  minWidth: 0
6579
6996
  },
6580
6997
  children: [
6581
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
6998
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6582
6999
  "span",
6583
7000
  {
6584
7001
  title: issue.title,
@@ -6592,7 +7009,7 @@ function ReportDialog({
6592
7009
  WebkitBoxOrient: "vertical"
6593
7010
  },
6594
7011
  children: [
6595
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("span", { style: { color: t2.textMuted, fontWeight: 600 }, children: [
7012
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("span", { style: { color: t2.textMuted, fontWeight: 600 }, children: [
6596
7013
  "#",
6597
7014
  issue.number
6598
7015
  ] }),
@@ -6601,7 +7018,7 @@ function ReportDialog({
6601
7018
  ]
6602
7019
  }
6603
7020
  ),
6604
- issue.status && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { style: { fontSize: "11.5px", color: t2.textMuted }, children: issue.status })
7021
+ issue.status && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { fontSize: "11.5px", color: t2.textMuted }, children: issue.status })
6605
7022
  ]
6606
7023
  }
6607
7024
  )
@@ -6612,7 +7029,7 @@ function ReportDialog({
6612
7029
  })
6613
7030
  }
6614
7031
  ),
6615
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7032
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6616
7033
  "button",
6617
7034
  {
6618
7035
  type: "button",
@@ -6637,15 +7054,15 @@ function ReportDialog({
6637
7054
  cursor: isSubmitting || !pickedSimilar ? "not-allowed" : "pointer",
6638
7055
  fontFamily: "inherit"
6639
7056
  },
6640
- children: typeof attachingTo === "number" && duplicateKind !== "related" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
6641
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ButtonSpinner, {}),
7057
+ children: typeof attachingTo === "number" && duplicateKind !== "related" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
7058
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ButtonSpinner, {}),
6642
7059
  "Adding to #",
6643
7060
  attachingTo,
6644
7061
  "\u2026"
6645
7062
  ] }) : pickedSimilar ? `Add to #${pickedSimilar}` : "Pick the matching issue"
6646
7063
  }
6647
7064
  ),
6648
- pickedSimilar && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7065
+ pickedSimilar && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6649
7066
  "button",
6650
7067
  {
6651
7068
  type: "button",
@@ -6670,15 +7087,15 @@ function ReportDialog({
6670
7087
  cursor: isSubmitting ? "not-allowed" : "pointer",
6671
7088
  fontFamily: "inherit"
6672
7089
  },
6673
- children: typeof attachingTo === "number" && duplicateKind === "related" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
6674
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ButtonSpinner, {}),
7090
+ children: typeof attachingTo === "number" && duplicateKind === "related" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
7091
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ButtonSpinner, {}),
6675
7092
  "Adding to #",
6676
7093
  attachingTo,
6677
7094
  "\u2026"
6678
7095
  ] }) : `Related request \u2014 add to #${pickedSimilar}`
6679
7096
  }
6680
7097
  ),
6681
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7098
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6682
7099
  "button",
6683
7100
  {
6684
7101
  type: "button",
@@ -6703,8 +7120,8 @@ function ReportDialog({
6703
7120
  cursor: isSubmitting ? "not-allowed" : "pointer",
6704
7121
  fontFamily: "inherit"
6705
7122
  },
6706
- children: attachingTo === "new" ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
6707
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ButtonSpinner, {}),
7123
+ children: attachingTo === "new" ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
7124
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ButtonSpinner, {}),
6708
7125
  "Sending as new\u2026"
6709
7126
  ] }) : "No, mine is different \u2014 send as new"
6710
7127
  }
@@ -6712,7 +7129,7 @@ function ReportDialog({
6712
7129
  ]
6713
7130
  }
6714
7131
  )
6715
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7132
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6716
7133
  "button",
6717
7134
  {
6718
7135
  type: "button",
@@ -6732,8 +7149,8 @@ function ReportDialog({
6732
7149
  fontFamily: "inherit",
6733
7150
  transition: "background-color 0.15s ease"
6734
7151
  },
6735
- children: checkingSimilar ? /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
6736
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ButtonSpinner, {}),
7152
+ children: checkingSimilar ? /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
7153
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ButtonSpinner, {}),
6737
7154
  "Checking for existing reports\u2026"
6738
7155
  ] }) : isSubmitting ? shotPending && !isRating ? "Attaching screenshot\u2026" : "Sending..." : isRating ? "Send Rating" : "Send Report"
6739
7156
  }
@@ -6742,7 +7159,7 @@ function ReportDialog({
6742
7159
  ] })
6743
7160
  }
6744
7161
  ),
6745
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
7162
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6746
7163
  "div",
6747
7164
  {
6748
7165
  style: {
@@ -6754,8 +7171,8 @@ function ReportDialog({
6754
7171
  gap: "12px"
6755
7172
  },
6756
7173
  children: [
6757
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ReporterChip, { reporter, t: t2 }),
6758
- reportGlitchgrabProblem ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7174
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ReporterChip, { reporter, t: t2 }),
7175
+ reportGlitchgrabProblem ? /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6759
7176
  "button",
6760
7177
  {
6761
7178
  type: "button",
@@ -6782,7 +7199,7 @@ function ReportDialog({
6782
7199
  },
6783
7200
  children: "Problem with Glitchgrab?"
6784
7201
  }
6785
- ) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7202
+ ) : /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6786
7203
  "span",
6787
7204
  {
6788
7205
  style: {
@@ -6804,7 +7221,7 @@ function ReportDialog({
6804
7221
  ),
6805
7222
  document.body
6806
7223
  ),
6807
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7224
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6808
7225
  "input",
6809
7226
  {
6810
7227
  ref: fileInputRef,
@@ -6816,7 +7233,7 @@ function ReportDialog({
6816
7233
  }
6817
7234
  ),
6818
7235
  isOpen && previewIndex !== null && screenshots[previewIndex] && (0, import_react_dom.createPortal)(
6819
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
7236
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6820
7237
  "div",
6821
7238
  {
6822
7239
  "data-glitchgrab-layer": "",
@@ -6838,7 +7255,7 @@ function ReportDialog({
6838
7255
  },
6839
7256
  onMouseDown: (e) => e.stopPropagation(),
6840
7257
  children: [
6841
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
7258
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6842
7259
  "div",
6843
7260
  {
6844
7261
  ref: previewImgRef,
@@ -6850,7 +7267,7 @@ function ReportDialog({
6850
7267
  },
6851
7268
  onClick: (e) => e.stopPropagation(),
6852
7269
  children: [
6853
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7270
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6854
7271
  "div",
6855
7272
  {
6856
7273
  ref: previewScrollRef,
@@ -6869,7 +7286,7 @@ function ReportDialog({
6869
7286
  touchAction: "none",
6870
7287
  cursor: "grab"
6871
7288
  } : { maxWidth: "100%", lineHeight: 0 },
6872
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7289
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6873
7290
  "img",
6874
7291
  {
6875
7292
  ref: previewImgElRef,
@@ -6897,7 +7314,7 @@ function ReportDialog({
6897
7314
  )
6898
7315
  }
6899
7316
  ),
6900
- /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
7317
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
6901
7318
  "button",
6902
7319
  {
6903
7320
  type: "button",
@@ -6925,7 +7342,7 @@ function ReportDialog({
6925
7342
  animation: "gg-pulse 2s ease-in-out infinite"
6926
7343
  },
6927
7344
  children: [
6928
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7345
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6929
7346
  "path",
6930
7347
  {
6931
7348
  d: "M12 20h9M16.5 3.5a2.12 2.12 0 013 3L7 19l-4 1 1-4L16.5 3.5z",
@@ -6942,7 +7359,7 @@ function ReportDialog({
6942
7359
  ]
6943
7360
  }
6944
7361
  ),
6945
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7362
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6946
7363
  "div",
6947
7364
  {
6948
7365
  style: {
@@ -6951,7 +7368,7 @@ function ReportDialog({
6951
7368
  alignItems: "center",
6952
7369
  gap: "12px"
6953
7370
  },
6954
- children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7371
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6955
7372
  "span",
6956
7373
  {
6957
7374
  style: {
@@ -6973,7 +7390,7 @@ function ReportDialog({
6973
7390
  document.body
6974
7391
  ),
6975
7392
  isOpen && annotatingIndex !== null && screenshots[annotatingIndex] && (0, import_react_dom.createPortal)(
6976
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7393
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6977
7394
  AnnotationCanvas,
6978
7395
  {
6979
7396
  imageSrc: screenshots[annotatingIndex],
@@ -6989,7 +7406,7 @@ function ReportDialog({
6989
7406
  ),
6990
7407
  document.body
6991
7408
  ),
6992
- isOpen && selfReportFrom && reportGlitchgrabProblem && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7409
+ isOpen && selfReportFrom && reportGlitchgrabProblem && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
6993
7410
  GlitchgrabProblemPanel,
6994
7411
  {
6995
7412
  send: reportGlitchgrabProblem,
@@ -7002,7 +7419,7 @@ function ReportDialog({
7002
7419
  onClose: () => setSelfReportFrom(null)
7003
7420
  }
7004
7421
  ),
7005
- isOpen && sheetUp && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7422
+ isOpen && sheetUp && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7006
7423
  AssistSheet,
7007
7424
  {
7008
7425
  assist,
@@ -7103,7 +7520,7 @@ function getTypeIcon(type, color, size = 24) {
7103
7520
  };
7104
7521
  switch (type) {
7105
7522
  case "RATING":
7106
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7523
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7107
7524
  "path",
7108
7525
  {
7109
7526
  d: "M12 3l2.6 5.3 5.9.9-4.3 4.1 1 5.8L12 16.4 6.8 19.1l1-5.8L3.5 9.2l5.9-.9L12 3z",
@@ -7113,7 +7530,7 @@ function getTypeIcon(type, color, size = 24) {
7113
7530
  }
7114
7531
  ) });
7115
7532
  case "BUG":
7116
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7533
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7117
7534
  "path",
7118
7535
  {
7119
7536
  d: "M8 2L6.5 3.5M16 2L17.5 3.5M3 9H7M17 9H21M12 2a5 5 0 015 5v4a5 5 0 01-10 0V7a5 5 0 015-5zM7 16l-2 3M17 16l2 3",
@@ -7123,7 +7540,7 @@ function getTypeIcon(type, color, size = 24) {
7123
7540
  }
7124
7541
  ) });
7125
7542
  case "FEATURE_REQUEST":
7126
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7543
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7127
7544
  "path",
7128
7545
  {
7129
7546
  d: "M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2z",
@@ -7133,8 +7550,8 @@ function getTypeIcon(type, color, size = 24) {
7133
7550
  }
7134
7551
  ) });
7135
7552
  case "UI_IMPROVEMENT":
7136
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { ...props, children: [
7137
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7553
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...props, children: [
7554
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7138
7555
  "rect",
7139
7556
  {
7140
7557
  x: "3",
@@ -7146,7 +7563,7 @@ function getTypeIcon(type, color, size = 24) {
7146
7563
  strokeWidth: "1.5"
7147
7564
  }
7148
7565
  ),
7149
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7566
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7150
7567
  "path",
7151
7568
  {
7152
7569
  d: "M3 9h18M9 21V9",
@@ -7157,7 +7574,7 @@ function getTypeIcon(type, color, size = 24) {
7157
7574
  )
7158
7575
  ] });
7159
7576
  case "PERFORMANCE":
7160
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7577
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7161
7578
  "path",
7162
7579
  {
7163
7580
  d: "M12 21a9 9 0 100-18 9 9 0 000 18zM12 12l4-4M12 7v.01",
@@ -7168,7 +7585,7 @@ function getTypeIcon(type, color, size = 24) {
7168
7585
  }
7169
7586
  ) });
7170
7587
  case "SECURITY":
7171
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7588
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7172
7589
  "path",
7173
7590
  {
7174
7591
  d: "M12 3l7 3v5c0 4.5-3 8.5-7 10-4-1.5-7-5.5-7-10V6l7-3z",
@@ -7178,9 +7595,9 @@ function getTypeIcon(type, color, size = 24) {
7178
7595
  }
7179
7596
  ) });
7180
7597
  case "QUESTION":
7181
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("svg", { ...props, children: [
7182
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: color, strokeWidth: "1.5" }),
7183
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7598
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { ...props, children: [
7599
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("circle", { cx: "12", cy: "12", r: "10", stroke: color, strokeWidth: "1.5" }),
7600
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7184
7601
  "path",
7185
7602
  {
7186
7603
  d: "M9.09 9a3 3 0 015.83 1c0 2-3 3-3 3M12 17h.01",
@@ -7192,7 +7609,7 @@ function getTypeIcon(type, color, size = 24) {
7192
7609
  )
7193
7610
  ] });
7194
7611
  case "OTHER":
7195
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
7612
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("svg", { ...props, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7196
7613
  "path",
7197
7614
  {
7198
7615
  d: "M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2v10z",
@@ -7206,7 +7623,7 @@ function getTypeIcon(type, color, size = 24) {
7206
7623
 
7207
7624
  // src/booking-dialog.tsx
7208
7625
  var import_react5 = require("react");
7209
- var import_jsx_runtime5 = require("react/jsx-runtime");
7626
+ var import_jsx_runtime6 = require("react/jsx-runtime");
7210
7627
  var t = {
7211
7628
  bg: "#141414",
7212
7629
  surface: "#1c1c1c",
@@ -7368,7 +7785,7 @@ function BookingDialog({
7368
7785
  }
7369
7786
  }
7370
7787
  const canSubmitDetails = name.trim() && email.includes("@") && phone.replace(/\D/g, "").length >= 8;
7371
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7788
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7372
7789
  "div",
7373
7790
  {
7374
7791
  onClick: (e) => {
@@ -7385,7 +7802,7 @@ function BookingDialog({
7385
7802
  padding: 16,
7386
7803
  fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif"
7387
7804
  },
7388
- children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
7805
+ children: /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
7389
7806
  "div",
7390
7807
  {
7391
7808
  role: "dialog",
@@ -7403,7 +7820,7 @@ function BookingDialog({
7403
7820
  overflow: "hidden"
7404
7821
  },
7405
7822
  children: [
7406
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
7823
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
7407
7824
  "div",
7408
7825
  {
7409
7826
  style: {
@@ -7415,11 +7832,11 @@ function BookingDialog({
7415
7832
  gap: 12
7416
7833
  },
7417
7834
  children: [
7418
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { children: [
7419
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 15, fontWeight: 600 }, children: heading.title }),
7420
- heading.description && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 12, color: t.muted, marginTop: 2 }, children: heading.description })
7835
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { children: [
7836
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { fontSize: 15, fontWeight: 600 }, children: heading.title }),
7837
+ heading.description && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { fontSize: 12, color: t.muted, marginTop: 2 }, children: heading.description })
7421
7838
  ] }),
7422
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7839
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7423
7840
  "button",
7424
7841
  {
7425
7842
  onClick: onClose,
@@ -7431,10 +7848,10 @@ function BookingDialog({
7431
7848
  ]
7432
7849
  }
7433
7850
  ),
7434
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { padding: 18, overflowY: "auto", flex: "1 1 auto" }, children: [
7435
- error && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { color: t.danger, fontSize: 12, marginBottom: 12, lineHeight: 1.5 }, children: error }),
7436
- step === "slots" && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
7437
- whatsappUrl && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
7851
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { padding: 18, overflowY: "auto", flex: "1 1 auto" }, children: [
7852
+ error && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { color: t.danger, fontSize: 12, marginBottom: 12, lineHeight: 1.5 }, children: error }),
7853
+ step === "slots" && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
7854
+ whatsappUrl && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
7438
7855
  "a",
7439
7856
  {
7440
7857
  href: whatsappUrl,
@@ -7453,15 +7870,15 @@ function BookingDialog({
7453
7870
  },
7454
7871
  children: [
7455
7872
  "\u{1F4AC} Rather book on WhatsApp?",
7456
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { style: { display: "block", fontSize: 11, color: t.muted, marginTop: 2 }, children: "We'll ask the same questions in chat." })
7873
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { style: { display: "block", fontSize: 11, color: t.muted, marginTop: 2 }, children: "We'll ask the same questions in chat." })
7457
7874
  ]
7458
7875
  }
7459
7876
  ),
7460
- slots === null && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { color: t.muted, fontSize: 13 }, children: "Finding times\u2026" }),
7461
- (slots == null ? void 0 : slots.length) === 0 && !error && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { color: t.muted, fontSize: 13 }, children: "No times available right now." }),
7462
- [...byDay.entries()].map(([day, daySlots]) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { marginBottom: 18 }, children: [
7463
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 11, color: t.muted, marginBottom: 8, textTransform: "uppercase", letterSpacing: ".6px" }, children: formatDay(daySlots[0].startsAt) }),
7464
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: 8 }, children: daySlots.map((slot) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7877
+ slots === null && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { color: t.muted, fontSize: 13 }, children: "Finding times\u2026" }),
7878
+ (slots == null ? void 0 : slots.length) === 0 && !error && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { color: t.muted, fontSize: 13 }, children: "No times available right now." }),
7879
+ [...byDay.entries()].map(([day, daySlots]) => /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { marginBottom: 18 }, children: [
7880
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { fontSize: 11, color: t.muted, marginBottom: 8, textTransform: "uppercase", letterSpacing: ".6px" }, children: formatDay(daySlots[0].startsAt) }),
7881
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: 8 }, children: daySlots.map((slot) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7465
7882
  "button",
7466
7883
  {
7467
7884
  onClick: () => {
@@ -7483,13 +7900,13 @@ function BookingDialog({
7483
7900
  )) })
7484
7901
  ] }, day))
7485
7902
  ] }),
7486
- step === "details" && selected && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7487
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { fontSize: 13, color: t.muted }, children: [
7903
+ step === "details" && selected && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7904
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { fontSize: 13, color: t.muted }, children: [
7488
7905
  formatDay(selected.startsAt),
7489
7906
  " \xB7 ",
7490
7907
  formatTime(selected.startsAt),
7491
7908
  " \xB7 ",
7492
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7909
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7493
7910
  "button",
7494
7911
  {
7495
7912
  onClick: () => setStep("slots"),
@@ -7498,9 +7915,9 @@ function BookingDialog({
7498
7915
  }
7499
7916
  )
7500
7917
  ] }),
7501
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Field, { label: "Your name", value: name, onChange: setName }),
7502
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Field, { label: "Email", value: email, onChange: setEmail, type: "email" }),
7503
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7918
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Field, { label: "Your name", value: name, onChange: setName }),
7919
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Field, { label: "Email", value: email, onChange: setEmail, type: "email" }),
7920
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7504
7921
  Field,
7505
7922
  {
7506
7923
  label: "Mobile number",
@@ -7510,8 +7927,8 @@ function BookingDialog({
7510
7927
  hint: "We send a code here to confirm, then a reminder before the call."
7511
7928
  }
7512
7929
  ),
7513
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Field, { label: "Anything we should know? (optional)", value: note, onChange: setNote }),
7514
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7930
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Field, { label: "Anything we should know? (optional)", value: note, onChange: setNote }),
7931
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7515
7932
  "button",
7516
7933
  {
7517
7934
  onClick: startBooking,
@@ -7521,10 +7938,10 @@ function BookingDialog({
7521
7938
  }
7522
7939
  )
7523
7940
  ] }),
7524
- step === "code" && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7525
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 13, color: t.muted, lineHeight: 1.5 }, children: "We sent a 4-digit code to your phone. Your slot is held for 10 minutes." }),
7526
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Field, { label: "Code", value: code, onChange: setCode }),
7527
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7941
+ step === "code" && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7942
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { fontSize: 13, color: t.muted, lineHeight: 1.5 }, children: "We sent a 4-digit code to your phone. Your slot is held for 10 minutes." }),
7943
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Field, { label: "Code", value: code, onChange: setCode }),
7944
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7528
7945
  "button",
7529
7946
  {
7530
7947
  onClick: confirmBooking,
@@ -7534,15 +7951,15 @@ function BookingDialog({
7534
7951
  }
7535
7952
  )
7536
7953
  ] }),
7537
- step === "done" && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7538
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { fontSize: 15, fontWeight: 600 }, children: "You're booked." }),
7539
- /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { style: { fontSize: 13, color: t.muted, lineHeight: 1.6 }, children: [
7954
+ step === "done" && /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { display: "flex", flexDirection: "column", gap: 10 }, children: [
7955
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { fontSize: 15, fontWeight: 600 }, children: "You're booked." }),
7956
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { fontSize: 13, color: t.muted, lineHeight: 1.6 }, children: [
7540
7957
  selected && `${formatDay(selected.startsAt)} at ${formatTime(selected.startsAt)}. `,
7541
7958
  "A calendar invite is on its way to ",
7542
7959
  email,
7543
7960
  ", and we'll send a WhatsApp reminder before the call."
7544
7961
  ] }),
7545
- meetUrl && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("a", { href: meetUrl, target: "_blank", rel: "noreferrer", style: { ...primaryStyle(false), textAlign: "center", textDecoration: "none" }, children: "Open the meeting link" })
7962
+ meetUrl && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("a", { href: meetUrl, target: "_blank", rel: "noreferrer", style: { ...primaryStyle(false), textAlign: "center", textDecoration: "none" }, children: "Open the meeting link" })
7546
7963
  ] })
7547
7964
  ] })
7548
7965
  ]
@@ -7571,9 +7988,9 @@ function Field({
7571
7988
  type = "text",
7572
7989
  hint
7573
7990
  }) {
7574
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("label", { style: { display: "block", fontSize: 11, color: t.muted }, children: [
7991
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { style: { display: "block", fontSize: 11, color: t.muted }, children: [
7575
7992
  label,
7576
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
7993
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
7577
7994
  "input",
7578
7995
  {
7579
7996
  type,
@@ -7594,7 +8011,7 @@ function Field({
7594
8011
  }
7595
8012
  }
7596
8013
  ),
7597
- hint && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { style: { marginTop: 4, fontSize: 10, color: t.muted }, children: hint })
8014
+ hint && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { style: { marginTop: 4, fontSize: 10, color: t.muted }, children: hint })
7598
8015
  ] });
7599
8016
  }
7600
8017
 
@@ -7735,7 +8152,7 @@ function matchesShortcut(e) {
7735
8152
  }
7736
8153
 
7737
8154
  // src/provider.tsx
7738
- var import_jsx_runtime6 = require("react/jsx-runtime");
8155
+ var import_jsx_runtime7 = require("react/jsx-runtime");
7739
8156
  var DEFAULT_BASE_URL2 = "https://glitchgrab.dev";
7740
8157
  var GlitchgrabContext = (0, import_react6.createContext)(null);
7741
8158
  function useGlitchgrab() {
@@ -8217,7 +8634,7 @@ function GlitchgrabProviderInner({
8217
8634
  (0, import_react6.useEffect)(() => {
8218
8635
  setShortcutLabel(getShortcutLabel2());
8219
8636
  }, []);
8220
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
8637
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
8221
8638
  GlitchgrabContext.Provider,
8222
8639
  {
8223
8640
  value: {
@@ -8237,7 +8654,7 @@ function GlitchgrabProviderInner({
8237
8654
  shortcutLabel
8238
8655
  },
8239
8656
  children: [
8240
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
8657
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
8241
8658
  GlitchgrabErrorBoundary,
8242
8659
  {
8243
8660
  token,
@@ -8249,7 +8666,7 @@ function GlitchgrabProviderInner({
8249
8666
  children
8250
8667
  }
8251
8668
  ),
8252
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
8669
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
8253
8670
  BookingDialog,
8254
8671
  {
8255
8672
  token,
@@ -8258,7 +8675,7 @@ function GlitchgrabProviderInner({
8258
8675
  onClose: () => setBookingOpen(false)
8259
8676
  }
8260
8677
  ),
8261
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
8678
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
8262
8679
  ReportDialog,
8263
8680
  {
8264
8681
  report,
@@ -8271,9 +8688,9 @@ function GlitchgrabProviderInner({
8271
8688
  types,
8272
8689
  showSeverity,
8273
8690
  reporter,
8274
- headerSlot: projectName ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { style: { fontSize: 11, color: "#9aa0a6" }, children: [
8691
+ headerSlot: projectName ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { fontSize: 11, color: "#9aa0a6" }, children: [
8275
8692
  "Reporting to ",
8276
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("strong", { style: { color: "#e5e5e5" }, children: projectName })
8693
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("strong", { style: { color: "#e5e5e5" }, children: projectName })
8277
8694
  ] }) : null
8278
8695
  }
8279
8696
  )
@@ -8282,21 +8699,21 @@ function GlitchgrabProviderInner({
8282
8699
  );
8283
8700
  }
8284
8701
  function GlitchgrabProvider(props) {
8285
- if (!props.token) return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: props.children });
8702
+ if (!props.token) return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: props.children });
8286
8703
  const resolvedProps = {
8287
8704
  ...props,
8288
8705
  baseUrl: props.baseUrl || DEFAULT_BASE_URL2
8289
8706
  };
8290
8707
  try {
8291
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(GlitchgrabProviderInner, { ...resolvedProps });
8708
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(GlitchgrabProviderInner, { ...resolvedProps });
8292
8709
  } catch (e) {
8293
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_jsx_runtime6.Fragment, { children: props.children });
8710
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: props.children });
8294
8711
  }
8295
8712
  }
8296
8713
 
8297
8714
  // src/report-button.tsx
8298
8715
  var import_react7 = require("react");
8299
- var import_jsx_runtime7 = require("react/jsx-runtime");
8716
+ var import_jsx_runtime8 = require("react/jsx-runtime");
8300
8717
  function useGlitchgrabSafe() {
8301
8718
  try {
8302
8719
  return useGlitchgrab();
@@ -8320,7 +8737,7 @@ function ReportButton({
8320
8737
  setCapturing(false);
8321
8738
  };
8322
8739
  if (children) {
8323
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_jsx_runtime7.Fragment, { children: children({ onClick: handleClick, capturing }) });
8740
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: children({ onClick: handleClick, capturing }) });
8324
8741
  }
8325
8742
  const isTop = (_a = position == null ? void 0 : position.startsWith("top")) != null ? _a : false;
8326
8743
  const isLeft = (_b = position == null ? void 0 : position.endsWith("left")) != null ? _b : false;
@@ -8328,7 +8745,7 @@ function ReportButton({
8328
8745
  ...isLeft ? { left: "16px" } : { right: "16px" },
8329
8746
  ...isTop ? { top: "16px" } : { bottom: "16px" }
8330
8747
  };
8331
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
8748
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
8332
8749
  "button",
8333
8750
  {
8334
8751
  type: "button",
@@ -8363,7 +8780,7 @@ function ReportButton({
8363
8780
  },
8364
8781
  "aria-label": label,
8365
8782
  children: [
8366
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
8783
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
8367
8784
  "svg",
8368
8785
  {
8369
8786
  width: "16",
@@ -8371,7 +8788,7 @@ function ReportButton({
8371
8788
  viewBox: "0 0 16 16",
8372
8789
  fill: "none",
8373
8790
  style: { flexShrink: 0 },
8374
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
8791
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
8375
8792
  "path",
8376
8793
  {
8377
8794
  d: "M8 1C4.134 1 1 4.134 1 8s3.134 7 7 7 7-3.134 7-7-3.134-7-7-7zm0 12.5a.75.75 0 110-1.5.75.75 0 010 1.5zm.75-3.5a.75.75 0 01-1.5 0V5a.75.75 0 011.5 0v5z",
@@ -8387,15 +8804,15 @@ function ReportButton({
8387
8804
  }
8388
8805
 
8389
8806
  // src/book-demo-button.tsx
8390
- var import_jsx_runtime8 = require("react/jsx-runtime");
8807
+ var import_jsx_runtime9 = require("react/jsx-runtime");
8391
8808
  function BookDemoButton({
8392
8809
  label = "Book a demo",
8393
8810
  className,
8394
8811
  children
8395
8812
  }) {
8396
8813
  const { openBookingDialog } = useGlitchgrab();
8397
- if (children) return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_jsx_runtime8.Fragment, { children: children({ onClick: openBookingDialog }) });
8398
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
8814
+ if (children) return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: children({ onClick: openBookingDialog }) });
8815
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
8399
8816
  "button",
8400
8817
  {
8401
8818
  type: "button",
@@ -8417,7 +8834,7 @@ function BookDemoButton({
8417
8834
  }
8418
8835
 
8419
8836
  // src/feedback-button.tsx
8420
- var import_jsx_runtime9 = require("react/jsx-runtime");
8837
+ var import_jsx_runtime10 = require("react/jsx-runtime");
8421
8838
  function useGlitchgrabSafe2() {
8422
8839
  try {
8423
8840
  return useGlitchgrab();
@@ -8436,7 +8853,7 @@ function FeedbackButton({
8436
8853
  if (!glitchgrab) return null;
8437
8854
  const handleClick = () => glitchgrab.openFeedbackDialog();
8438
8855
  if (children) {
8439
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: children({ onClick: handleClick }) });
8856
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: children({ onClick: handleClick }) });
8440
8857
  }
8441
8858
  const isTop = (_a = position == null ? void 0 : position.startsWith("top")) != null ? _a : false;
8442
8859
  const isLeft = (_b = position == null ? void 0 : position.endsWith("left")) != null ? _b : false;
@@ -8444,7 +8861,7 @@ function FeedbackButton({
8444
8861
  ...isLeft ? { left: "16px" } : { right: "16px" },
8445
8862
  ...isTop ? { top: "16px" } : { bottom: "16px" }
8446
8863
  };
8447
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
8864
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
8448
8865
  "button",
8449
8866
  {
8450
8867
  type: "button",
@@ -8477,7 +8894,7 @@ function FeedbackButton({
8477
8894
  },
8478
8895
  "aria-label": label,
8479
8896
  children: [
8480
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
8897
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
8481
8898
  "svg",
8482
8899
  {
8483
8900
  width: "16",
@@ -8486,7 +8903,7 @@ function FeedbackButton({
8486
8903
  fill: "none",
8487
8904
  style: { flexShrink: 0 },
8488
8905
  "aria-hidden": "true",
8489
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
8906
+ children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
8490
8907
  "path",
8491
8908
  {
8492
8909
  d: "M12 2.5l2.9 5.9 6.5.9-4.7 4.6 1.1 6.5L12 17.4l-5.8 3 1.1-6.5L2.6 9.3l6.5-.9L12 2.5z",