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/README.md +102 -13
- package/dist/index.js +814 -397
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +814 -397
- package/dist/index.mjs.map +1 -1
- package/dist/server.d.mts +102 -1
- package/dist/server.d.ts +102 -1
- package/dist/server.js +85 -0
- package/dist/server.js.map +1 -1
- package/dist/server.mjs +82 -0
- package/dist/server.mjs.map +1 -1
- package/package.json +1 -1
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 =
|
|
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,
|
|
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,
|
|
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,
|
|
1545
|
-
/* @__PURE__ */ (0,
|
|
1546
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
1844
|
-
title && /* @__PURE__ */ (0,
|
|
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,
|
|
1851
|
-
footer && /* @__PURE__ */ (0,
|
|
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,
|
|
1875
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
1940
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2358
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Sparkle, { color: t2.accent }),
|
|
1952
2359
|
"Describe it with AI",
|
|
1953
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
2382
|
+
projectSlot ? /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { style: { marginLeft: "6px" }, children: projectSlot }) : null
|
|
1976
2383
|
] })
|
|
1977
2384
|
] }),
|
|
1978
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2029
|
-
/* @__PURE__ */ (0,
|
|
2030
|
-
/* @__PURE__ */ (0,
|
|
2031
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2094
|
-
/* @__PURE__ */ (0,
|
|
2095
|
-
/* @__PURE__ */ (0,
|
|
2096
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2150
|
-
/* @__PURE__ */ (0,
|
|
2151
|
-
/* @__PURE__ */ (0,
|
|
2152
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2261
|
-
/* @__PURE__ */ (0,
|
|
2262
|
-
/* @__PURE__ */ (0,
|
|
2263
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2321
|
-
/* @__PURE__ */ (0,
|
|
2322
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
2342
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
2387
|
-
/* @__PURE__ */ (0,
|
|
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
|
-
|
|
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,
|
|
2410
|
-
glitchgrabOffer && onReportGlitchgrabProblem && !busy && phase === "chat" && /* @__PURE__ */ (0,
|
|
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,
|
|
2427
|
-
/* @__PURE__ */ (0,
|
|
2428
|
-
/* @__PURE__ */ (0,
|
|
2429
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2530
|
-
/* @__PURE__ */ (0,
|
|
2531
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2618
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2692
|
-
/* @__PURE__ */ (0,
|
|
2693
|
-
/* @__PURE__ */ (0,
|
|
2694
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2797
|
-
(screenshots.length > 0 || files.length > 0 || onAddFiles) && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3066
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
3135
|
-
validationError && /* @__PURE__ */ (0,
|
|
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
|
-
|
|
3151
|
-
|
|
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,
|
|
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,
|
|
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,
|
|
3606
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
3196
3607
|
"button",
|
|
3197
3608
|
{
|
|
3198
3609
|
type: "button",
|
|
3199
|
-
"data-gg-
|
|
3200
|
-
onClick: () =>
|
|
3201
|
-
|
|
3202
|
-
|
|
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
|
-
|
|
3616
|
+
width: "44px",
|
|
3208
3617
|
borderRadius: "10px",
|
|
3209
3618
|
border: `1px solid ${t2.inputBorder}`,
|
|
3210
3619
|
background: "transparent",
|
|
3211
3620
|
color: t2.text,
|
|
3212
|
-
|
|
3213
|
-
|
|
3214
|
-
|
|
3621
|
+
display: "inline-flex",
|
|
3622
|
+
alignItems: "center",
|
|
3623
|
+
justifyContent: "center",
|
|
3215
3624
|
cursor: "pointer"
|
|
3216
3625
|
},
|
|
3217
|
-
children: "
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3465
|
-
/* @__PURE__ */ (0,
|
|
3466
|
-
/* @__PURE__ */ (0,
|
|
3467
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
3478
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
3489
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
3512
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
3559
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
3688
|
-
/* @__PURE__ */ (0,
|
|
3689
|
-
/* @__PURE__ */ (0,
|
|
3690
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
4058
|
-
/* @__PURE__ */ (0,
|
|
4059
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
5378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(import_jsx_runtime5.Fragment, { children: [
|
|
4962
5379
|
isOpen && (0, import_react_dom.createPortal)(
|
|
4963
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5275
|
-
step === 1 && headerSlot ? /* @__PURE__ */ (0,
|
|
5276
|
-
step === 1 && sendFeedback2 && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5351
|
-
/* @__PURE__ */ (0,
|
|
5352
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
5386
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5467
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5580
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5866
|
-
/* @__PURE__ */ (0,
|
|
5867
|
-
/* @__PURE__ */ (0,
|
|
5868
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
5994
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6336
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6412
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6518
|
-
/* @__PURE__ */ (0,
|
|
6519
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
6641
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
6674
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
6707
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
6736
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
6758
|
-
reportGlitchgrabProblem ? /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
7137
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
7182
|
-
/* @__PURE__ */ (0,
|
|
7183
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
7419
|
-
/* @__PURE__ */ (0,
|
|
7420
|
-
heading.description && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
7435
|
-
error && /* @__PURE__ */ (0,
|
|
7436
|
-
step === "slots" && /* @__PURE__ */ (0,
|
|
7437
|
-
whatsappUrl && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
7461
|
-
(slots == null ? void 0 : slots.length) === 0 && !error && /* @__PURE__ */ (0,
|
|
7462
|
-
[...byDay.entries()].map(([day, daySlots]) => /* @__PURE__ */ (0,
|
|
7463
|
-
/* @__PURE__ */ (0,
|
|
7464
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
7487
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
7502
|
-
/* @__PURE__ */ (0,
|
|
7503
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
7514
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
7525
|
-
/* @__PURE__ */ (0,
|
|
7526
|
-
/* @__PURE__ */ (0,
|
|
7527
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
7538
|
-
/* @__PURE__ */ (0,
|
|
7539
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
7991
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { style: { display: "block", fontSize: 11, color: t.muted }, children: [
|
|
7575
7992
|
label,
|
|
7576
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
8691
|
+
headerSlot: projectName ? /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { style: { fontSize: 11, color: "#9aa0a6" }, children: [
|
|
8275
8692
|
"Reporting to ",
|
|
8276
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
8708
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(GlitchgrabProviderInner, { ...resolvedProps });
|
|
8292
8709
|
} catch (e) {
|
|
8293
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
8398
|
-
return /* @__PURE__ */ (0,
|
|
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
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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",
|