@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshots.js","sourceRoot":"","sources":["../../src/dashboard/snapshots.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/dashboard/summary.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,uBAAuB,EAGvB,qBAAqB,EACrB,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,uBAAuB,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,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,WAAW,CAAC,EAClC,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAChB,EAAE,gBAAgB,+BAmHlB"}
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/dashboard/summary.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EACV,uBAAuB,EAGvB,qBAAqB,EACrB,cAAc,EACf,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,eAAe,EAAE,uBAAuB,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;IACtB,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,WAAW,CAAC,EAClC,cAAc,EACd,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACX,eAAe,GAChB,EAAE,gBAAgB,+BA2HlB"}
@@ -38,9 +38,14 @@ export default function SummaryCard({ initialSummary, initialSettings, initialSt
38
38
  };
39
39
  const hasSummary = summary !== null;
40
40
  const cadence = settings.refreshCadence ?? "manual";
41
- return (_jsxs("section", { className: `mb-8 ${card} overflow-hidden`, children: [_jsxs("div", { className: `flex 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: "All you need to know" }), settings.hasApiKey && (_jsxs("span", { className: "hidden rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[10px] font-medium text-[#888] sm:inline", children: [settings.provider, " \u00B7 ", settings.model] }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("button", { type: "button", onClick: () => generate(hasSummary), disabled: pending || !settings.hasApiKey, title: settings.hasApiKey ? "Regenerate the summary now" : "Connect a model first", "aria-label": "Refresh summary", className: iconBtn, children: _jsx(RefreshIcon, { spinning: pending }) }), _jsx(TabLink, { tab: "settings", title: "Model, site context and GitHub settings", "aria-label": "Open settings", className: iconBtn, children: _jsx(GearIcon, {}) })] })] }), _jsxs("div", { className: "px-4 py-4 sm:px-5 sm:py-5", children: [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 })), hasSummary ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-[14px] leading-relaxed text-[#e4e4e4]", children: summary.text }), _jsx(WinsLosses, { wins: summary.wins, losses: summary.losses, githubConnected: settings.hasGithubToken && !!settings.githubRepo }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-[#555]", children: [_jsxs("span", { children: ["Generated ", relTime(summary.generatedAt), " \u00B7 ", summary.provider, "/", summary.model, cadence !== "manual" && ` · refreshes ${cadence}`] }), stale && (_jsx("span", { className: "rounded-full bg-amber-950/50 px-2 py-0.5 text-amber-400", children: "Something's changed since this summary \u2014 refresh to update" }))] })] })) : (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx("p", { className: "text-[13px] leading-relaxed text-[#888]", children: settings.hasApiKey
41
+ return (
42
+ // data-component names on this card (and the finer ones on its buttons)
43
+ // exist for polishd's own dashboard telemetry: clicks captured by the
44
+ // emitter group under these names on the collecting side, so "how often
45
+ // is the summary refreshed?" is answerable. Inert for host apps.
46
+ _jsxs("section", { "data-component": "ai-summary", className: `mb-8 ${card} overflow-hidden`, children: [_jsxs("div", { className: `flex 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: "All you need to know" }), settings.hasApiKey && (_jsxs("span", { className: "hidden rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[10px] font-medium text-[#888] sm:inline", children: [settings.provider, " \u00B7 ", settings.model] }))] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("button", { type: "button", "data-component": "ai-summary-refresh", onClick: () => generate(hasSummary), disabled: pending || !settings.hasApiKey, title: settings.hasApiKey ? "Regenerate the summary now" : "Connect a model first", "aria-label": "Refresh summary", className: iconBtn, children: _jsx(RefreshIcon, { spinning: pending }) }), _jsx(TabLink, { tab: "settings", title: "Model, site context and GitHub settings", "aria-label": "Open settings", className: iconBtn, children: _jsx(GearIcon, {}) })] })] }), _jsxs("div", { className: "px-4 py-4 sm:px-5 sm:py-5", children: [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 })), hasSummary ? (_jsxs(_Fragment, { children: [_jsx("p", { className: "text-[14px] leading-relaxed text-[#e4e4e4]", children: summary.text }), _jsx(WinsLosses, { wins: summary.wins, losses: summary.losses, githubConnected: settings.hasGithubToken && !!settings.githubRepo }), _jsxs("div", { className: "mt-3 flex flex-wrap items-center gap-x-3 gap-y-1 text-[11px] text-[#555]", children: [_jsxs("span", { children: ["Generated ", relTime(summary.generatedAt), " \u00B7 ", summary.provider, "/", summary.model, cadence !== "manual" && ` · refreshes ${cadence}`] }), stale && (_jsx("span", { className: "rounded-full bg-amber-950/50 px-2 py-0.5 text-amber-400", children: "Something's changed since this summary \u2014 refresh to update" }))] })] })) : (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx("p", { className: "text-[13px] leading-relaxed text-[#888]", children: settings.hasApiKey
42
47
  ? "No summary yet — generate the story of how visitors are using this site from the signals below."
43
- : "No model connected yet. Add a key in Settings and Polishd will read these numbers back to you in plain English." }), settings.hasApiKey ? (_jsx("button", { type: "button", onClick: () => generate(false), disabled: pending, className: primaryBtn, children: pending ? "Thinking…" : "Generate summary" })) : (_jsx(TabLink, { tab: "settings", className: primaryBtn, children: "Connect a model" }))] }))] }), _jsx(ProfileNudge, { profile: initialProfile, gaps: initialGaps, sourceAvailable: sourceAvailable })] }));
48
+ : "No model connected yet. Add a key in Settings and Polishd will read these numbers back to you in plain English." }), settings.hasApiKey ? (_jsx("button", { type: "button", "data-component": "ai-summary-generate", onClick: () => generate(false), disabled: pending, className: primaryBtn, children: pending ? "Thinking…" : "Generate summary" })) : (_jsx("span", { "data-component": "ai-connect-model", className: "contents", children: _jsx(TabLink, { tab: "settings", className: primaryBtn, children: "Connect a model" }) }))] }))] }), _jsx(ProfileNudge, { profile: initialProfile, gaps: initialGaps, sourceAvailable: sourceAvailable })] }));
44
49
  }
