@polishd/next 0.2.2 → 0.2.3-dev.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.
Files changed (150) hide show
  1. package/AGENTS.md +2 -1
  2. package/CHANGELOG.md +238 -0
  3. package/README.md +63 -0
  4. package/bin/doctor.mjs +8 -1
  5. package/dist/ai/digest.d.ts.map +1 -1
  6. package/dist/ai/digest.js +3 -2
  7. package/dist/ai/digest.js.map +1 -1
  8. package/dist/ai/github.d.ts +22 -1
  9. package/dist/ai/github.d.ts.map +1 -1
  10. package/dist/ai/github.js +99 -3
  11. package/dist/ai/github.js.map +1 -1
  12. package/dist/ai/issue-pages.d.ts +52 -0
  13. package/dist/ai/issue-pages.d.ts.map +1 -0
  14. package/dist/ai/issue-pages.js +50 -0
  15. package/dist/ai/issue-pages.js.map +1 -0
  16. package/dist/ai/issues.d.ts +13 -1
  17. package/dist/ai/issues.d.ts.map +1 -1
  18. package/dist/ai/issues.js +60 -4
  19. package/dist/ai/issues.js.map +1 -1
  20. package/dist/ai/summary.d.ts.map +1 -1
  21. package/dist/ai/summary.js +7 -0
  22. package/dist/ai/summary.js.map +1 -1
  23. package/dist/ai/types.d.ts +43 -0
  24. package/dist/ai/types.d.ts.map +1 -1
  25. package/dist/client/dom.d.ts +23 -0
  26. package/dist/client/dom.d.ts.map +1 -1
  27. package/dist/client/dom.js +45 -2
  28. package/dist/client/dom.js.map +1 -1
  29. package/dist/client/init.d.ts.map +1 -1
  30. package/dist/client/init.js +54 -14
  31. package/dist/client/init.js.map +1 -1
  32. package/dist/client/monitor.d.ts.map +1 -1
  33. package/dist/client/monitor.js +5 -1
  34. package/dist/client/monitor.js.map +1 -1
  35. package/dist/client/script-provenance.d.ts +21 -0
  36. package/dist/client/script-provenance.d.ts.map +1 -0
  37. package/dist/client/script-provenance.js +127 -0
  38. package/dist/client/script-provenance.js.map +1 -0
  39. package/dist/config.d.ts +10 -0
  40. package/dist/config.d.ts.map +1 -1
  41. package/dist/config.js +1 -0
  42. package/dist/config.js.map +1 -1
  43. package/dist/dashboard/chrome.d.ts +4 -2
  44. package/dist/dashboard/chrome.d.ts.map +1 -1
  45. package/dist/dashboard/chrome.js +15 -5
  46. package/dist/dashboard/chrome.js.map +1 -1
  47. package/dist/dashboard/design-review-card.d.ts.map +1 -1
  48. package/dist/dashboard/design-review-card.js +3 -3
  49. package/dist/dashboard/design-review-card.js.map +1 -1
  50. package/dist/dashboard/design.d.ts +5 -1
  51. package/dist/dashboard/design.d.ts.map +1 -1
  52. package/dist/dashboard/design.js +3 -2
  53. package/dist/dashboard/design.js.map +1 -1
  54. package/dist/dashboard/drawer.d.ts +34 -0
  55. package/dist/dashboard/drawer.d.ts.map +1 -0
  56. package/dist/dashboard/drawer.js +44 -0
  57. package/dist/dashboard/drawer.js.map +1 -0
  58. package/dist/dashboard/index.d.ts +3 -1
  59. package/dist/dashboard/index.d.ts.map +1 -1
  60. package/dist/dashboard/index.js +48 -37
  61. package/dist/dashboard/index.js.map +1 -1
  62. package/dist/dashboard/installs.d.ts.map +1 -1
  63. package/dist/dashboard/installs.js +2 -1
  64. package/dist/dashboard/installs.js.map +1 -1
  65. package/dist/dashboard/issues.d.ts +9 -0
  66. package/dist/dashboard/issues.d.ts.map +1 -0
  67. package/dist/dashboard/issues.js +81 -0
  68. package/dist/dashboard/issues.js.map +1 -0
  69. package/dist/dashboard/journeys.d.ts.map +1 -1
  70. package/dist/dashboard/journeys.js +4 -2
  71. package/dist/dashboard/journeys.js.map +1 -1
  72. package/dist/dashboard/metric-trends.d.ts +6 -0
  73. package/dist/dashboard/metric-trends.d.ts.map +1 -0
  74. package/dist/dashboard/metric-trends.js +236 -0
  75. package/dist/dashboard/metric-trends.js.map +1 -0
  76. package/dist/dashboard/pages.d.ts.map +1 -1
  77. package/dist/dashboard/pages.js +8 -46
  78. package/dist/dashboard/pages.js.map +1 -1
  79. package/dist/dashboard/settings.d.ts.map +1 -1
  80. package/dist/dashboard/settings.js +6 -2
  81. package/dist/dashboard/settings.js.map +1 -1
  82. package/dist/dashboard/show-more.d.ts.map +1 -1
  83. package/dist/dashboard/show-more.js +1 -1
  84. package/dist/dashboard/show-more.js.map +1 -1
  85. package/dist/dashboard/snapshot-actions.d.ts +16 -0
  86. package/dist/dashboard/snapshot-actions.d.ts.map +1 -0
  87. package/dist/dashboard/snapshot-actions.js +79 -0
  88. package/dist/dashboard/snapshot-actions.js.map +1 -0
  89. package/dist/dashboard/snapshots.d.ts +13 -0
  90. package/dist/dashboard/snapshots.d.ts.map +1 -0
  91. package/dist/dashboard/snapshots.js +88 -0
  92. package/dist/dashboard/snapshots.js.map +1 -0
  93. package/dist/dashboard/summary.d.ts.map +1 -1
  94. package/dist/dashboard/summary.js +11 -6
  95. package/dist/dashboard/summary.js.map +1 -1
  96. package/dist/dashboard/telemetry.d.ts +3 -1
  97. package/dist/dashboard/telemetry.d.ts.map +1 -1
  98. package/dist/dashboard/telemetry.js +55 -12
  99. package/dist/dashboard/telemetry.js.map +1 -1
  100. package/dist/dashboard/ui.d.ts +33 -6
  101. package/dist/dashboard/ui.d.ts.map +1 -1
  102. package/dist/dashboard/ui.js +44 -6
  103. package/dist/dashboard/ui.js.map +1 -1
  104. package/dist/dashboard.css +193 -2
  105. package/dist/server/ingest.d.ts +2 -5
  106. package/dist/server/ingest.d.ts.map +1 -1
  107. package/dist/server/ingest.js +47 -10
  108. package/dist/server/ingest.js.map +1 -1
  109. package/dist/server/queries.d.ts +64 -11
  110. package/dist/server/queries.d.ts.map +1 -1
  111. package/dist/server/queries.js +207 -37
  112. package/dist/server/queries.js.map +1 -1
  113. package/dist/server/reclassify.d.ts +3 -0
  114. package/dist/server/reclassify.d.ts.map +1 -0
  115. package/dist/server/reclassify.js +65 -0
  116. package/dist/server/reclassify.js.map +1 -0
  117. package/dist/server/snapshots.d.ts +81 -0
  118. package/dist/server/snapshots.d.ts.map +1 -0
  119. package/dist/server/snapshots.js +371 -0
  120. package/dist/server/snapshots.js.map +1 -0
  121. package/dist/server/store.d.ts +5 -0
  122. package/dist/server/store.d.ts.map +1 -1
  123. package/dist/server/store.js +17 -0
  124. package/dist/server/store.js.map +1 -1
  125. package/dist/server/telemetry.d.ts +13 -0
  126. package/dist/server/telemetry.d.ts.map +1 -1
  127. package/dist/server/telemetry.js +28 -7
  128. package/dist/server/telemetry.js.map +1 -1
  129. package/dist/shared/capture-status.d.ts +99 -0
  130. package/dist/shared/capture-status.d.ts.map +1 -0
  131. package/dist/shared/capture-status.js +133 -0
  132. package/dist/shared/capture-status.js.map +1 -0
  133. package/dist/shared/error-noise.d.ts +39 -0
  134. package/dist/shared/error-noise.d.ts.map +1 -0
  135. package/dist/shared/error-noise.js +101 -0
  136. package/dist/shared/error-noise.js.map +1 -0
  137. package/dist/shared/metric-buckets.d.ts +31 -0
  138. package/dist/shared/metric-buckets.d.ts.map +1 -0
  139. package/dist/shared/metric-buckets.js +49 -0
  140. package/dist/shared/metric-buckets.js.map +1 -0
  141. package/dist/shared/text-signals.d.ts +56 -0
  142. package/dist/shared/text-signals.d.ts.map +1 -0
  143. package/dist/shared/text-signals.js +80 -0
  144. package/dist/shared/text-signals.js.map +1 -0
  145. package/dist/shared/types.d.ts +1 -1
  146. package/dist/shared/types.d.ts.map +1 -1
  147. package/dist/shared/types.js +4 -0
  148. package/dist/shared/types.js.map +1 -1
  149. package/docs/SETUP.md +25 -0
  150. package/package.json +9 -2
@@ -4,20 +4,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  * Polishd — "Top pages" table + sessions-over-time drawer (client).
5
5
  *
6
6
  * Lists the most-visited pages; clicking a row opens a bottom drawer with a
7
- * bar chart of distinct sessions per day for that page. A bottom drawer (rather
8
- * than a side panel) suits a wide time-series chart and keeps the table in view
9
- * above it.
7
+ * chart of distinct sessions per day for that page. The drawer shell itself
8
+ * lives in ./drawer — the Overview tiles open into the same one.
10
9
  */