45
50
  /**
46
51
  * The one piece of setup worth surfacing next to a summary: whether the model
@@ -94,7 +99,7 @@ function FileBugButton({ loss }) {
94
99
  else
95
100
  setFailed({ notABug: res.error === "not-a-bug", message: res.message });
96
101
  });
97
- return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: file, disabled: pending, title: "Verify this problem against the source code, then create a GitHub issue with the technical details", className: microBtn, children: pending ? "Verifying…" : "File bug" }), failed && _jsx("span", { className: "text-[10px] text-red-400", children: failed.message })] }));
102
+ return (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-component": "loss-file-bug", onClick: file, disabled: pending, title: "Verify this problem against the source code, then create a GitHub issue with the technical details", className: microBtn, children: pending ? "Verifying…" : "File bug" }), failed && _jsx("span", { className: "text-[10px] text-red-400", children: failed.message })] }));
98
103
  }
99
104
  /**
100
105
  * One loss, and the two things you can do with it: file it as a bug, or ignore
@@ -136,12 +141,12 @@ function LossRow({ loss, githubConnected }) {
136
141
  setError(res.message);
137
142
  });
138
143
  if (ignored) {
139
- return (_jsxs("li", { className: "flex gap-2 text-[13px] leading-snug text-[#666]", children: [_jsx("span", { className: "mt-px shrink-0 text-[#444]", children: "\u2715" }), _jsxs("span", { children: [_jsx("span", { className: "line-through decoration-[#3a3a3a]", children: loss.issue }), _jsxs("span", { className: "mt-0.5 flex flex-wrap items-center gap-1.5", children: [_jsxs("span", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 text-[10px] text-[#777]", children: ["Ignored", ignored.reason ? ` — ${ignored.reason}` : ""] }), editing ? (_jsx(ReasonForm, { draft: draft, setDraft: setDraft, pending: pending, onSubmit: () => ignore(draft.trim() || undefined), onCancel: () => setEditing(false) })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", onClick: () => {
144
+ return (_jsxs("li", { className: "flex gap-2 text-[13px] leading-snug text-[#666]", children: [_jsx("span", { className: "mt-px shrink-0 text-[#444]", children: "\u2715" }), _jsxs("span", { children: [_jsx("span", { className: "line-through decoration-[#3a3a3a]", children: loss.issue }), _jsxs("span", { className: "mt-0.5 flex flex-wrap items-center gap-1.5", children: [_jsxs("span", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 text-[10px] text-[#777]", children: ["Ignored", ignored.reason ? ` — ${ignored.reason}` : ""] }), editing ? (_jsx(ReasonForm, { draft: draft, setDraft: setDraft, pending: pending, onSubmit: () => ignore(draft.trim() || undefined), onCancel: () => setEditing(false) })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", "data-component": "loss-ignore-reason", onClick: () => {
140
145
  setDraft(ignored.reason ?? "");
141
146
  setEditing(true);
142
- }, disabled: pending, title: "Tell the model why this isn't a problem \u2014 it reads this on every later summary", className: microLink, children: ignored.reason ? "Edit reason" : "Add a reason" }), _jsx("button", { type: "button", onClick: undo, disabled: pending, title: "Put this back \u2014 the model can report it again", className: microLink, children: pending ? "Undoing…" : "Undo" })] })), error && _jsx("span", { className: "text-[10px] text-red-400", children: error })] })] })] }));
147
+ }, disabled: pending, title: "Tell the model why this isn't a problem \u2014 it reads this on every later summary", className: microLink, children: ignored.reason ? "Edit reason" : "Add a reason" }), _jsx("button", { type: "button", "data-component": "loss-ignore-undo", onClick: undo, disabled: pending, title: "Put this back \u2014 the model can report it again", className: microLink, children: pending ? "Undoing…" : "Undo" })] })), error && _jsx("span", { className: "text-[10px] text-red-400", children: error })] })] })] }));
143
148
  }
144
- return (_jsxs("li", { className: "flex gap-2 text-[13px] leading-snug text-[#bbb]", children: [_jsx("span", { className: "mt-px shrink-0 text-red-400", children: "\u2715" }), _jsxs("span", { children: [loss.issue, _jsxs("span", { className: "mt-0.5 flex flex-wrap items-center gap-1.5", children: [_jsx("code", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 font-mono text-[10px] text-[#888]", children: loss.evidence }), loss.location ? (_jsx("code", { className: "rounded bg-[#101c14] px-1.5 py-0.5 font-mono text-[10px] text-emerald-500", children: loss.location })) : (_jsx("span", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 text-[10px] text-[#666]", title: "The citation is real analytics data, but no matching file was found on disk (dynamic content, or source not available here).", children: "not matched to source" })), (githubConnected || !!loss.issueUrl) && _jsx(FileBugButton, { loss: loss }), _jsx("button", { type: "button", onClick: () => ignore(), disabled: pending, title: "Not a problem \u2014 drop it from this summary and stop the model reporting it again", className: microBtn, children: pending ? "Ignoring…" : "Ignore" }), error && _jsx("span", { className: "text-[10px] text-red-400", children: error })] })] })] }));
149
+ return (_jsxs("li", { className: "flex gap-2 text-[13px] leading-snug text-[#bbb]", children: [_jsx("span", { className: "mt-px shrink-0 text-red-400", children: "\u2715" }), _jsxs("span", { children: [loss.issue, _jsxs("span", { className: "mt-0.5 flex flex-wrap items-center gap-1.5", children: [_jsx("code", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 font-mono text-[10px] text-[#888]", children: loss.evidence }), loss.location ? (_jsx("code", { className: "rounded bg-[#101c14] px-1.5 py-0.5 font-mono text-[10px] text-emerald-500", children: loss.location })) : (_jsx("span", { className: "rounded bg-[#1a1a1a] px-1.5 py-0.5 text-[10px] text-[#666]", title: "The citation is real analytics data, but no matching file was found on disk (dynamic content, or source not available here).", children: "not matched to source" })), (githubConnected || !!loss.issueUrl) && _jsx(FileBugButton, { loss: loss }), _jsx("button", { type: "button", "data-component": "loss-ignore", onClick: () => ignore(), disabled: pending, title: "Not a problem \u2014 drop it from this summary and stop the model reporting it again", className: microBtn, children: pending ? "Ignoring…" : "Ignore" }), error && _jsx("span", { className: "text-[10px] text-red-400", children: error })] })] })] }));
145
150
  }
146
151
  /** The optional half of ignoring: why it isn't a problem, in the owner's words. */
147
152
  function ReasonForm({ draft, setDraft, pending, onSubmit, onCancel, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/dashboard/summary.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/dashboard/summary.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { PolishdTelemetryInstallState } from "../server/telemetry";
1
2
  declare global {
2
3
  interface Window {
3
4
  __polishdTelemetryStarted?: boolean;
@@ -8,8 +9,9 @@ declare global {
8
9
  * starts the capture singleton once per page load (the listeners are global
9
10
  * and deliberately never torn down — capture suspends off-dashboard instead).
10
11
  */
11
- export declare function PolishdTelemetryEmitter({ endpoint }: {
12
+ export declare function PolishdTelemetryEmitter({ endpoint, installState, }: {
12
13
  endpoint: string;
14
+ installState?: PolishdTelemetryInstallState | null;
13
15
  }): null;
14
16
  /**
15
17
  * The one-time opt-in prompt, shown while consent is "unset". Both buttons
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/dashboard/telemetry.tsx"],"names":[],"mappings":"AA0DA,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC;CACF;AAqND;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,QAQzE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,uCAuDtC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/dashboard/telemetry.tsx"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAUxE,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC;CACF;AA6PD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,YAAmB,GACpB,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,4BAA4B,GAAG,IAAI,CAAC;CACpD,QAQA;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,uCAwDtC"}
@@ -36,8 +36,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
36
36
  */
37
37
  import { useRouter } from "next/navigation";
38
38
  import { useEffect, useState, useTransition } from "react";
39
- import { componentOf, deviceCategory, hasTextSelection, isInteractive, labelOf, selectorOf, } from "../client/dom";
39
+ import { isIgnorableError } from "../shared/error-noise";
40
+ import { componentOf, deviceCategory, hasTextSelection, isInteractive, isSelectionGesture, isTextTarget, labelOf, selectorOf, } from "../client/dom";
40
41
  import { scheduleDesignScan } from "../client/design-scan";
42
+ import { errorOrigin, startScriptProvenance } from "../client/script-provenance";
41
43
  import { denyPolishdTelemetry, grantPolishdTelemetry } from "./telemetry-consent";
42
44
  const PATH_PREFIX = "/~polishd";
43
45
  const SESSION_KEY = "polishd_telemetry_session";
@@ -65,7 +67,7 @@ function sessionId() {
65
67
  return crypto.randomUUID();
66
68
  }
67
69
  }
68
- function start(endpoint) {
70
+ function start(endpoint, installState) {
69
71
  const sid = sessionId();
70
72
  // The route the dashboard is mounted at, learned from where we woke up.
71
73
  // Capture is suspended whenever the URL wanders off it — the listeners
@@ -115,7 +117,7 @@ function start(endpoint) {
115
117
  if (selector === lastClick.selector && now - lastClick.time < RAGE_WINDOW_MS) {
116
118
  lastClick.count++;
117
119
  lastClick.time = now;
118
- if (lastClick.count === RAGE_COUNT) {
120
+ if (lastClick.count === RAGE_COUNT && !isSelectionGesture(target)) {
119
121
  push({ type: "rage_click", selector, component, text });
120
122
  }
121
123
  }
@@ -123,7 +125,7 @@ function start(endpoint) {
123
125
  lastClick = { selector: selector ?? "", time: now, count: 1 };
124
126
  }
125
127
  if (!isInteractive(target)) {
126
- if (hasTextSelection())
128
+ if (hasTextSelection() || isTextTarget(target))
127
129
  return;
128
130
  push({ type: "dead_click", selector, component, text });
129
131
  }
@@ -142,7 +144,8 @@ function start(endpoint) {
142
144
  const t = ev.target;
143
145
  const el = t instanceof Element ? t : document.documentElement;
144
146
  const scrollable = el.scrollHeight - el.clientHeight;
145
- if (scrollable <= 0)
147
+ // Regions that barely scroll reach 100% trivially — no attention signal.
148
+ if (scrollable < el.clientHeight * 0.1)
146
149
  return;
147
150
  const pct = Math.min(100, Math.round((el.scrollTop / scrollable) * 100));
148
151
  if (pct > maxScrollPct)
@@ -156,15 +159,25 @@ function start(endpoint) {
156
159
  maxScrollPct = 0;
157
160
  };
158
161
  // ---- errors ---------------------------------------------------------------
162
+ // Extension throws reach `window` here too — and the dashboard is a page the
163
+ // owner keeps open, so its tab collects them for as long as it's up. Same
164
+ // provenance test as first-party capture.
165
+ startScriptProvenance();
159
166
  addEventListener("error", (ev) => {
160
167
  if (!onDashboard())
161
168
  return;
169
+ const message = String(ev.message);
170
+ const source = ev.filename || "";
171
+ const origin = errorOrigin(source, ev.error?.stack);
172
+ if (origin === "extension" || isIgnorableError({ message, source }))
173
+ return;
162
174
  push({
163
175
  type: "js_error",
164
176
  meta: {
165
- message: String(ev.message).slice(0, 300),
166
- source: ev.filename || "",
177
+ message: message.slice(0, 300),
178
+ source,
167
179
  line: ev.lineno || 0,
180
+ ...(origin === "site" ? {} : { origin }),
168
181
  },
169
182
  });
170
183
  }, true);
@@ -172,11 +185,16 @@ function start(endpoint) {
172
185
  if (!onDashboard())
173
186
  return;
174
187
  const reason = ev.reason;
188
+ const message = String(reason?.message ?? reason);
189
+ const origin = errorOrigin(undefined, reason?.stack);
190
+ if (origin === "extension" || isIgnorableError({ message }))
191
+ return;
175
192
  push({
176
193
  type: "js_error",
177
194
  meta: {
178
- message: String(reason?.message ?? reason).slice(0, 300),
195
+ message: message.slice(0, 300),
179
196
  kind: "unhandledrejection",
197
+ ...(origin === "site" ? {} : { origin }),
180
198
  },
181
199
  });
182
200
  });
@@ -229,6 +247,31 @@ function start(endpoint) {
229
247
  if (w > 0) {
230
248
  push({ type: "viewport", value: w, text: deviceCategory(w) });
231
249
  }
250
+ // One install-state snapshot per session: whether a model is connected and
251
+ // which provider/model — the product questions ("how many installs actually
252
+ // configure AI?") that click events can't answer. Server-resolved, no key.
253
+ if (installState) {
254
+ const STATE_KEY = "polishd_telemetry_state";
255
+ let sent = false;
256
+ try {
257
+ sent = sessionStorage.getItem(STATE_KEY) !== null;
258
+ if (!sent)
259
+ sessionStorage.setItem(STATE_KEY, "1");
260
+ }
261
+ catch {
262
+ /* storage blocked — a duplicate per page load is tolerable */
263
+ }
264
+ if (!sent) {
265
+ push({
266
+ type: "install_state",
267
+ meta: {
268
+ hasModel: installState.hasModel,
269
+ provider: installState.provider,
270
+ model: installState.model,
271
+ },
272
+ });
273
+ }
274
+ }
232
275
  push({ type: "page_view", path: currentPath });
233
276
  emitDesignScan();
234
277
  }
@@ -237,15 +280,15 @@ function start(endpoint) {
237
280
  * starts the capture singleton once per page load (the listeners are global
238
281
  * and deliberately never torn down — capture suspends off-dashboard instead).
239
282
  */
240
- export function PolishdTelemetryEmitter({ endpoint }) {
283
+ export function PolishdTelemetryEmitter({ endpoint, installState = null, }) {
241
284
  useEffect(() => {
242
285
  if (window.__polishdTelemetryStarted)
243
286
  return;
244
287
  if (navigator.doNotTrack === "1")
245
288
  return;
246
289
  window.__polishdTelemetryStarted = true;
247
- start(endpoint);
248
- }, [endpoint]);
290
+ start(endpoint, installState);
291
+ }, [endpoint, installState]);
249
292
  return null;
250
293
  }
251
294
  /**
@@ -275,6 +318,6 @@ export function PolishdTelemetryConsent() {
275
318
  }
276
319
  setDismissed(true);
277
320
  });
278
- return (_jsxs("div", { role: "dialog", "aria-label": "Polishd telemetry consent", className: "fixed bottom-4 right-4 z-50 w-[340px] max-w-[calc(100vw-2rem)] rounded-xl border border-[#2e2e2e] bg-[#111] p-4 shadow-2xl", children: [_jsx("p", { className: "text-[13px] font-medium text-white", children: "Help improve polishd?" }), _jsxs("p", { className: "mt-1.5 text-[12px] leading-relaxed text-[#888]", children: ["Share anonymous usage of ", _jsx("span", { className: "text-[#aaa]", children: "this dashboard" }), " \u2014 clicks and tab views inside it, reported under your site's domain. Never your site's analytics, never your visitors' data. Opt out any time with", " ", _jsx("code", { className: "font-mono text-[11px] text-[#aaa]", children: "POLISHD_TELEMETRY=off" }), "."] }), _jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx("button", { type: "button", disabled: pending, onClick: () => decide(true), className: "rounded-lg bg-white px-3 py-1.5 text-[12px] font-medium text-black transition-opacity hover:opacity-90 disabled:opacity-50", children: "Share" }), _jsx("button", { type: "button", disabled: pending, onClick: () => decide(false), className: "rounded-lg border border-[#2e2e2e] px-3 py-1.5 text-[12px] text-[#888] transition-colors hover:text-white disabled:opacity-50", children: "No thanks" })] })] }));
321
+ return (_jsxs("div", { role: "dialog", "aria-label": "Polishd telemetry consent", className: "fixed bottom-4 right-4 z-50 w-[340px] max-w-[calc(100vw-2rem)] rounded-xl border border-[#2e2e2e] bg-[#111] p-4 shadow-2xl", children: [_jsx("p", { className: "text-[13px] font-medium text-white", children: "Help improve polishd?" }), _jsxs("p", { className: "mt-1.5 text-[12px] leading-relaxed text-[#888]", children: ["Share anonymous usage of ", _jsx("span", { className: "text-[#aaa]", children: "this dashboard" }), " \u2014 clicks and tab views inside it, plus which model provider you've connected (never the key) \u2014 reported under your site's domain. Never your site's analytics, never your visitors' data. Opt out any time with", " ", _jsx("code", { className: "font-mono text-[11px] text-[#aaa]", children: "POLISHD_TELEMETRY=off" }), "."] }), _jsxs("div", { className: "mt-3 flex gap-2", children: [_jsx("button", { type: "button", disabled: pending, onClick: () => decide(true), className: "rounded-lg bg-white px-3 py-1.5 text-[12px] font-medium text-black transition-opacity hover:opacity-90 disabled:opacity-50", children: "Share" }), _jsx("button", { type: "button", disabled: pending, onClick: () => decide(false), className: "rounded-lg border border-[#2e2e2e] px-3 py-1.5 text-[12px] text-[#888] transition-colors hover:text-white disabled:opacity-50", children: "No thanks" })] })] }));
279
322
  }
280
323
  //# sourceMappingURL=telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/dashboard/telemetry.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/dashboard/telemetry.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  /**
2
2
  * Polishd — the dashboard's shared visual vocabulary.
3
3
  *
4
- * Class strings and small icons used by more than one panel. They lived as
5
- * copies in every file until the settings form moved into its own tab and the
6
- * copies started to drift; one definition is what keeps the Analytics, Design
7
- * and Settings tabs looking like the same product.
4
+ * Class strings, small icons and chart maths used by more than one panel. They
5
+ * lived as copies in every file until the settings form moved into its own tab
6
+ * and the copies started to drift; one definition is what keeps the Analytics,
7
+ * Design and Settings tabs looking like the same product.
8
8
  *
9
- * No `"use client"` here on purpose — plain constants and stateless SVG work in
10
- * either environment, and the server-rendered panels import them too.
9
+ * No `"use client"` here on purpose — plain constants, stateless SVG and
10
+ * hover-only markup work in either environment, and the server-rendered panels
11
+ * import them too.
11
12
  */
12
13
  export declare const border = "border-[#2e2e2e]";
13
14
  export declare const card = "border border-[#2e2e2e] rounded-lg bg-[#0a0a0a]";
@@ -19,6 +20,30 @@ export declare const ghostBtn = "rounded-md border border-[#2e2e2e] px-2.5 py-1.
19
20
  export declare const iconBtn = "flex h-7 w-7 items-center justify-center rounded-md border border-[#2e2e2e] text-[#aaa] transition-colors hover:border-[#555] hover:text-white disabled:cursor-not-allowed disabled:opacity-40";
20
21
  /** "3m ago" — coarse on purpose; these timestamps are context, not data. */
21
22
  export declare function relTime(ms: number): string;
23
+ /**
24
+ * A 0-based integer tick scale for a count axis.
25
+ *
26
+ * Counts are whole things — sessions, clicks, errors — so a "2.5 rage clicks"
27
+ * gridline is a lie the reader has to decode. This picks a whole-number step
28
+ * that lands on about four gridlines and returns the top of the axis with it.
29
+ */
30
+ export declare function yScale(peak: number): {
31
+ top: number;
32
+ ticks: number[];
33
+ };
34
+ /**
35
+ * The little "i" that explains how a number is calculated.
36
+ *
37
+ * Pure CSS hover — no state, no event handlers — so the server-rendered panels
38
+ * and the client ones can share this one definition. It lived as two drifting
39
+ * copies (the Analytics page and the Top-pages table) before the stat tiles
40
+ * needed a third.
41
+ */
42
+ export declare function InfoTip({ text, anchor, below, }: {
43
+ text: string;
44
+ anchor?: "left" | "center" | "right";
45
+ below?: boolean;
46
+ }): import("react").JSX.Element;
22
47
  export declare function RefreshIcon({ spinning }: {
23
48
  spinning?: boolean;
24
49
  }): import("react").JSX.Element;
@@ -26,6 +51,8 @@ export declare function GearIcon(): import("react").JSX.Element;
26
51
  export declare function ChartIcon(): import("react").JSX.Element;
27
52
  export declare function DropletIcon(): import("react").JSX.Element;
28
53
  export declare function GlobeIcon(): import("react").JSX.Element;
54
+ /** GitHub's issue glyph: a ring with a dot in it. */
55
+ export declare function IssueIcon(): import("react").JSX.Element;
29
56
  /** The tab rail's in-flight marker: same 13px box as the icon it replaces. */
30
57
  export declare function SpinnerIcon(): import("react").JSX.Element;
31
58
  //# sourceMappingURL=ui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/dashboard/ui.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,eAAO,MAAM,IAAI,oDAA6C,CAAC;AAC/D,eAAO,MAAM,OAAO,8BAAuB,CAAC;AAC5C,eAAO,MAAM,QAAQ,oEAAoE,CAAC;AAC1F,eAAO,MAAM,QAAQ,wJACkI,CAAC;AACxJ,eAAO,MAAM,UAAU,2JACmI,CAAC;AAC3J,eAAO,MAAM,QAAQ,oLAC8J,CAAC;AACpL,eAAO,MAAM,OAAO,mMAC8K,CAAC;AAEnM,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ1C;AAID,wBAAgB,WAAW,CAAC,EAAE,QAAgB,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BAkBvE;AAED,wBAAgB,QAAQ,gCAiBvB;AAED,wBAAgB,SAAS,gCAkBxB;AAED,wBAAgB,WAAW,gCAgB1B;AAED,wBAAgB,SAAS,gCAkBxB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,gCAiB1B"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/dashboard/ui.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,eAAO,MAAM,IAAI,oDAA6C,CAAC;AAC/D,eAAO,MAAM,OAAO,8BAAuB,CAAC;AAC5C,eAAO,MAAM,QAAQ,oEAAoE,CAAC;AAC1F,eAAO,MAAM,QAAQ,wJACkI,CAAC;AACxJ,eAAO,MAAM,UAAU,2JACmI,CAAC;AAC3J,eAAO,MAAM,QAAQ,oLAC8J,CAAC;AACpL,eAAO,MAAM,OAAO,mMAC8K,CAAC;AAEnM,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAQ1C;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAWrE;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,MAAiB,EACjB,KAAa,GACd,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,+BAiBA;AAID,wBAAgB,WAAW,CAAC,EAAE,QAAgB,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,+BAkBvE;AAED,wBAAgB,QAAQ,gCAiBvB;AAED,wBAAgB,SAAS,gCAkBxB;AAED,wBAAgB,WAAW,gCAgB1B;AAED,wBAAgB,SAAS,gCAkBxB;AAED,qDAAqD;AACrD,wBAAgB,SAAS,gCAiBxB;AAED,8EAA8E;AAC9E,wBAAgB,WAAW,gCAiB1B"}
@@ -2,13 +2,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
3
  * Polishd — the dashboard's shared visual vocabulary.
4
4
  *
5
- * Class strings and small icons used by more than one panel. They lived as
6
- * copies in every file until the settings form moved into its own tab and the
7
- * copies started to drift; one definition is what keeps the Analytics, Design
8
- * and Settings tabs looking like the same product.
5
+ * Class strings, small icons and chart maths used by more than one panel. They
6
+ * lived as copies in every file until the settings form moved into its own tab
7
+ * and the copies started to drift; one definition is what keeps the Analytics,
8
+ * Design and Settings tabs looking like the same product.
9
9
  *
10
- * No `"use client"` here on purpose — plain constants and stateless SVG work in
11
- * either environment, and the server-rendered panels import them too.
10
+ * No `"use client"` here on purpose — plain constants, stateless SVG and
11
+ * hover-only markup work in either environment, and the server-rendered panels
12
+ * import them too.
12
13
  */
13
14
  export const border = "border-[#2e2e2e]";
14
15
  export const card = `border ${border} rounded-lg bg-[#0a0a0a]`;
@@ -31,6 +32,39 @@ export function relTime(ms) {
31
32
  return `${h}h ago`;
32
33
  return `${Math.round(h / 24)}d ago`;
33
34
  }
35
+ /**
36
+ * A 0-based integer tick scale for a count axis.
37
+ *
38
+ * Counts are whole things — sessions, clicks, errors — so a "2.5 rage clicks"
39
+ * gridline is a lie the reader has to decode. This picks a whole-number step
40
+ * that lands on about four gridlines and returns the top of the axis with it.
41
+ */
42
+ export function yScale(peak) {
43
+ const target = 4; // aim for ~4 gridlines
44
+ if (peak <= target) {
45
+ const top = Math.max(peak, 1);
46
+ return { top, ticks: Array.from({ length: top + 1 }, (_, i) => i) };
47
+ }
48
+ const step = Math.ceil(peak / target);
49
+ const top = step * Math.ceil(peak / step);
50
+ const ticks = [];
51
+ for (let v = 0; v <= top; v += step)
52
+ ticks.push(v);
53
+ return { top, ticks };
54
+ }
55
+ /**
56
+ * The little "i" that explains how a number is calculated.
57
+ *
58
+ * Pure CSS hover — no state, no event handlers — so the server-rendered panels
59
+ * and the client ones can share this one definition. It lived as two drifting
60
+ * copies (the Analytics page and the Top-pages table) before the stat tiles
61
+ * needed a third.
62
+ */
63
+ export function InfoTip({ text, anchor = "center", below = false, }) {
64
+ const anchorClass = anchor === "left" ? "left-0" : anchor === "right" ? "right-0" : "left-1/2 -translate-x-1/2";
65
+ const vClass = below ? "top-full mt-2" : "bottom-full mb-2";
66
+ 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} ${anchorClass} 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 })] }));
67
+ }
34
68
  // ── Icons (Feather, inlined) ─────────────────────────────────────────────────
35
69
  export function RefreshIcon({ spinning = false }) {
36
70
  return (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: spinning ? "animate-spin" : undefined, "aria-hidden": true, children: [_jsx("polyline", { points: "23 4 23 10 17 10" }), _jsx("path", { d: "M20.49 15a9 9 0 1 1-2.12-9.36L23 10" })] }));
@@ -47,6 +81,10 @@ export function DropletIcon() {
47
81
  export function GlobeIcon() {
48
82
  return (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("circle", { cx: "12", cy: "12", r: "10" }), _jsx("line", { x1: "2", y1: "12", x2: "22", y2: "12" }), _jsx("path", { d: "M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z" })] }));
49
83
  }