11
- import { useEffect, useState } from "react";
12
- const border = "border-[#2e2e2e]";
13
- const card = `border ${border} rounded-lg bg-[#0a0a0a]`;
14
- const divider = `border-t ${border}`;
15
- const labelCls = "text-[11px] font-medium uppercase tracking-[0.08em] text-[#666]";
16
- // ── Tooltip + header cell (compact copies of the dashboard's, for the client) ──
17
- function InfoTip({ text, anchor = "right", below = false, }) {
18
- const vClass = below ? "top-full mt-2" : "bottom-full mb-2";
19
- return (_jsxs("span", { className: "group/tip relative ml-1 inline-flex translate-y-px cursor-help align-middle", children: [_jsx("span", { className: "flex h-3.5 w-3.5 items-center justify-center rounded-full border border-[#444] text-[9px] font-bold leading-none text-[#666]", children: "i" }), _jsx("span", { role: "tooltip", className: `pointer-events-none absolute ${vClass} ${anchor === "left" ? "left-0" : "right-0"} z-20 w-64 max-w-[calc(100vw-2rem)] rounded-lg border border-[#2e2e2e] bg-[#111] px-3 py-2 text-left text-[12px] font-normal normal-case leading-snug tracking-normal text-[#aaa] opacity-0 shadow-2xl transition-opacity duration-150 group-hover/tip:opacity-100`, children: text })] }));
20
- }
10
+ import { useState } from "react";
11
+ import BottomDrawer, { DrawerHeader } from "./drawer";
12
+ import { InfoTip, border, card, divider, labelCls, yScale } from "./ui";
21
13
  function Th({ children, tip, align = "right", }) {
22
14
  return (_jsx("th", { className: `whitespace-nowrap py-2.5 ${align === "left" ? "pl-5 pr-6 text-left" : "px-4 text-right"} ${labelCls}`, children: _jsxs("span", { className: "inline-flex items-center gap-0.5", children: [children, _jsx(InfoTip, { text: tip, anchor: align === "left" ? "left" : "right", below: true })] }) }));
23
15
  }
@@ -31,20 +23,6 @@ function PageMeta({ page }) {
31
23
  return (_jsxs("div", { className: `grid grid-cols-2 gap-px overflow-hidden rounded-lg border ${border} bg-[#2e2e2e] sm:grid-cols-4`, children: [_jsx(MetaCell, { label: "Sessions", value: String(page.sessions) }), _jsx(MetaCell, { label: "Page views", value: String(page.pageViews) }), _jsx(MetaCell, { label: "Views / session", value: viewsPerSession.toFixed(1) }), _jsx(MetaCell, { label: "Peak / day", value: String(peakDay) }), _jsx(MetaCell, { label: "Avg scroll", value: page.avgScrollDepth === null ? "—" : `${page.avgScrollDepth}%` }), _jsx(MetaCell, { label: "Rage clicks", value: String(page.rageClicks), tone: page.rageClicks > 0 ? "text-red-400" : "text-[#555]" }), _jsx(MetaCell, { label: "Dead clicks", value: String(page.deadClicks), tone: page.deadClicks > 0 ? "text-[#f5a623]" : "text-[#555]" }), _jsx(MetaCell, { label: "JS errors", value: String(page.jsErrors), tone: page.jsErrors > 0 ? "text-red-400" : "text-[#555]" })] }));
32
24
  }
33
25
  // ── Sessions-over-time line chart ─────────────────────────────────────────────
34
- /** A nice 0-based integer tick scale for the y-axis. */
35
- function yScale(peak) {
36
- const target = 4; // aim for ~4 gridlines
37
- if (peak <= target) {
38
- const top = Math.max(peak, 1);
39
- return { top, ticks: Array.from({ length: top + 1 }, (_, i) => i) };
40
- }
41
- const step = Math.ceil(peak / target);
42
- const top = step * Math.ceil(peak / step);
43
- const ticks = [];
44
- for (let v = 0; v <= top; v += step)
45
- ticks.push(v);
46
- return { top, ticks };
47
- }
48
26
  function SessionsChart({ trend }) {
49
27
  if (trend.length === 0) {
50
28
  return _jsx("p", { className: "py-8 text-center text-[13px] text-[#555]", children: "No session data yet." });
@@ -75,30 +53,14 @@ function SessionsChart({ trend }) {
75
53
  }
76
54
  // ── Bottom drawer ─────────────────────────────────────────────────────────────
77
55
  function PageDrawer({ page, onClose }) {
78
- useEffect(() => {
79
- if (!page)
80
- return;
81
- const onKey = (e) => {
82
- if (e.key === "Escape")
83
- onClose();
84
- };
85
- document.addEventListener("keydown", onKey);
86
- const prev = document.body.style.overflow;
87
- document.body.style.overflow = "hidden";
88
- return () => {
89
- document.removeEventListener("keydown", onKey);
90
- document.body.style.overflow = prev;
91
- };
92
- }, [page, onClose]);
93
- const open = page !== null;
94
- return (_jsxs("div", { className: `fixed inset-0 z-50 ${open ? "" : "pointer-events-none"}`, "aria-hidden": !open, children: [_jsx("div", { onClick: onClose, className: `absolute inset-0 bg-black/60 transition-opacity duration-200 ${open ? "opacity-100" : "opacity-0"}` }), _jsx("div", { className: `absolute inset-x-0 bottom-0 transition-transform duration-200 ease-out ${open ? "translate-y-0" : "translate-y-full"}`, children: _jsx("div", { role: "dialog", "aria-modal": "true", "aria-label": "Page sessions over time", className: `mx-auto max-h-[80vh] max-w-5xl overflow-y-auto rounded-t-xl border ${border} bg-[#0a0a0a] px-4 pb-6 pt-4 shadow-2xl sm:px-6 sm:pb-8 sm:pt-5`, children: page && (_jsxs(_Fragment, { children: [_jsx("div", { className: "mx-auto mb-4 h-1 w-10 rounded-full bg-[#2e2e2e]" }), _jsxs("div", { className: "mb-6 flex items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsx("div", { className: labelCls, children: "Page" }), _jsx("h3", { className: "mt-1 font-mono text-[16px] text-white", children: page.path })] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-md border border-[#2e2e2e] text-[#888] transition-colors hover:bg-[#111] hover:text-white", children: "\u2715" })] }), _jsx(PageMeta, { page: page }), _jsx("div", { className: `mb-3 mt-6 ${labelCls}`, children: "Sessions over time" }), _jsx(SessionsChart, { trend: page.trend })] })) }) })] }));
56
+ return (_jsx(BottomDrawer, { open: page !== null, onClose: onClose, label: "Page sessions over time", children: page && (_jsxs(_Fragment, { children: [_jsx(DrawerHeader, { eyebrow: "Page", title: _jsx("h3", { className: "font-mono text-[16px] text-white", children: page.path }), onClose: onClose }), _jsx(PageMeta, { page: page }), _jsx("div", { className: `mb-3 mt-6 ${labelCls}`, children: "Sessions over time" }), _jsx(SessionsChart, { trend: page.trend })] })) }));
95
57
  }
96
58
  // ── Table ─────────────────────────────────────────────────────────────────────
97
59
  function PageRow({ page, onOpen }) {
98
- return (_jsxs("tr", { onClick: onOpen, className: `group cursor-pointer ${divider} transition-colors hover:bg-[#111]`, children: [_jsx("td", { className: "py-2.5 pl-5 pr-6", children: _jsx("span", { className: "font-mono text-[13px] text-[#ccc] group-hover:text-white", children: page.path }) }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] font-semibold tabular-nums text-white", children: page.sessions }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.pageViews }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.rageClicks }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.deadClicks }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.jsErrors }), _jsx("td", { className: "py-2.5 pl-4 pr-5 text-right text-[13px] tabular-nums text-[#555]", children: _jsx("span", { className: "group-hover:text-[#999]", children: "\u203A" }) })] }));
60
+ return (_jsxs("tr", { "data-component": "page-open", onClick: onOpen, className: `group cursor-pointer ${divider} transition-colors hover:bg-[#111]`, children: [_jsx("td", { className: "py-2.5 pl-5 pr-6", children: _jsx("span", { className: "font-mono text-[13px] text-[#ccc] group-hover:text-white", children: page.path }) }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] font-semibold tabular-nums text-white", children: page.sessions }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.pageViews }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.rageClicks }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.deadClicks }), _jsx("td", { className: "py-2.5 px-4 text-right text-[13px] tabular-nums text-[#888]", children: page.jsErrors }), _jsx("td", { className: "py-2.5 pl-4 pr-5 text-right text-[13px] tabular-nums text-[#555]", children: _jsx("span", { className: "group-hover:text-[#999]", children: "\u203A" }) })] }));
99
61
  }
100
62
  export default function TopPagesTable({ pages }) {
101
63
  const [selected, setSelected] = useState(null);
102
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: card, children: pages.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No data yet \u2014 browse the site then refresh." })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[520px]", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "The route. Click a row to see its sessions over time.", children: "Path" }), _jsx(Th, { tip: "Distinct sessions that viewed this page. Pages are ranked by this.", children: "Sessions" }), _jsx(Th, { tip: "page_view events \u2014 loads plus soft navigations to this route.", children: "Views" }), _jsx(Th, { tip: "Rage clicks (3+ in 500ms on one element) on this page.", children: "Rage" }), _jsx(Th, { tip: "Dead clicks (on non-interactive elements) on this page.", children: "Dead" }), _jsx(Th, { tip: "JS errors thrown on this page.", children: "Errors" }), _jsx(Th, { tip: "Open the sessions-over-time chart.", children: "" })] }) }), _jsx("tbody", { children: pages.map((p) => (_jsx(PageRow, { page: p, onOpen: () => setSelected(p) }, p.path))) })] }) })) }), _jsx(PageDrawer, { page: selected, onClose: () => setSelected(null) })] }));
64
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: card, children: pages.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "No data yet \u2014 browse the site then refresh." })) : (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full min-w-[520px]", children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx(Th, { align: "left", tip: "The route. Click a row to see its sessions over time.", children: "Path" }), _jsx(Th, { tip: "Distinct sessions that viewed this page. Pages are ranked by this.", children: "Sessions" }), _jsx(Th, { tip: "page_view events \u2014 loads plus soft navigations to this route.", children: "Views" }), _jsx(Th, { tip: "Rage clicks (3+ in 500ms on one element) on this page.", children: "Rage" }), _jsx(Th, { tip: "Dead clicks (on non-interactive, non-text elements) on this page.", children: "Dead" }), _jsx(Th, { tip: "JS errors thrown on this page.", children: "Errors" }), _jsx(Th, { tip: "Open the sessions-over-time chart.", children: "" })] }) }), _jsx("tbody", { children: pages.map((p) => (_jsx(PageRow, { page: p, onOpen: () => setSelected(p) }, p.path))) })] }) })) }), _jsx(PageDrawer, { page: selected, onClose: () => setSelected(null) })] }));
103
65
  }
104
66
  //# sourceMappingURL=pages.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/dashboard/pages.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/dashboard/pages.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/dashboard/settings.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,SAAS,EAAE;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,EA6BA,CAAC;AAuIF,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,uBAAuB,CAAC;IACzC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,6EAA6E;IAC7E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,GAChB,EAAE,iBAAiB,+BA+EnB"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../../src/dashboard/settings.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EACV,iBAAiB,EACjB,uBAAuB,EAEvB,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAWrB,eAAO,MAAM,SAAS,EAAE;IACtB,KAAK,EAAE,iBAAiB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,EA6BA,CAAC;AAuIF,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,uBAAuB,CAAC;IACzC,cAAc,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC7C,6EAA6E;IAC7E,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,qEAAqE;IACrE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,GAChB,EAAE,iBAAiB,+BAkFnB"}
@@ -122,7 +122,11 @@ export default function SettingsView({ initialSettings, initialProfile, initialG
122
122
  // The wizard is for a genuinely fresh install — no key stored and none
123
123
  // supplied by the environment. Once step 1 saves a key it never returns.
124
124
  const [onboarding, setOnboarding] = useState(!initialSettings.hasApiKey && !initialSettings.fromEnv);
125
- return (_jsxs("main", { className: "text-white", children: [_jsxs("div", { className: `mb-8 flex items-start justify-between gap-3 border-b ${border} pb-6`, children: [_jsxs("div", { children: [_jsx("h1", { className: "text-[22px] font-semibold tracking-tight text-white", children: "Settings" }), _jsx("p", { className: "mt-1 max-w-xl text-[13px] leading-relaxed text-[#666]", children: "The model Polishd calls, what it knows about your site, and where it files what it finds. One model serves both the analytics summary and the design review." })] }), _jsx("div", { className: `shrink-0 whitespace-nowrap rounded-full px-3 py-1 text-[11px] font-medium ${settings.hasApiKey ? "bg-emerald-950 text-emerald-400" : "bg-[#1a1a1a] text-[#666]"}`, children: settings.hasApiKey ? `● ${settings.provider}` : "○ no model" })] }), error && (_jsx("div", { className: "mb-6 rounded-lg border border-red-900/50 bg-red-950/30 px-4 py-3 text-[13px] text-red-400", children: error })), onboarding ? (_jsxs("section", { className: `${card} overflow-hidden`, children: [_jsx("div", { className: `border-b ${border} px-4 py-3 sm:px-5`, children: _jsx("span", { className: labelCls, children: "First-time setup" }) }), _jsx(OnboardingWizard, { settings: settings, sourceAvailable: sourceAvailable, onSettings: setSettings, onProfile: (p) => {
125
+ return (
126
+ // Coarse tag for polishd's own dashboard telemetry: any settings click
127
+ // without a finer data-component groups under "settings" on the
128
+ // collecting side. Inert for host apps.
129
+ _jsxs("main", { "data-component": "settings", className: "text-white", children: [_jsxs("div", { className: `mb-8 flex items-start justify-between gap-3 border-b ${border} pb-6`, children: [_jsxs("div", { children: [_jsx("h1", { className: "text-[22px] font-semibold tracking-tight text-white", children: "Settings" }), _jsx("p", { className: "mt-1 max-w-xl text-[13px] leading-relaxed text-[#666]", children: "The model Polishd calls, what it knows about your site, and where it files what it finds. One model serves both the analytics summary and the design review." })] }), _jsx("div", { className: `shrink-0 whitespace-nowrap rounded-full px-3 py-1 text-[11px] font-medium ${settings.hasApiKey ? "bg-emerald-950 text-emerald-400" : "bg-[#1a1a1a] text-[#666]"}`, children: settings.hasApiKey ? `● ${settings.provider}` : "○ no model" })] }), error && (_jsx("div", { className: "mb-6 rounded-lg border border-red-900/50 bg-red-950/30 px-4 py-3 text-[13px] text-red-400", children: error })), onboarding ? (_jsxs("section", { className: `${card} overflow-hidden`, children: [_jsx("div", { className: `border-b ${border} px-4 py-3 sm:px-5`, children: _jsx("span", { className: labelCls, children: "First-time setup" }) }), _jsx(OnboardingWizard, { settings: settings, sourceAvailable: sourceAvailable, onSettings: setSettings, onProfile: (p) => {
126
130
  setProfile(p);
127
131
  setGaps([]);
128
132
  }, onError: setError, onSkip: () => setOnboarding(false), onFinished: () => {
@@ -230,7 +234,7 @@ function OnboardingWizard({ settings, sourceAvailable, onSettings, onProfile, on
230
234
  onError(res.message);
231
235
  onFinished();
232
236
  });
233
- return (_jsxs("div", { className: "bg-[#080808]", children: [error && (_jsx("div", { className: "mx-4 mt-4 rounded-md border border-red-900/50 bg-red-950/30 px-3 py-2 text-[12px] text-red-400 sm:mx-5", children: error })), step === 0 && (_jsxs(StepShell, { step: 0, title: "Connect a model", intro: "Bring your own key \u2014 pick the provider you already pay for. The key is stored server-side in your database and never sent back to the browser.", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Provider" }), _jsx("select", { value: provider, onChange: (e) => setProvider(e.target.value), className: `${inputCls} mt-1.5`, children: PROVIDERS.map((p) => (_jsx("option", { value: p.value, children: p.label }, p.value))) })] }), _jsx(ModelField, { provider: provider, model: model, onModel: setModel, apiKey: apiKey, baseUrl: baseUrl, hasStoredKey: settings.hasApiKey && settings.provider === provider }), _jsxs("label", { className: "block sm:col-span-2", children: [_jsx("span", { className: labelCls, children: "API key" }), _jsx("input", { type: "password", value: apiKey, onChange: (e) => setApiKey(e.target.value), placeholder: settings.hasApiKey ? "•••••••• (stored — leave blank to keep)" : "Paste your key", autoComplete: "off", className: `${inputCls} mt-1.5` }), prov && (_jsxs("span", { className: "mt-1 block text-[11px] text-[#555]", children: ["Get a key from", " ", _jsx("a", { href: prov.keyUrl, target: "_blank", rel: "noreferrer noopener", className: "text-[#888] underline decoration-[#444] underline-offset-2 hover:text-white", children: prov.keyHost }), "."] }))] }), provider === "openai-compatible" && (_jsxs("label", { className: "block sm:col-span-2", children: [_jsx("span", { className: labelCls, children: "Base URL" }), _jsx("input", { value: baseUrl, onChange: (e) => setBaseUrl(e.target.value), placeholder: "https://openrouter.ai/api/v1", className: `${inputCls} mt-1.5 font-mono` })] }))] }), _jsxs("div", { className: "mt-4 flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: saveModel, disabled: pending || (!apiKey && !settings.hasApiKey), className: primaryBtn, children: pending ? "Saving…" : "Continue" }), _jsx("button", { type: "button", onClick: onSkip, className: "text-[11px] text-[#555] hover:text-[#888]", children: "Skip setup" })] })] })), step === 1 && (_jsxs(StepShell, { step: 1, title: "Tell it about your site", intro: "Optional, but the story gets sharper when the model knows what the site is for and who it serves. All three feed the codebase profile in the next step.", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "What is this site?" }), _jsx("textarea", { value: context, onChange: (e) => setContext(e.target.value), rows: 2, placeholder: "e.g. A personal notes site. Visitors read articles and browse by tag. The /admin editor is owner-only.", className: `${inputCls} mt-1.5 resize-y` })] }), _jsxs("div", { className: "mt-4 grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Target audience" }), _jsx("input", { value: audience, onChange: (e) => setAudience(e.target.value), placeholder: "e.g. Recruiters and fellow designers", className: `${inputCls} mt-1.5` })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Ideology / values" }), _jsx("input", { value: ideology, onChange: (e) => setIdeology(e.target.value), placeholder: "e.g. Depth over clicks \u2014 long reads matter most", className: `${inputCls} mt-1.5` })] })] }), _jsxs("div", { className: "mt-4 flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: saveSite, disabled: pending, className: primaryBtn, children: pending ? "Saving…" : "Continue" }), _jsx("button", { type: "button", onClick: next, className: ghostBtn, children: "Skip" })] })] })), step === 2 && (_jsxs(StepShell, { step: 2, title: "Scan your codebase", intro: "A one-time scan teaches the model your pages and components, so every future summary understands the site without re-reading code. It's cached in your database \u2014 the codebase is only touched again if new components appear or you re-scan.", children: [scanned ? (_jsxs("div", { className: "rounded-md border border-emerald-900/50 bg-emerald-950/20 px-3 py-2.5 text-[12px] text-emerald-400", children: ["Profiled ", scanned.sourceFiles, " files \u00B7 ", scanned.coveredIdentifiers.length, " components", scanned.truncated ? " (large app — clipped to budget)" : "", ". The model now knows your site's structure."] })) : (_jsxs(_Fragment, { children: [!sourceAvailable && (_jsx("div", { className: "mb-3 rounded-md border border-amber-900/50 bg-amber-950/20 px-3 py-2 text-[12px] text-amber-400", children: "No source tree found on disk here \u2014 this step needs to run where the code lives (local dev or CI). You can skip it now and scan later." })), _jsxs("label", { className: "block max-w-md", children: [_jsx("span", { className: labelCls, children: "Source folders" }), _jsx("span", { className: "ml-1 text-[11px] text-[#555]", children: "\u2014 optional; defaults to src / app / components / pages / lib." }), _jsx("input", { value: sourceDirs, onChange: (e) => setSourceDirs(e.target.value), placeholder: "e.g. src, content", className: `${inputCls} mt-1.5 font-mono` })] })] })), _jsx("div", { className: "mt-4 flex items-center gap-3", children: scanned ? (_jsx("button", { type: "button", onClick: next, className: primaryBtn, children: "Continue" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: scan, disabled: pending || !sourceAvailable, className: primaryBtn, children: pending ? "Scanning…" : "Scan codebase" }), _jsx("button", { type: "button", onClick: next, className: ghostBtn, children: "Skip for now" })] })) })] })), step === 3 && (_jsxs(StepShell, { step: 3, title: "Connect your GitHub repository", intro: "Optional. With the repo connected, problems the model finds are verified against your actual source code \u2014 real ones become GitHub issues with the technical analysis and fix suggestions, false alarms are dropped. A fine-grained token scoped to just this repo is all it needs.", children: [githubStatus ? (_jsxs("div", { className: "rounded-md border border-emerald-900/50 bg-emerald-950/20 px-3 py-2.5 text-[12px] text-emerald-400", children: ["Connected to ", githubStatus.repo, " \u00B7 default branch", " ", _jsx("code", { className: "font-mono", children: githubStatus.defaultBranch }), !githubStatus.issuesEnabled && " · issues are disabled on this repo", !githubStatus.canPush && " · token can't push (branches/PRs unavailable)"] })) : (_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Repository" }), _jsx("input", { value: githubRepo, onChange: (e) => setGithubRepo(e.target.value), placeholder: "owner/repo", className: `${inputCls} mt-1.5 font-mono` })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Access token" }), _jsx("input", { type: "password", value: githubToken, onChange: (e) => setGithubToken(e.target.value), placeholder: settings.hasGithubToken
237
+ return (_jsxs("div", { className: "bg-[#080808]", children: [error && (_jsx("div", { className: "mx-4 mt-4 rounded-md border border-red-900/50 bg-red-950/30 px-3 py-2 text-[12px] text-red-400 sm:mx-5", children: error })), step === 0 && (_jsxs(StepShell, { step: 0, title: "Connect a model", intro: "Bring your own key \u2014 pick the provider you already pay for. The key is stored server-side in your database and never sent back to the browser.", children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Provider" }), _jsx("select", { value: provider, onChange: (e) => setProvider(e.target.value), className: `${inputCls} mt-1.5`, children: PROVIDERS.map((p) => (_jsx("option", { value: p.value, children: p.label }, p.value))) })] }), _jsx(ModelField, { provider: provider, model: model, onModel: setModel, apiKey: apiKey, baseUrl: baseUrl, hasStoredKey: settings.hasApiKey && settings.provider === provider }), _jsxs("label", { className: "block sm:col-span-2", children: [_jsx("span", { className: labelCls, children: "API key" }), _jsx("input", { type: "password", value: apiKey, onChange: (e) => setApiKey(e.target.value), placeholder: settings.hasApiKey ? "•••••••• (stored — leave blank to keep)" : "Paste your key", autoComplete: "off", className: `${inputCls} mt-1.5` }), prov && (_jsxs("span", { className: "mt-1 block text-[11px] text-[#555]", children: ["Get a key from", " ", _jsx("a", { href: prov.keyUrl, target: "_blank", rel: "noreferrer noopener", className: "text-[#888] underline decoration-[#444] underline-offset-2 hover:text-white", children: prov.keyHost }), "."] }))] }), provider === "openai-compatible" && (_jsxs("label", { className: "block sm:col-span-2", children: [_jsx("span", { className: labelCls, children: "Base URL" }), _jsx("input", { value: baseUrl, onChange: (e) => setBaseUrl(e.target.value), placeholder: "https://openrouter.ai/api/v1", className: `${inputCls} mt-1.5 font-mono` })] }))] }), _jsxs("div", { className: "mt-4 flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: saveModel, disabled: pending || (!apiKey && !settings.hasApiKey), className: primaryBtn, children: pending ? "Saving…" : "Continue" }), _jsx("button", { type: "button", onClick: onSkip, className: "text-[11px] text-[#555] hover:text-[#888]", children: "Skip setup" })] })] })), step === 1 && (_jsxs(StepShell, { step: 1, title: "Tell it about your site", intro: "Optional, but the story gets sharper when the model knows what the site is for and who it serves. All three feed the codebase profile in the next step.", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "What is this site?" }), _jsx("textarea", { value: context, onChange: (e) => setContext(e.target.value), rows: 2, placeholder: "e.g. A personal notes site. Visitors read articles and browse by tag. The /admin editor is owner-only.", className: `${inputCls} mt-1.5 resize-y` })] }), _jsxs("div", { className: "mt-4 grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Target audience" }), _jsx("input", { value: audience, onChange: (e) => setAudience(e.target.value), placeholder: "e.g. Recruiters and fellow designers", className: `${inputCls} mt-1.5` })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Ideology / values" }), _jsx("input", { value: ideology, onChange: (e) => setIdeology(e.target.value), placeholder: "e.g. Depth over clicks \u2014 long reads matter most", className: `${inputCls} mt-1.5` })] })] }), _jsxs("div", { className: "mt-4 flex items-center gap-3", children: [_jsx("button", { type: "button", onClick: saveSite, disabled: pending, className: primaryBtn, children: pending ? "Saving…" : "Continue" }), _jsx("button", { type: "button", onClick: next, className: ghostBtn, children: "Skip" })] })] })), step === 2 && (_jsxs(StepShell, { step: 2, title: "Scan your codebase", intro: "A one-time scan teaches the model your pages and components, so every future summary understands the site without re-reading code. It's cached in your database \u2014 the codebase is only touched again if new components appear or you re-scan.", children: [scanned ? (_jsxs("div", { className: "rounded-md border border-emerald-900/50 bg-emerald-950/20 px-3 py-2.5 text-[12px] text-emerald-400", children: ["Profiled ", scanned.sourceFiles, " files \u00B7 ", scanned.coveredIdentifiers.length, " components", scanned.truncated ? " (large app — clipped to budget)" : "", ". The model now knows your site's structure."] })) : (_jsxs(_Fragment, { children: [!sourceAvailable && (_jsx("div", { className: "mb-3 rounded-md border border-amber-900/50 bg-amber-950/20 px-3 py-2 text-[12px] text-amber-400", children: "No source tree found on disk here \u2014 this step needs to run where the code lives (local dev or CI). You can skip it now and scan later." })), _jsxs("label", { className: "block max-w-md", children: [_jsx("span", { className: labelCls, children: "Source folders" }), _jsx("span", { className: "ml-1 text-[11px] text-[#555]", children: "\u2014 optional; defaults to src / app / components / pages / lib." }), _jsx("input", { value: sourceDirs, onChange: (e) => setSourceDirs(e.target.value), placeholder: "e.g. src, content", className: `${inputCls} mt-1.5 font-mono` })] })] })), _jsx("div", { className: "mt-4 flex items-center gap-3", children: scanned ? (_jsx("button", { type: "button", onClick: next, className: primaryBtn, children: "Continue" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-component": "settings-scan-codebase", onClick: scan, disabled: pending || !sourceAvailable, className: primaryBtn, children: pending ? "Scanning…" : "Scan codebase" }), _jsx("button", { type: "button", onClick: next, className: ghostBtn, children: "Skip for now" })] })) })] })), step === 3 && (_jsxs(StepShell, { step: 3, title: "Connect your GitHub repository", intro: "Optional. With the repo connected, problems the model finds are verified against your actual source code \u2014 real ones become GitHub issues with the technical analysis and fix suggestions, false alarms are dropped. A fine-grained token scoped to just this repo is all it needs.", children: [githubStatus ? (_jsxs("div", { className: "rounded-md border border-emerald-900/50 bg-emerald-950/20 px-3 py-2.5 text-[12px] text-emerald-400", children: ["Connected to ", githubStatus.repo, " \u00B7 default branch", " ", _jsx("code", { className: "font-mono", children: githubStatus.defaultBranch }), !githubStatus.issuesEnabled && " · issues are disabled on this repo", !githubStatus.canPush && " · token can't push (branches/PRs unavailable)"] })) : (_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Repository" }), _jsx("input", { value: githubRepo, onChange: (e) => setGithubRepo(e.target.value), placeholder: "owner/repo", className: `${inputCls} mt-1.5 font-mono` })] }), _jsxs("label", { className: "block", children: [_jsx("span", { className: labelCls, children: "Access token" }), _jsx("input", { type: "password", value: githubToken, onChange: (e) => setGithubToken(e.target.value), placeholder: settings.hasGithubToken
234
238
  ? "•••••••• (stored — leave blank to keep)"
235
239
  : "github_pat_…", autoComplete: "off", className: `${inputCls} mt-1.5` }), _jsxs("span", { className: "mt-1 block text-[11px] text-[#555]", children: ["Create a", " ", _jsx("a", { href: "https://github.com/settings/personal-access-tokens/new", target: "_blank", rel: "noreferrer noopener", className: "text-[#888] underline decoration-[#444] underline-offset-2 hover:text-white", children: "fine-grained token" }), " ", "for this repo with Contents (read) and Issues & Pull requests (write). Stored server-side; never sent to the browser."] })] })] })), _jsxs("label", { className: "mt-4 flex max-w-xl cursor-pointer items-start gap-2.5", children: [_jsx("input", { type: "checkbox", checked: autoIssues, onChange: (e) => setAutoIssues(e.target.checked), className: "mt-0.5 h-3.5 w-3.5 shrink-0 cursor-pointer accent-white" }), _jsxs("span", { children: [_jsx("span", { className: "block text-[13px] font-medium text-white", children: "Allow creating issues automatically" }), _jsx("span", { className: "mt-0.5 block text-[11px] leading-snug text-[#666]", children: "Every new problem a summary finds is verified against the source and \u2014 when it holds up \u2014 filed as a GitHub issue on its own, with technical details and fix suggestions. The same problem is never filed twice." })] })] }), _jsx("div", { className: "mt-4 flex items-center gap-3", children: githubStatus ? (_jsx("button", { type: "button", onClick: finishGithub, disabled: pending, className: primaryBtn, children: pending ? "Saving…" : "Continue" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: connectGithub, disabled: pending || !githubRepo.trim() || (!githubToken && !settings.hasGithubToken), className: primaryBtn, children: pending ? "Connecting…" : "Connect GitHub" }), _jsx("button", { type: "button", onClick: next, className: ghostBtn, children: "Skip for now" })] })) })] })), step === 4 && (_jsxs(StepShell, { step: 4, title: "How often should the story refresh?", intro: "With the profile cached, a refresh only spends tokens when there's new behavior to narrate \u2014 unchanged data is always free. Auto-refresh runs in the background when you open the dashboard past the cadence.", children: [_jsx("div", { className: "grid gap-2 sm:grid-cols-3", children: CADENCES.map((c) => (_jsxs("button", { type: "button", onClick: () => setCadence(c.value), className: `rounded-md border px-3 py-2.5 text-left transition-colors ${cadence === c.value
236
240
  ? "border-white bg-[#141414]"
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/dashboard/settings.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/dashboard/settings.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAQvB,OAAO,EACL,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,OAAO,GACR,MAAM,MAAM,CAAC;AAEd,MAAM,CAAC,MAAM,SAAS,GAMhB;IACJ;QACE,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,iBAAiB;QAC5B,MAAM,EAAE,6CAA6C;QACrD,OAAO,EAAE,uBAAuB;KACjC;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,SAAS,EAAE,aAAa;QACxB,MAAM,EAAE,sCAAsC;QAC9C,OAAO,EAAE,qBAAqB;KAC/B;IACD;QACE,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,mBAAmB;QAC1B,SAAS,EAAE,UAAU;QACrB,MAAM,EAAE,4BAA4B;QACpC,OAAO,EAAE,oCAAoC;KAC9C;IACD;QACE,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,wCAAwC;QAChD,OAAO,EAAE,qBAAqB;KAC/B;CACF,CAAC;AAEF,MAAM,QAAQ,GAAoE;IAChF,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,6BAA6B,EAAE;IACzE;QACE,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,mEAAmE;KAC1E;IACD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,gDAAgD,EAAE;CAC7F,CAAC;AAEF,gFAAgF;AAChF;;;;;;;GAOG;AACH,SAAS,UAAU,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,EACP,YAAY,GAUb;IACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAEzD,wEAAwE;IACxE,8DAA8D;IAC9D,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,IAAI,CAAC,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,YAAY,GAAG,QAAQ,KAAK,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzE,MAAM,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC;IAE7E,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,IAAI,CAAC,QAAQ,IAAI,OAAO;YAAE,OAAO;QACjC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC;gBACjC,QAAQ;gBACR,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,SAAS;gBAClC,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,IAAI,SAAS;aACrC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBACtB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,uEAAuE;IACvE,2EAA2E;IAC3E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,EAAE,CAAC;QACxD,uDAAuD;IACzD,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,OAAO,CACL,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,sBAAc,EACtC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,8BACE,kBACE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,SAAS,EAAE,GAAG,QAAQ,mBAAmB,aAExC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,iBAAQ,KAAK,EAAE,KAAK,YAAG,KAAK,GAAU,EAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACjB,iBAAgB,KAAK,EAAE,CAAC,YACrB,CAAC,IADS,CAAC,CAEL,CACV,CAAC,IACK,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAC9B,SAAS,EAAC,gDAAgD,0CAGnD,IACR,CACJ,CAAC,CAAC,CAAC,CACF,8BACE,gBACE,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACxC,WAAW,EAAE,IAAI,EAAE,SAAS,EAC5B,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,QAAQ,IAAI,OAAO,EAC9B,KAAK,EACH,YAAY;4BACV,CAAC,CAAC,sBAAsB;4BACxB,CAAC,CAAC,QAAQ;gCACR,CAAC,CAAC,gDAAgD;gCAClD,CAAC,CAAC,sBAAsB,EAE9B,SAAS,EAAC,oKAAoK,YAE7K,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,GAC/C,EACR,KAAK,IAAI,eAAM,SAAS,EAAC,qCAAqC,YAAE,KAAK,GAAQ,IAC7E,CACJ,IACK,CACT,CAAC;AACJ,CAAC;AAaD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,GACG;IAClB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC1D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,uEAAuE;IACvE,yEAAyE;IACzE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAC1C,CAAC,eAAe,CAAC,SAAS,IAAI,CAAC,eAAe,CAAC,OAAO,CACvD,CAAC;IAEF,OAAO;IACL,uEAAuE;IACvE,gEAAgE;IAChE,wCAAwC;IACxC,kCAAqB,UAAU,EAAC,SAAS,EAAC,YAAY,aACpD,eAAK,SAAS,EAAE,wDAAwD,MAAM,OAAO,aACnF,0BACE,aAAI,SAAS,EAAC,qDAAqD,yBAAc,EACjF,YAAG,SAAS,EAAC,uDAAuD,6KAGhE,IACA,EACN,cACE,SAAS,EAAE,6EACT,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,0BAC3D,EAAE,YAED,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY,GACzD,IACF,EAEL,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,2FAA2F,YACvG,KAAK,GACF,CACP,EAEA,UAAU,CAAC,CAAC,CAAC,CACZ,mBAAS,SAAS,EAAE,GAAG,IAAI,kBAAkB,aAC3C,cAAK,SAAS,EAAE,YAAY,MAAM,oBAAoB,YACpD,eAAM,SAAS,EAAE,QAAQ,iCAAyB,GAC9C,EACN,KAAC,gBAAgB,IACf,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;4BACf,UAAU,CAAC,CAAC,CAAC,CAAC;4BACd,OAAO,CAAC,EAAE,CAAC,CAAC;wBACd,CAAC,EACD,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAClC,UAAU,EAAE,GAAG,EAAE;4BACf,aAAa,CAAC,KAAK,CAAC,CAAC;4BACrB,yDAAyD;4BACzD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;wBAChC,CAAC,GACD,IACM,CACX,CAAC,CAAC,CAAC,CACF,KAAC,YAAY,IACX,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;oBAChB,WAAW,CAAC,IAAI,CAAC,CAAC;oBAClB,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;oBACf,UAAU,CAAC,CAAC,CAAC,CAAC;oBACd,OAAO,CAAC,EAAE,CAAC,CAAC;oBACZ,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjB,CAAC,EACD,OAAO,EAAE,QAAQ,GACjB,CACH,IACI,CACR,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAU,CAAC;AAE/E,SAAS,SAAS,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,KAAK,EACL,QAAQ,GAMT;IACC,OAAO,CACL,eAAK,SAAS,EAAC,mBAAmB,aAChC,cAAK,SAAS,EAAC,0CAA0C,YACtD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,gBAAiB,SAAS,EAAC,2BAA2B,aACpD,gBACE,SAAS,EAAE,mEACT,CAAC,KAAK,IAAI;gCACR,CAAC,CAAC,qBAAqB;gCACvB,CAAC,CAAC,CAAC,GAAG,IAAI;oCACR,CAAC,CAAC,+BAA+B;oCACjC,CAAC,CAAC,0BACR,EAAE,aAED,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAC/B,IAAI,IACA,EACN,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,eAAM,SAAS,EAAC,uBAAuB,GAAG,KAb1D,IAAI,CAcR,CACR,CAAC,GACE,EACN,aAAI,SAAS,EAAC,sCAAsC,YAAE,KAAK,GAAM,EACjE,YAAG,SAAS,EAAC,uDAAuD,YAAE,KAAK,GAAK,EAChF,cAAK,SAAS,EAAC,MAAM,YAAE,QAAQ,GAAO,IAClC,CACP,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,QAAQ,EACR,eAAe,EACf,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,GAUX;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,iBAAiB;IACjB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/D,gBAAgB;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,oBAAoB;IACpB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA+B,IAAI,CAAC,CAAC;IAC3E,kBAAkB;IAClB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAA6B,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;IACjF,mBAAmB;IACnB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAwB,QAAQ,CAAC,CAAC;IAExE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;IAC7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE,CACrB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/E,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,QAAQ,CAAC,uEAAuE,CAAC,CAAC;YAClF,OAAO;QACT,CAAC;QACD,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEL,MAAM,QAAQ,GAAG,GAAG,EAAE,CACpB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEL,MAAM,IAAI,GAAG,GAAG,EAAE,CAChB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC1C,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;YACX,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACxB,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,MAAM,aAAa,GAAG,GAAG,EAAE,CACzB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC;YACvC,UAAU;YACV,WAAW;YACX,gBAAgB,EAAE,UAAU;SAC7B,CAAC,CAAC;QACH,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,kBAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,CAAC,EAAE;YAAE,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;;YACnC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,wEAAwE;IACxE,MAAM,YAAY,GAAG,GAAG,EAAE,CACxB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,GAAG,EAAE,CAClB,SAAS,CAAC,KAAK,IAAI,EAAE;QACnB,UAAU,CAAC,MAAM,oBAAoB,CAAC,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC/C,qEAAqE;QACrE,iEAAiE;QACjE,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClC,UAAU,EAAE,CAAC;IACf,CAAC,CAAC,CAAC;IAEL,OAAO,CACL,eAAK,SAAS,EAAC,cAAc,aAC1B,KAAK,IAAI,CACR,cAAK,SAAS,EAAC,wGAAwG,YACpH,KAAK,GACF,CACP,EAEA,IAAI,KAAK,CAAC,IAAI,CACb,MAAC,SAAS,IACR,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,iBAAiB,EACvB,KAAK,EAAC,qJAAgJ,aAEtJ,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,yBAAiB,EAC1C,iBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAA0B,CAAC,EACjE,SAAS,EAAE,GAAG,QAAQ,SAAS,YAE9B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,iBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,YACjC,CAAC,CAAC,KAAK,IADG,CAAC,CAAC,KAAK,CAEX,CACV,CAAC,GACK,IACH,EACR,KAAC,UAAU,IACT,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,GAClE,EACF,iBAAO,SAAS,EAAC,qBAAqB,aACpC,eAAM,SAAS,EAAE,QAAQ,wBAAgB,EACzC,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EACT,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,gBAAgB,EAEnF,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,EACD,IAAI,IAAI,CACP,gBAAM,SAAS,EAAC,oCAAoC,+BACnC,GAAG,EAClB,YACE,IAAI,EAAE,IAAI,CAAC,MAAM,EACjB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,6EAA6E,YAEtF,IAAI,CAAC,OAAO,GACX,SAEC,CACR,IACK,EACP,QAAQ,KAAK,mBAAmB,IAAI,CACnC,iBAAO,SAAS,EAAC,qBAAqB,aACpC,eAAM,SAAS,EAAE,QAAQ,yBAAiB,EAC1C,gBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,WAAW,EAAC,8BAA8B,EAC1C,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,CACT,IACG,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,OAAO,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EACrD,SAAS,EAAE,UAAU,YAEpB,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAC1B,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAC,2CAA2C,2BAG9C,IACL,IACI,CACb,EAEA,IAAI,KAAK,CAAC,IAAI,CACb,MAAC,SAAS,IACR,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,yBAAyB,EAC/B,KAAK,EAAC,yJAAyJ,aAE/J,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,mCAA2B,EACpD,mBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,wGAAwG,EACpH,SAAS,EAAE,GAAG,QAAQ,kBAAkB,GACxC,IACI,EACR,eAAK,SAAS,EAAC,gCAAgC,aAC7C,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,gCAAwB,EACjD,gBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,sCAAsC,EAClD,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,IACI,EACR,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,kCAA0B,EACnD,gBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,sDAAiD,EAC7D,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,IACI,IACJ,EACN,eAAK,SAAS,EAAC,8BAA8B,aAC3C,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,YAC9E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAC1B,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,qBAE/C,IACL,IACI,CACb,EAEA,IAAI,KAAK,CAAC,IAAI,CACb,MAAC,SAAS,IACR,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,oBAAoB,EAC1B,KAAK,EAAC,oPAA+O,aAEpP,OAAO,CAAC,CAAC,CAAC,CACT,eAAK,SAAS,EAAC,oGAAoG,0BACvG,OAAO,CAAC,WAAW,oBAAW,OAAO,CAAC,kBAAkB,CAAC,MAAM,iBACxE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,EAAE,oDAExD,CACP,CAAC,CAAC,CAAC,CACF,8BACG,CAAC,eAAe,IAAI,CACnB,cAAK,SAAS,EAAC,iGAAiG,4JAG1G,CACP,EACD,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,eAAM,SAAS,EAAE,QAAQ,+BAAuB,EAChD,eAAM,SAAS,EAAC,8BAA8B,mFAEvC,EACP,gBACE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,mBAAmB,EAC/B,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,IACP,CACJ,EACD,cAAK,SAAS,EAAC,8BAA8B,YAC1C,OAAO,CAAC,CAAC,CAAC,CACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,yBAEjD,CACV,CAAC,CAAC,CAAC,CACF,8BACE,iBACE,IAAI,EAAC,QAAQ,oBACE,wBAAwB,EACvC,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,OAAO,IAAI,CAAC,eAAe,EACrC,SAAS,EAAE,UAAU,YAEpB,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,GACjC,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,6BAE/C,IACR,CACJ,GACG,IACI,CACb,EAEA,IAAI,KAAK,CAAC,IAAI,CACb,MAAC,SAAS,IACR,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,gCAAgC,EACtC,KAAK,EAAC,0RAAqR,aAE1R,YAAY,CAAC,CAAC,CAAC,CACd,eAAK,SAAS,EAAC,oGAAoG,8BACnG,YAAY,CAAC,IAAI,4BAAmB,GAAG,EACrD,eAAM,SAAS,EAAC,WAAW,YAAE,YAAY,CAAC,aAAa,GAAQ,EAC9D,CAAC,YAAY,CAAC,aAAa,IAAI,qCAAqC,EACpE,CAAC,YAAY,CAAC,OAAO,IAAI,gDAAgD,IACtE,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,2BAAmB,EAC5C,gBACE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,EACR,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,6BAAqB,EAC9C,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EACT,QAAQ,CAAC,cAAc;4CACrB,CAAC,CAAC,yCAAyC;4CAC3C,CAAC,CAAC,cAAc,EAEpB,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,EACF,gBAAM,SAAS,EAAC,oCAAoC,yBACzC,GAAG,EACZ,YACE,IAAI,EAAC,wDAAwD,EAC7D,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,6EAA6E,mCAGrF,EAAC,GAAG,6HAGH,IACD,IACJ,CACP,EACD,iBAAO,SAAS,EAAC,uDAAuD,aACtE,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAChD,SAAS,EAAC,yDAAyD,GACnE,EACF,2BACE,eAAM,SAAS,EAAC,0CAA0C,oDAEnD,EACP,eAAM,SAAS,EAAC,mDAAmD,2OAI5D,IACF,IACD,EACR,cAAK,SAAS,EAAC,8BAA8B,YAC1C,YAAY,CAAC,CAAC,CAAC,CACd,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,YAClF,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,GAC1B,CACV,CAAC,CAAC,CAAC,CACF,8BACE,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,aAAa,EACtB,QAAQ,EACN,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAE7E,SAAS,EAAE,UAAU,YAEpB,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,GACpC,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,6BAE/C,IACR,CACJ,GACG,IACI,CACb,EAEA,IAAI,KAAK,CAAC,IAAI,CACb,MAAC,SAAS,IACR,IAAI,EAAE,CAAC,EACP,KAAK,EAAC,qCAAqC,EAC3C,KAAK,EAAC,oNAA+M,aAErN,cAAK,SAAS,EAAC,2BAA2B,YACvC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,kBAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAClC,SAAS,EAAE,6DACT,OAAO,KAAK,CAAC,CAAC,KAAK;gCACjB,CAAC,CAAC,2BAA2B;gCAC7B,CAAC,CAAC,sCACN,EAAE,aAEF,eAAM,SAAS,EAAC,0CAA0C,YAAE,CAAC,CAAC,KAAK,GAAQ,EAC3E,eAAM,SAAS,EAAC,mDAAmD,YAAE,CAAC,CAAC,IAAI,GAAQ,KAV9E,CAAC,CAAC,KAAK,CAWL,CACV,CAAC,GACE,EACN,cAAK,SAAS,EAAC,MAAM,YACnB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,YAC5E,OAAO,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,iCAAiC,GACxE,GACL,IACI,CACb,IACG,CACP,CAAC;AACJ,CAAC;AAED,gFAAgF;AAEhF,6CAA6C;AAC7C,SAAS,KAAK,CAAC,EACb,KAAK,EACL,IAAI,EACJ,QAAQ,GAKT;IACC,OAAO,CACL,mBAAS,SAAS,EAAE,QAAQ,IAAI,kBAAkB,aAChD,eAAK,SAAS,EAAE,YAAY,MAAM,oBAAoB,aACpD,eAAM,SAAS,EAAE,QAAQ,YAAG,KAAK,GAAQ,EACzC,YAAG,SAAS,EAAC,8CAA8C,YAAE,IAAI,GAAK,IAClE,EACN,cAAK,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAO,IAC3C,CACX,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,eAAe,EACf,OAAO,EACP,SAAS,EACT,OAAO,GASR;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC/E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACpC,QAAQ,CAAC,cAAc,IAAI,QAAQ,CACpC,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,IAAI,KAAK,CAAC,CAAC;IACjF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;IAEzD,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChB,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC;gBACtC,QAAQ;gBACR,KAAK;gBACL,MAAM,EAAE,6BAA6B;gBACrC,OAAO;gBACP,YAAY;gBACZ,OAAO;gBACP,QAAQ;gBACR,QAAQ;gBACR,UAAU;gBACV,cAAc,EAAE,OAAO;gBACvB,UAAU;gBACV,WAAW,EAAE,+BAA+B;gBAC5C,gBAAgB,EAAE,UAAU;aAC7B,CAAC,CAAC;YACH,OAAO,CAAC,IAAI,CAAC,CAAC;YACd,SAAS,CAAC,EAAE,CAAC,CAAC;YACd,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,KAAK,IACJ,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,4FAA4F,YAEjG,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,yBAAiB,EAC1C,iBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAA0B,CAAC,EACjE,SAAS,EAAE,GAAG,QAAQ,SAAS,YAE9B,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACpB,iBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,YACjC,CAAC,CAAC,KAAK,IADG,CAAC,CAAC,KAAK,CAEX,CACV,CAAC,GACK,IACH,EAER,KAAC,UAAU,IACT,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,KAAK,QAAQ,GAClE,EAEF,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,wBAAgB,EACzC,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC1C,WAAW,EACT,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,gBAAgB,EAEnF,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,EACD,IAAI,IAAI,CACP,gBAAM,SAAS,EAAC,oCAAoC,+BACnC,GAAG,EAClB,YACE,IAAI,EAAE,IAAI,CAAC,MAAM,EACjB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,6EAA6E,YAEtF,IAAI,CAAC,OAAO,GACX,wDAEC,CACR,IACK,EAER,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,6BAAqB,EAC9C,iBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAA8B,CAAC,EACpE,SAAS,EAAE,GAAG,QAAQ,SAAS,YAE9B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,kBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,aACjC,CAAC,CAAC,KAAK,cAAK,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KADtB,CAAC,CAAC,KAAK,CAEX,CACV,CAAC,GACK,IACH,EAEP,QAAQ,KAAK,mBAAmB,IAAI,CACnC,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,yBAAiB,EAC1C,gBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,WAAW,EAAC,8BAA8B,EAC1C,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,CACT,IACG,GACA,EAER,MAAC,KAAK,IACJ,KAAK,EAAC,WAAW,EACjB,IAAI,EAAC,sHAAsH,aAE3H,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,iCAAyB,EAClD,eAAM,SAAS,EAAC,8BAA8B,kEAEvC,EACP,mBACE,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3C,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,wGAAwG,EACpH,SAAS,EAAE,GAAG,QAAQ,kBAAkB,GACxC,IACI,EAER,eAAK,SAAS,EAAC,gCAAgC,aAC7C,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,gCAAwB,EACjD,gBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,sCAAsC,EAClD,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,IACI,EAER,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,kCAA0B,EACnD,gBACE,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5C,WAAW,EAAC,sDAAiD,EAC7D,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,IACI,IACJ,EAEN,iBAAO,SAAS,EAAC,YAAY,aAC3B,eAAM,SAAS,EAAE,QAAQ,6BAAqB,EAC9C,eAAM,SAAS,EAAC,8BAA8B,gEAEvC,EACP,mBACE,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,IAAI,EAAE,CAAC,EACP,WAAW,EAAC,mDAAmD,EAC/D,SAAS,EAAE,GAAG,QAAQ,kBAAkB,GACxC,IACI,IACF,EAER,MAAC,KAAK,IACJ,KAAK,EAAC,UAAU,EAChB,IAAI,EAAC,qHAAqH,aAE1H,KAAC,YAAY,IACX,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,QAAQ,CAAC,SAAS,EAC7B,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,OAAO,GAChB,EACF,iBAAO,SAAS,EAAC,YAAY,aAC3B,eAAM,SAAS,EAAE,QAAQ,+BAAuB,EAChD,eAAM,SAAS,EAAC,8BAA8B,kIAGvC,EACP,gBACE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,mBAAmB,EAC/B,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,IACF,EAER,MAAC,KAAK,IACJ,KAAK,EAAC,QAAQ,EACd,IAAI,EAAC,yHAAoH,aAEzH,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,2BAAmB,EAC5C,gBACE,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC9C,WAAW,EAAC,YAAY,EACxB,SAAS,EAAE,GAAG,QAAQ,mBAAmB,GACzC,IACI,EAER,iBAAO,SAAS,EAAC,OAAO,aACtB,eAAM,SAAS,EAAE,QAAQ,6BAAqB,EAC9C,eAAM,SAAS,EAAC,8BAA8B,wEAEvC,EACP,gBACE,IAAI,EAAC,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,WAAW,EACT,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,yCAAyC,CAAC,CAAC,CAAC,cAAc,EAEtF,YAAY,EAAC,KAAK,EAClB,SAAS,EAAE,GAAG,QAAQ,SAAS,GAC/B,IACI,IACJ,EAEN,iBAAO,SAAS,EAAC,8CAA8C,aAC7D,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAChD,SAAS,EAAC,yDAAyD,GACnE,EACF,2BACE,eAAM,SAAS,EAAC,8BAA8B,oDAEvC,EACP,eAAM,SAAS,EAAC,mDAAmD,oGAE5D,IACF,IACD,IACF,EAER,eAAK,SAAS,EAAC,wCAAwC,aACrD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,YAC1E,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,GAC/B,EACR,KAAK,IAAI,eAAM,SAAS,EAAC,8BAA8B,sBAAa,EACpE,QAAQ,CAAC,OAAO,IAAI,CACnB,eAAM,SAAS,EAAC,yBAAyB,4DAElC,CACR,IACG,IACL,CACJ,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,SAAS,YAAY,CAAC,EACpB,OAAO,EACP,IAAI,EACJ,SAAS,EACT,eAAe,EACf,SAAS,EACT,OAAO,GAQR;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,aAAa,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,GAAG,EAAE;QAChB,SAAS,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,GAAG,GAAG,MAAM,qBAAqB,EAAE,CAAC;YAC1C,IAAI,GAAG,CAAC,EAAE;gBAAE,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;gBAC9B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,SAAS,IAAI,eAAe,IAAI,CAAC,OAAO,CAAC;IAEzD,OAAO,CACL,eAAK,SAAS,EAAE,qBAAqB,MAAM,2BAA2B,aACpE,eAAK,SAAS,EAAC,mDAAmD,aAChE,eAAK,SAAS,EAAC,2DAA2D,aACxE,eAAM,SAAS,EAAE,QAAQ,gCAAwB,EAChD,OAAO,CAAC,CAAC,CAAC,CACT,8BACE,uCACW,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,cAAK,OAAO,CAAC,WAAW,mBAAU,GAAG,EACzE,OAAO,CAAC,kBAAkB,CAAC,MAAM,iBACjC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,IAC3C,EACN,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAClB,gBAAM,SAAS,EAAC,yDAAyD,aACtE,IAAI,CAAC,MAAM,WAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,mCAE5D,CACR,EACD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACrC,SAAS,EAAC,6EAA6E,YAEtF,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GACpB,IACR,CACJ,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,UAAU,YACvB,eAAe;oCACd,CAAC,CAAC,kBAAkB;oCACpB,CAAC,CAAC,gGAAgG,GAC/F,CACR,IACG,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,EACb,QAAQ,EAAE,CAAC,OAAO,EAClB,KAAK,EACH,CAAC,SAAS;4BACR,CAAC,CAAC,sBAAsB;4BACxB,CAAC,CAAC,CAAC,eAAe;gCAChB,CAAC,CAAC,8BAA8B;gCAChC,CAAC,CAAC,SAAS,EAEjB,SAAS,EAAC,+KAA+K,YAExL,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe,GAChE,IACL,EACL,QAAQ,IAAI,OAAO,IAAI,CACtB,YAAG,SAAS,EAAC,kEAAkE,YAC5E,OAAO,CAAC,IAAI,GACX,CACL,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"show-more.d.ts","sourceRoot":"","sources":["../../src/dashboard/show-more.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAiBA"}
1
+ {"version":3,"file":"show-more.d.ts","sourceRoot":"","sources":["../../src/dashboard/show-more.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,GACT,EAAE;IACD,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,CAAC;CACrB,+BAkBA"}
@@ -13,6 +13,6 @@ export default function ShowMore({ count, label, children, }) {
13
13
  const [open, setOpen] = useState(false);
14
14
  if (count <= 0)
15
15
  return _jsx(_Fragment, { children: children });
16
- return (_jsxs(_Fragment, { children: [open && children, _jsx("div", { className: "border-t border-[#2e2e2e] px-4 py-2.5 sm:px-5", children: _jsx("button", { type: "button", onClick: () => setOpen((o) => !o), className: "text-[11px] font-medium text-[#888] transition-colors hover:text-white", children: open ? `Show less ↑` : `Show ${count} more ${label} ↓` }) })] }));
16
+ return (_jsxs(_Fragment, { children: [open && children, _jsx("div", { className: "border-t border-[#2e2e2e] px-4 py-2.5 sm:px-5", children: _jsx("button", { type: "button", "data-component": "show-more", onClick: () => setOpen((o) => !o), className: "text-[11px] font-medium text-[#888] transition-colors hover:text-white", children: open ? `Show less ↑` : `Show ${count} more ${label} ↓` }) })] }));
17
17
  }
18
18
  //# sourceMappingURL=show-more.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show-more.js","sourceRoot":"","sources":["../../src/dashboard/show-more.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,GAOT;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACvC,OAAO,CACL,8BACG,IAAI,IAAI,QAAQ,EACjB,cAAK,SAAS,EAAC,+CAA+C,YAC5D,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,EAAC,wEAAwE,YAEjF,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,KAAK,IAAI,GAChD,GACL,IACL,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"show-more.js","sourceRoot":"","sources":["../../src/dashboard/show-more.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AACH,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,EAC/B,KAAK,EACL,KAAK,EACL,QAAQ,GAOT;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACvC,OAAO,CACL,8BACG,IAAI,IAAI,QAAQ,EACjB,cAAK,SAAS,EAAC,+CAA+C,YAC5D,iBACE,IAAI,EAAC,QAAQ,oBACE,WAAW,EAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EACjC,SAAS,EAAC,wEAAwE,YAEjF,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,KAAK,IAAI,GAChD,GACL,IACL,CACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type CaptureSnapshotResult } from "../server/snapshots";
2
+ /**
3
+ * Shoot the site as it stands: every scanned route (the pages real visitors
4
+ * actually rendered), phone and desktop, light and dark. Long-running — a
5
+ * dozen routes takes on the order of a minute.
6
+ */
7
+ export declare function captureSnapshotAction(): Promise<CaptureSnapshotResult>;
8
+ export type SnapshotImageResult = {
9
+ ok: true;
10
+ dataUrl: string;
11
+ } | {
12
+ ok: false;
13
+ };
14
+ /** One shot's PNG as a data URL — fetched lazily as tiles scroll into use. */
15
+ export declare function getSnapshotImageAction(snapshotId: string, file: string): Promise<SnapshotImageResult>;
16
+ //# sourceMappingURL=snapshot-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-actions.d.ts","sourceRoot":"","sources":["../../src/dashboard/snapshot-actions.ts"],"names":[],"mappings":"AAuBA,OAAO,EAIL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAoB7B;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,qBAAqB,CAAC,CA+B5E;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAEhF,8EAA8E;AAC9E,wBAAsB,sBAAsB,CAC1C,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,mBAAmB,CAAC,CAI9B"}
@@ -0,0 +1,79 @@
1
+ "use server";
2
+ /**
3
+ * Polishd — server actions for site snapshots (the Design tab's gallery).
4
+ *
5
+ * Like every server action in this package, each one gates on
6
+ * `requirePolishdAuth()` first: action ids ship in the public client bundle,
7
+ * so these are reachable whether or not the dashboard page ever rendered.
8
+ *
9
+ * Image bytes travel through an action rather than a new GET route on purpose:
10
+ * the ingest route is the package's only public endpoint, and consumers wire
11
+ * it up by re-exporting `POST` alone — a new handler would silently not exist
12
+ * on every install that doesn't update that one-line file. Actions need no
13
+ * wiring and inherit the auth guard.
14
+ */
15
+ import { headers } from "next/headers";
16
+ import { buildDesignDigest } from "../ai/design";
17
+ import { fingerprintDigest } from "../ai/digest";
18
+ import { requirePolishdAuth } from "../ai/guard";
19
+ import { resolveSettings } from "../ai/settings";
20
+ import { isDashboardPath, resolveDashboardRoute } from "../config";
21
+ import { getDesignData } from "../server/design";
22
+ import { MAX_SNAPSHOT_ROUTES, captureSnapshot, readSnapshotImage, } from "../server/snapshots";
23
+ /**
24
+ * The origin to shoot. `POLISHD_SITE_ORIGIN` wins when set (proxies, tunnels,
25
+ * a prod URL shot from a dev machine); otherwise the origin the dashboard was
26
+ * itself requested on — the one URL the server is guaranteed to be reachable
27
+ * at, learned from the request rather than configuration.
28
+ */
29
+ async function resolveSiteOrigin() {
30
+ const configured = process.env.POLISHD_SITE_ORIGIN;
31
+ if (configured)
32
+ return configured.replace(/\/+$/, "");
33
+ const h = await headers();
34
+ const host = h.get("x-forwarded-host") ?? h.get("host");
35
+ if (!host)
36
+ return null;
37
+ const proto = h.get("x-forwarded-proto") ??
38
+ (host.startsWith("localhost") || host.startsWith("127.") ? "http" : "https");
39
+ return `${proto}://${host}`;
40
+ }
41
+ /**
42
+ * Shoot the site as it stands: every scanned route (the pages real visitors
43
+ * actually rendered), phone and desktop, light and dark. Long-running — a
44
+ * dozen routes takes on the order of a minute.
45
+ */
46
+ export async function captureSnapshotAction() {
47
+ await requirePolishdAuth();
48
+ const origin = await resolveSiteOrigin();
49
+ if (!origin) {
50
+ return {
51
+ ok: false,
52
+ message: "Couldn't work out the site's URL from the request — set POLISHD_SITE_ORIGIN " +
53
+ "to the origin the site is reachable at.",
54
+ };
55
+ }
56
+ const data = await getDesignData();
57
+ const dashboardRoute = resolveDashboardRoute();
58
+ // Shoot what visitors have actually rendered, never the dashboard itself
59
+ // (nor the telemetry pseudo-paths the collector namespaces under /~polishd).
60
+ const scanned = data.pages
61
+ .map((p) => p.path)
62
+ .filter((p) => p.startsWith("/") && !p.startsWith("/~") && !isDashboardPath(p, dashboardRoute));
63
+ const routes = (scanned.length > 0 ? scanned : ["/"]).slice(0, MAX_SNAPSHOT_ROUTES);
64
+ // Stamp the snapshot with the same metrics fingerprint the AI review caches
65
+ // under, so "taken before/after this round of changes" is a hash comparison.
66
+ let fingerprint = null;
67
+ if (data.ready && data.pages.length > 0) {
68
+ const { settings } = await resolveSettings();
69
+ fingerprint = fingerprintDigest(buildDesignDigest(data, settings.context));
70
+ }
71
+ return captureSnapshot({ origin, routes, fingerprint });
72
+ }
73
+ /** One shot's PNG as a data URL — fetched lazily as tiles scroll into use. */
74
+ export async function getSnapshotImageAction(snapshotId, file) {
75
+ await requirePolishdAuth();
76
+ const dataUrl = await readSnapshotImage(snapshotId, file);
77
+ return dataUrl ? { ok: true, dataUrl } : { ok: false };
78
+ }
79
+ //# sourceMappingURL=snapshot-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot-actions.js","sourceRoot":"","sources":["../../src/dashboard/snapshot-actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { PolishdSnapshot } from "../server/snapshots";
2
+ export interface SnapshotsCardProps {
3
+ initial: PolishdSnapshot[];
4
+ /**
5
+ * A reason captures are known to fail in this environment (an optional
6
+ * dependency the host needs was omitted from the install), detected
7
+ * server-side at render. Non-null disables the capture button and explains
8
+ * why up front, instead of a minute into a doomed run.
9
+ */
10
+ captureIssue: string | null;
11
+ }
12
+ export default function SnapshotsCard({ initial, captureIssue }: SnapshotsCardProps): import("react").JSX.Element;
13
+ //# sourceMappingURL=snapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.d.ts","sourceRoot":"","sources":["../../src/dashboard/snapshots.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAuB,MAAM,qBAAqB,CAAC;AAmGhF,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B;;;;;OAKG;IACH,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,kBAAkB,+BAsMlF"}
@@ -0,0 +1,88 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ /**
4
+ * Polishd — the Design tab's snapshot gallery.
5
+ *
6
+ * Renders the site's captured screenshots as a device/theme-filterable grid,
7
+ * with a button that shoots a fresh set. Images are fetched lazily per tile
8
+ * through a server action (they live on the server's disk or in Vercel Blob —
9
+ * either way the dashboard never hands out a direct URL) and a clicked tile
10
+ * expands into a full-height lightbox.
11
+ */
12
+ import { useEffect, useState, useTransition } from "react";
13
+ import { captureSnapshotAction, getSnapshotImageAction } from "./snapshot-actions";
14
+ import { border, card, labelCls, primaryBtn, relTime, RefreshIcon } from "./ui";
15
+ const DEVICES = ["desktop", "phone"];
16
+ const THEMES = ["light", "dark"];
17
+ function TogglePills({ options, value, onChange, component, }) {
18
+ return (_jsx("span", { className: "flex overflow-hidden rounded-md border border-[#2e2e2e]", children: options.map((opt) => (_jsx("button", { type: "button", "data-component": component, onClick: () => onChange(opt), className: `px-2.5 py-1 text-[11px] capitalize transition-colors ${opt === value ? "bg-[#1e1e1e] text-white" : "text-[#777] hover:text-[#aaa]"}`, children: opt }, opt))) }));
19
+ }
20
+ /** One screenshot tile. Fetches its image the first time it renders. */
21
+ function ShotTile({ snapshotId, shot, onZoom, }) {
22
+ const [src, setSrc] = useState(null);
23
+ const [failed, setFailed] = useState(false);
24
+ useEffect(() => {
25
+ let alive = true;
26
+ setSrc(null);
27
+ setFailed(false);
28
+ getSnapshotImageAction(snapshotId, shot.file)
29
+ .then((res) => {
30
+ if (!alive)
31
+ return;
32
+ if (res.ok)
33
+ setSrc(res.dataUrl);
34
+ else
35
+ setFailed(true);
36
+ })
37
+ .catch(() => alive && setFailed(true));
38
+ return () => {
39
+ alive = false;
40
+ };
41
+ }, [snapshotId, shot.file]);
42
+ return (_jsxs("figure", { className: "min-w-0", children: [_jsx("button", { type: "button", "data-component": "design-snapshot-open", onClick: () => src && onZoom(src, shot.route), disabled: !src, title: src ? `${shot.route} — click to enlarge` : shot.route, className: `block aspect-[4/5] w-full overflow-hidden rounded-md border ${border} bg-[#111] transition-colors hover:border-[#555] disabled:cursor-default`, children: src ? (
43
+ // Full-page shots are tall; the tile shows the top of the page and
44
+ // the lightbox shows the rest.
45
+ // eslint-disable-next-line @next/next/no-img-element
46
+ _jsx("img", { src: src, alt: `${shot.route} — ${shot.device}, ${shot.theme}`, className: "h-full w-full object-cover object-top" })) : (_jsx("span", { className: "flex h-full items-center justify-center px-2 text-center text-[11px] text-[#555]", children: failed ? "image missing" : "loading…" })) }), _jsx("figcaption", { className: "mt-1.5 truncate font-mono text-[11px] text-[#999]", children: shot.route })] }));
47
+ }
48
+ export default function SnapshotsCard({ initial, captureIssue }) {
49
+ const [snapshots, setSnapshots] = useState(initial);
50
+ const [selectedId, setSelectedId] = useState(initial[0]?.id ?? null);
51
+ const [device, setDevice] = useState("desktop");
52
+ const [theme, setTheme] = useState("light");
53
+ const [error, setError] = useState(null);
54
+ const [zoom, setZoom] = useState(null);
55
+ const [pending, startCapture] = useTransition();
56
+ const selected = snapshots.find((s) => s.id === selectedId) ?? snapshots[0] ?? null;
57
+ // A site with no dark mode has its identical dark shots dropped at capture
58
+ // time — hide the toggle rather than offering an empty view.
59
+ const effectiveTheme = selected?.noDarkMode ? "light" : theme;
60
+ const capture = () => {
61
+ setError(null);
62
+ startCapture(async () => {
63
+ const res = await captureSnapshotAction();
64
+ if (res.ok) {
65
+ setSnapshots((prev) => [res.snapshot, ...prev]);
66
+ setSelectedId(res.snapshot.id);
67
+ }
68
+ else {
69
+ setError(res.message);
70
+ }
71
+ });
72
+ };
73
+ const shots = selected
74
+ ? selected.shots.filter((s) => s.device === device && s.theme === effectiveTheme && s.file.length > 0)
75
+ : [];
76
+ const skipped = selected
77
+ ? selected.shots.filter((s) => s.device === device && s.theme === effectiveTheme && !s.file)
78
+ : [];
79
+ return (
80
+ // The data-component names here feed polishd's own dashboard telemetry:
81
+ // clicks group under these on the collecting side, so "does anyone shoot
82
+ // a second snapshot?" is answerable. Inert for host apps.
83
+ _jsxs("section", { "data-component": "design-snapshots", className: `mb-8 ${card} overflow-hidden`, children: [_jsxs("div", { className: `flex flex-wrap items-center justify-between gap-3 border-b ${border} px-4 py-3 sm:px-5`, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: labelCls, children: "Site snapshots" }), selected && (_jsx("span", { className: "hidden rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[10px] font-medium text-[#888] sm:inline", children: selected.origin }))] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [selected && (_jsxs(_Fragment, { children: [_jsx(TogglePills, { options: DEVICES, value: device, onChange: setDevice, component: "design-snapshot-device" }), !selected.noDarkMode && (_jsx(TogglePills, { options: THEMES, value: theme, onChange: setTheme, component: "design-snapshot-theme" })), snapshots.length > 1 && (_jsx("select", { "data-component": "design-snapshot-history", value: selected.id, onChange: (e) => setSelectedId(e.target.value), className: "rounded-md border border-[#2e2e2e] bg-[#111] px-2 py-1 text-[11px] text-[#aaa] focus:border-[#555] focus:outline-none", children: snapshots.map((s) => (_jsx("option", { value: s.id, children: relTime(s.capturedAt) }, s.id))) }))] })), _jsx("button", { type: "button", "data-component": "design-snapshot-capture", onClick: capture, disabled: pending || captureIssue !== null, title: captureIssue ??
84
+ "Screenshot every scanned page — phone and desktop, light and dark", className: primaryBtn, children: _jsxs("span", { className: "flex items-center gap-1.5", children: [_jsx(RefreshIcon, { spinning: pending }), pending ? "Shooting pages…" : selected ? "Capture again" : "Capture snapshot"] }) })] })] }), _jsxs("div", { className: "px-4 py-4 sm:px-5 sm:py-5", children: [captureIssue && (_jsx("div", { className: "mb-3 rounded-md border border-amber-900/50 bg-amber-950/30 px-3 py-2 text-[12px] text-amber-400", children: captureIssue })), error && (_jsx("div", { className: "mb-3 rounded-md border border-red-900/50 bg-red-950/30 px-3 py-2 text-[12px] text-red-400", children: error })), pending && (_jsx("p", { className: "mb-3 text-[12px] text-[#888]", children: "Shooting every scanned page at two sizes in two themes \u2014 this can take a minute. Keep this tab open." })), !selected && !pending && (_jsx("p", { className: "text-[13px] leading-relaxed text-[#888]", children: "No snapshots yet. Capture one to see every page of the site as it renders right now \u2014 the \u201Cbefore\u201D to hold future design changes against." })), selected && (_jsxs(_Fragment, { children: [shots.length === 0 ? (_jsxs("p", { className: "text-[13px] text-[#888]", children: ["No ", device, "/", theme, " shots in this snapshot."] })) : (_jsx("div", { className: `grid gap-4 ${device === "phone"
85
+ ? "grid-cols-3 sm:grid-cols-5 lg:grid-cols-6"
86
+ : "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4"}`, children: shots.map((s) => (_jsx(ShotTile, { snapshotId: selected.id, shot: s, onZoom: (src, route) => setZoom({ src, route }) }, `${selected.id}|${s.file}`))) })), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-[#555]", children: [_jsxs("span", { children: ["Captured ", relTime(selected.capturedAt)] }), selected.noDarkMode && (_jsx("span", { className: "rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[#777]", children: "Site renders identically in dark mode" })), skipped.length > 0 && (_jsxs("span", { className: "text-amber-400/80", children: [skipped.length, " page", skipped.length === 1 ? "" : "s", " skipped", skipped[0].skipped ? ` (${skipped[0].skipped})` : ""] })), selected.authWalled.length > 0 && (_jsxs("span", { className: "text-amber-400/80", children: ["behind login: ", selected.authWalled.slice(0, 3).join(", "), selected.authWalled.length > 3 ? ", …" : ""] }))] })] }))] }), zoom && (_jsx("div", { role: "dialog", "aria-label": `${zoom.route} screenshot`, onClick: () => setZoom(null), className: "fixed inset-0 z-50 flex cursor-zoom-out items-start justify-center overflow-y-auto bg-black/85 p-6", children: _jsx("img", { src: zoom.src, alt: `${zoom.route} full screenshot`, className: "w-full max-w-3xl rounded-md border border-[#333]" }) }))] }));
87
+ }
88
+ //# sourceMappingURL=snapshots.js.map