84
+ /** GitHub's issue glyph: a ring with a dot in it. */
85
+ export function IssueIcon() {
86
+ return (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": true, children: [_jsx("circle", { cx: "12", cy: "12", r: "9" }), _jsx("circle", { cx: "12", cy: "12", r: "3", fill: "currentColor", stroke: "none" })] }));
87
+ }
50
88
  /** The tab rail's in-flight marker: same 13px box as the icon it replaces. */
51
89
  export function SpinnerIcon() {
52
90
  return (_jsxs("svg", { width: "13", height: "13", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", className: "animate-spin", "aria-hidden": true, children: [_jsx("circle", { cx: "12", cy: "12", r: "9", opacity: "0.25" }), _jsx("path", { d: "M21 12a9 9 0 0 0-9-9" })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/dashboard/ui.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,MAAM,GAAG,kBAAkB,CAAC;AACzC,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,MAAM,0BAA0B,CAAC;AAC/D,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,MAAM,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,QAAQ,GAAG,iEAAiE,CAAC;AAC1F,MAAM,CAAC,MAAM,QAAQ,GACnB,qJAAqJ,CAAC;AACxJ,MAAM,CAAC,MAAM,UAAU,GACrB,wJAAwJ,CAAC;AAC3J,MAAM,CAAC,MAAM,QAAQ,GACnB,iLAAiL,CAAC;AACpL,MAAM,CAAC,MAAM,OAAO,GAClB,gMAAgM,CAAC;AAEnM,4EAA4E;AAC5E,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,UAAU,CAAC;IAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;AACtC,CAAC;AAED,gFAAgF;AAEhF,MAAM,UAAU,WAAW,CAAC,EAAE,QAAQ,GAAG,KAAK,EAA0B;IACtE,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,kCAGhD,mBAAU,MAAM,EAAC,kBAAkB,GAAG,EACtC,eAAM,CAAC,EAAC,qCAAqC,GAAG,IAC5C,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,kCAGtB,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,GAAG,EAChC,eAAM,CAAC,EAAC,guBAAguB,GAAG,IACvuB,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,kCAGtB,eAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,EACxC,eAAM,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,GAAG,EACvC,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,GAAG,IAClC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,cACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,iCAGtB,eAAM,CAAC,EAAC,uCAAuC,GAAG,GAC9C,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,kCAGtB,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,GAAG,EACjC,eAAM,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,GAAG,EACvC,eAAM,CAAC,EAAC,4FAA4F,GAAG,IACnG,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,WAAW;IACzB,OAAO,CACL,eACE,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,EACrB,SAAS,EAAC,cAAc,kCAGxB,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,OAAO,EAAC,MAAM,GAAG,EAC/C,eAAM,CAAC,EAAC,sBAAsB,GAAG,IAC7B,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/dashboard/ui.tsx"],"names":[],"mappings":"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"}