@polishd/next 0.2.3-dev.0 → 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 (106) hide show
  1. package/AGENTS.md +1 -0
  2. package/CHANGELOG.md +136 -0
  3. package/README.md +34 -3
  4. package/dist/ai/digest.d.ts.map +1 -1
  5. package/dist/ai/digest.js +3 -2
  6. package/dist/ai/digest.js.map +1 -1
  7. package/dist/ai/github.d.ts +22 -1
  8. package/dist/ai/github.d.ts.map +1 -1
  9. package/dist/ai/github.js +99 -3
  10. package/dist/ai/github.js.map +1 -1
  11. package/dist/ai/issue-pages.d.ts +52 -0
  12. package/dist/ai/issue-pages.d.ts.map +1 -0
  13. package/dist/ai/issue-pages.js +50 -0
  14. package/dist/ai/issue-pages.js.map +1 -0
  15. package/dist/ai/issues.d.ts +13 -1
  16. package/dist/ai/issues.d.ts.map +1 -1
  17. package/dist/ai/issues.js +60 -4
  18. package/dist/ai/issues.js.map +1 -1
  19. package/dist/ai/summary.d.ts.map +1 -1
  20. package/dist/ai/summary.js +7 -0
  21. package/dist/ai/summary.js.map +1 -1
  22. package/dist/ai/types.d.ts +43 -0
  23. package/dist/ai/types.d.ts.map +1 -1
  24. package/dist/client/dom.d.ts +23 -0
  25. package/dist/client/dom.d.ts.map +1 -1
  26. package/dist/client/dom.js +45 -2
  27. package/dist/client/dom.js.map +1 -1
  28. package/dist/client/init.d.ts.map +1 -1
  29. package/dist/client/init.js +15 -6
  30. package/dist/client/init.js.map +1 -1
  31. package/dist/client/monitor.d.ts.map +1 -1
  32. package/dist/client/monitor.js +5 -1
  33. package/dist/client/monitor.js.map +1 -1
  34. package/dist/dashboard/chrome.d.ts +4 -2
  35. package/dist/dashboard/chrome.d.ts.map +1 -1
  36. package/dist/dashboard/chrome.js +15 -5
  37. package/dist/dashboard/chrome.js.map +1 -1
  38. package/dist/dashboard/design.d.ts +3 -1
  39. package/dist/dashboard/design.d.ts.map +1 -1
  40. package/dist/dashboard/design.js +2 -2
  41. package/dist/dashboard/design.js.map +1 -1
  42. package/dist/dashboard/drawer.d.ts +34 -0
  43. package/dist/dashboard/drawer.d.ts.map +1 -0
  44. package/dist/dashboard/drawer.js +44 -0
  45. package/dist/dashboard/drawer.js.map +1 -0
  46. package/dist/dashboard/index.d.ts +3 -1
  47. package/dist/dashboard/index.d.ts.map +1 -1
  48. package/dist/dashboard/index.js +29 -23
  49. package/dist/dashboard/index.js.map +1 -1
  50. package/dist/dashboard/issues.d.ts +9 -0
  51. package/dist/dashboard/issues.d.ts.map +1 -0
  52. package/dist/dashboard/issues.js +81 -0
  53. package/dist/dashboard/issues.js.map +1 -0
  54. package/dist/dashboard/journeys.d.ts.map +1 -1
  55. package/dist/dashboard/journeys.js +1 -0
  56. package/dist/dashboard/journeys.js.map +1 -1
  57. package/dist/dashboard/metric-trends.d.ts +6 -0
  58. package/dist/dashboard/metric-trends.d.ts.map +1 -0
  59. package/dist/dashboard/metric-trends.js +236 -0
  60. package/dist/dashboard/metric-trends.js.map +1 -0
  61. package/dist/dashboard/pages.d.ts.map +1 -1
  62. package/dist/dashboard/pages.js +7 -45
  63. package/dist/dashboard/pages.js.map +1 -1
  64. package/dist/dashboard/snapshots.d.ts +8 -1
  65. package/dist/dashboard/snapshots.d.ts.map +1 -1
  66. package/dist/dashboard/snapshots.js +6 -4
  67. package/dist/dashboard/snapshots.js.map +1 -1
  68. package/dist/dashboard/telemetry.d.ts.map +1 -1
  69. package/dist/dashboard/telemetry.js +5 -4
  70. package/dist/dashboard/telemetry.js.map +1 -1
  71. package/dist/dashboard/ui.d.ts +33 -6
  72. package/dist/dashboard/ui.d.ts.map +1 -1
  73. package/dist/dashboard/ui.js +44 -6
  74. package/dist/dashboard/ui.js.map +1 -1
  75. package/dist/dashboard.css +114 -0
  76. package/dist/server/ingest.d.ts.map +1 -1
  77. package/dist/server/ingest.js +7 -0
  78. package/dist/server/ingest.js.map +1 -1
  79. package/dist/server/queries.d.ts +41 -0
  80. package/dist/server/queries.d.ts.map +1 -1
  81. package/dist/server/queries.js +109 -3
  82. package/dist/server/queries.js.map +1 -1
  83. package/dist/server/reclassify.d.ts +3 -0
  84. package/dist/server/reclassify.d.ts.map +1 -0
  85. package/dist/server/reclassify.js +65 -0
  86. package/dist/server/reclassify.js.map +1 -0
  87. package/dist/server/snapshots.d.ts +18 -2
  88. package/dist/server/snapshots.d.ts.map +1 -1
  89. package/dist/server/snapshots.js +197 -20
  90. package/dist/server/snapshots.js.map +1 -1
  91. package/dist/server/store.d.ts +5 -0
  92. package/dist/server/store.d.ts.map +1 -1
  93. package/dist/server/store.js +17 -0
  94. package/dist/server/store.js.map +1 -1
  95. package/dist/shared/metric-buckets.d.ts +31 -0
  96. package/dist/shared/metric-buckets.d.ts.map +1 -0
  97. package/dist/shared/metric-buckets.js +49 -0
  98. package/dist/shared/metric-buckets.js.map +1 -0
  99. package/dist/shared/text-signals.d.ts +56 -0
  100. package/dist/shared/text-signals.d.ts.map +1 -0
  101. package/dist/shared/text-signals.js +80 -0
  102. package/dist/shared/text-signals.js.map +1 -0
  103. package/dist/shared/types.d.ts +1 -1
  104. package/dist/shared/types.d.ts.map +1 -1
  105. package/dist/shared/types.js.map +1 -1
  106. package/package.json +4 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/dashboard/issues.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAC;AAoLzE,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,MAAM,EACN,IAAI,EACJ,SAAS,GACV,EAAE;IACD,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;CACpB,+BAwEA"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { TabLink } from "./chrome";
3
+ import { border, card, divider, labelCls as label } from "./ui";
4
+ /** "3 Aug", or "3 Aug 2024" once it's from another year. */
5
+ function shortDate(ms) {
6
+ const d = new Date(ms);
7
+ const sameYear = d.getFullYear() === new Date().getFullYear();
8
+ return d.toLocaleDateString("en-GB", {
9
+ day: "numeric",
10
+ month: "short",
11
+ ...(sameYear ? {} : { year: "numeric" }),
12
+ });
13
+ }
14
+ /** Coarse relative age — "2d ago" — for the meta line. */
15
+ function timeAgo(ms) {
16
+ const delta = Date.now() - ms;
17
+ if (delta < 60_000)
18
+ return "just now";
19
+ const mins = Math.floor(delta / 60_000);
20
+ if (mins < 60)
21
+ return `${mins}m ago`;
22
+ const hours = Math.floor(mins / 60);
23
+ if (hours < 24)
24
+ return `${hours}h ago`;
25
+ const days = Math.floor(hours / 24);
26
+ if (days < 30)
27
+ return `${days}d ago`;
28
+ return shortDate(ms);
29
+ }
30
+ function Stat({ label: labelText, value, tone = "text-white", }) {
31
+ return (_jsxs("div", { className: `${card} px-4 py-4`, children: [_jsx("div", { className: `text-[28px] font-semibold tabular-nums leading-none ${tone}`, children: value.toLocaleString() }), _jsx("div", { className: `mt-2 ${label}`, children: labelText })] }));
32
+ }
33
+ /** Open / closed / unreadable — the one thing you look for per row. */
34
+ function StatePill({ detail }) {
35
+ if (!detail) {
36
+ return (_jsx("span", { className: "shrink-0 rounded-full bg-[#1a1a1a] px-2 py-0.5 text-[10px] font-medium text-[#666]", children: "\u25CB unreadable" }));
37
+ }
38
+ if (detail.state === "open") {
39
+ return (_jsx("span", { className: "shrink-0 rounded-full bg-emerald-950 px-2 py-0.5 text-[10px] font-medium text-emerald-400", children: "\u25CF open" }));
40
+ }
41
+ const notPlanned = detail.stateReason === "not_planned";
42
+ return (_jsx("span", { className: `shrink-0 rounded-full px-2 py-0.5 text-[10px] font-medium ${notPlanned ? "bg-[#1a1a1a] text-[#888]" : "bg-[#1e132b] text-[#b083f0]"}`, children: notPlanned ? "✕ not planned" : "✓ closed" }));
43
+ }
44
+ function Chip({ children, tone = "text-[#888]" }) {
45
+ return (_jsx("span", { className: `max-w-full break-all rounded border border-[#2e2e2e] px-1.5 py-0.5 text-[10px] font-medium ${tone}`, children: children }));
46
+ }
47
+ /** The dot-separated facts under a row's title, in the order they matter. */
48
+ function metaLine(issue) {
49
+ const { detail } = issue;
50
+ const opened = detail?.createdAt ?? issue.filedAt;
51
+ const bits = [];
52
+ if (opened)
53
+ bits.push(`opened ${timeAgo(opened)}`);
54
+ if (detail?.author)
55
+ bits.push(`by ${detail.author}`);
56
+ if (detail?.closedAt)
57
+ bits.push(`closed ${timeAgo(detail.closedAt)}`);
58
+ // An "updated" that is really just the moment it was filed says nothing.
59
+ else if (detail && detail.updatedAt > (opened ?? 0) + 60_000) {
60
+ bits.push(`updated ${timeAgo(detail.updatedAt)}`);
61
+ }
62
+ if (detail && detail.comments > 0) {
63
+ bits.push(`${detail.comments} ${detail.comments === 1 ? "comment" : "comments"}`);
64
+ }
65
+ if (detail && detail.assignees.length > 0) {
66
+ bits.push(`assigned to ${detail.assignees.join(", ")}`);
67
+ }
68
+ return bits.join(" · ");
69
+ }
70
+ function IssueRow({ issue, repo }) {
71
+ const { detail } = issue;
72
+ const title = detail?.title ?? issue.claim ?? `Issue #${issue.number}`;
73
+ return (_jsxs("div", { className: `px-4 py-4 sm:px-5 ${divider} first:border-t-0`, children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("a", { href: issue.url, target: "_blank", rel: "noreferrer noopener", className: "text-[14px] font-medium leading-snug text-white hover:text-[#8ab4f8]", children: [_jsxs("span", { className: "mr-1.5 font-mono text-[12px] tabular-nums text-[#666]", children: ["#", issue.number] }), title] }), _jsx("p", { className: "mt-1.5 text-[11px] leading-snug text-[#666]", children: metaLine(issue) })] }), _jsx(StatePill, { detail: detail })] }), _jsxs("div", { className: "mt-2.5 flex flex-wrap items-center gap-1.5", children: [_jsxs(Chip, { tone: "text-[#aaa]", children: [_jsx("span", { className: "text-[#666]", children: "evidence" }), " ", _jsx("span", { className: "font-mono", children: issue.evidence })] }), issue.verdict === "confirmed" && (_jsx(Chip, { tone: "text-emerald-500", children: "verified against source" })), issue.verdict === "inconclusive" && (_jsx(Chip, { tone: "text-[#f5a623]", children: "filed unverified" })), (detail?.labels ?? []).map((l) => (_jsx(Chip, { children: l }, l)))] }), issue.claim && issue.claim !== title && (_jsxs("p", { className: "mt-2.5 text-[12px] leading-relaxed text-[#888]", children: [_jsx("span", { className: label, children: "Reported as" }), " ", _jsx("span", { className: "text-[#aaa]", children: issue.claim })] })), detail ? (detail.body.trim().length > 0 && (_jsxs("details", { className: "group mt-2.5", children: [_jsxs("summary", { className: "cursor-pointer list-none text-[11px] font-medium text-[#888] transition-colors hover:text-white [&::-webkit-details-marker]:hidden", children: [_jsx("span", { className: "group-open:hidden", children: "Show issue body \u2193" }), _jsx("span", { className: "hidden group-open:inline", children: "Hide issue body \u2191" })] }), _jsx("div", { className: "mt-2 max-h-96 overflow-y-auto rounded-md border border-[#2e2e2e] bg-[#111] px-3 py-2.5", children: _jsx("pre", { className: "whitespace-pre-wrap break-words font-mono text-[11px] leading-relaxed text-[#aaa]", children: detail.body }) })] }))) : (_jsxs("p", { className: "mt-2.5 text-[12px] leading-relaxed text-[#777]", children: ["Polishd filed this issue", issue.filedAt ? ` on ${shortDate(issue.filedAt)}` : "", ", but GitHub won't return it now \u2014 it was deleted or transferred, or the access token no longer covers", repo ? ` ${repo}` : " the repository", "."] }))] }));
74
+ }
75
+ export default function IssuesView({ issues, repo, connected, }) {
76
+ const open = issues.filter((i) => i.detail?.state === "open").length;
77
+ const closed = issues.filter((i) => i.detail?.state === "closed").length;
78
+ const verified = issues.filter((i) => i.verdict === "confirmed").length;
79
+ 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: "Issues" }), _jsx("p", { className: "mt-1 text-[13px] text-[#666]", children: "Bugs polishd filed from your analytics \u2014 each one traced back to the behavior that found it, and shown as your tracker has it now." })] }), repo && (_jsxs("a", { href: `https://github.com/${repo}/issues`, target: "_blank", rel: "noreferrer noopener", className: "shrink-0 whitespace-nowrap rounded-full bg-[#141414] px-3 py-1 font-mono text-[11px] text-[#888] transition-colors hover:text-white", children: [repo, " \u2197"] }))] }), !connected ? (_jsxs("div", { className: `${card} px-5 py-8 text-center`, children: [_jsx("p", { className: "text-[13px] text-[#888]", children: "No GitHub repository is connected." }), _jsx("p", { className: "mx-auto mt-1.5 max-w-md text-[12px] leading-relaxed text-[#666]", children: "Connect one in the settings and polishd can verify the problems it finds against your source and file them as issues \u2014 which is what this tab lists." }), _jsx(TabLink, { tab: "settings", className: "mt-4 inline-block rounded-md border border-[#2e2e2e] px-3 py-1.5 text-[12px] text-[#aaa] transition-colors hover:border-[#555] hover:text-white", children: "Open settings" })] })) : (_jsxs(_Fragment, { children: [_jsx("section", { className: "mb-8", children: _jsxs("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-4", children: [_jsx(Stat, { label: "Filed by polishd", value: issues.length }), _jsx(Stat, { label: "Open", value: open, tone: "text-emerald-400" }), _jsx(Stat, { label: "Closed", value: closed }), _jsx(Stat, { label: "Verified against source", value: verified })] }) }), _jsxs("section", { className: "mb-8", children: [_jsx("div", { className: `mb-3 ${label}`, children: "Filed issues" }), _jsx("div", { className: card, children: issues.length === 0 ? (_jsx("p", { className: "px-5 py-8 text-center text-[13px] text-[#555]", children: "Nothing filed yet. Problems the summary finds on the Analytics tab carry a \u201CFile bug\u201D button \u2014 anything filed from there, or automatically, lands here." })) : (issues.map((issue) => (_jsx(IssueRow, { issue: issue, repo: repo }, issue.evidence)))) })] })] }))] }));
80
+ }
81
+ //# sourceMappingURL=issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.js","sourceRoot":"","sources":["../../src/dashboard/issues.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"journeys.d.ts","sourceRoot":"","sources":["../../src/dashboard/journeys.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAwVrE,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,+BAwB/E"}
1
+ {"version":3,"file":"journeys.d.ts","sourceRoot":"","sources":["../../src/dashboard/journeys.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAyVrE,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;CAAE,+BAwB/E"}
@@ -90,6 +90,7 @@ const STEP_STYLE = {
90
90
  },
91
91
  session_end: { dot: "bg-[#666]", verb: "Left the site", verbTone: "text-[#888]" },
92
92
  // Non-action types never reach the flow chart, but the map must be total.
93
+ text_click: { dot: "bg-[#444]", verb: "Clicked text", verbTone: "text-[#888]" },
93
94
  scroll_depth: { dot: "bg-[#444]", verb: "Scrolled", verbTone: "text-[#888]" },
94
95
  viewport: { dot: "bg-[#444]", verb: "Viewport", verbTone: "text-[#888]" },
95
96
  web_vital: { dot: "bg-[#444]", verb: "Web vital", verbTone: "text-[#888]" },
@@ -1 +1 @@
1
- {"version":3,"file":"journeys.js","sourceRoot":"","sources":["../../src/dashboard/journeys.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"journeys.js","sourceRoot":"","sources":["../../src/dashboard/journeys.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { MetricTrends, OverviewStats } from "../server/queries";
2
+ export default function OverviewTiles({ overview, trends, }: {
3
+ overview: OverviewStats;
4
+ trends: MetricTrends;
5
+ }): import("react").JSX.Element;
6
+ //# sourceMappingURL=metric-trends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-trends.d.ts","sourceRoot":"","sources":["../../src/dashboard/metric-trends.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EAEd,MAAM,mBAAmB,CAAC;AA0F3B,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,YAAY,CAAC;CACtB,+BA8DA"}
@@ -0,0 +1,236 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ /**
4
+ * Polishd — the Overview tiles and the metric charts they open (client).
5
+ *
6
+ * The six numbers at the top of the Analytics tab are all-time totals, which
7
+ * answer "how much" and never "when". Every tile is now a button: clicking one
8
+ * opens a bottom drawer with that metric bucketed over time, so "142 sessions"
9
+ * becomes "40 of them on Tuesday, none since".
10
+ *
11
+ * All six series ride down from the server together (see `getMetricTrends`),
12
+ * at both granularities, so switching metric or switching hourly/daily is
13
+ * instant and costs no round trip. Buckets are UTC — the labels are rendered
14
+ * server-side, and a local-timezone label would follow wherever the server
15
+ * runs rather than wherever the reader is.
16
+ */
17
+ import { useState } from "react";
18
+ import BottomDrawer, { DrawerHeader } from "./drawer";
19
+ import { InfoTip, card, labelCls, yScale } from "./ui";
20
+ const METRICS = [
21
+ {
22
+ key: "sessions",
23
+ label: "Sessions",
24
+ tip: "Distinct anonymous visitors, counted by the polishd_session cookie. One cookie = one session; no fingerprinting. Click for sessions over time.",
25
+ tone: "text-white",
26
+ accent: "#3b82f6",
27
+ additive: false,
28
+ unit: ["session", "sessions"],
29
+ },
30
+ {
31
+ key: "pageViews",
32
+ label: "Page views",
33
+ tip: "page_view events — initial page loads plus client-side (soft) navigations between routes. Click for page views over time.",
34
+ tone: "text-white",
35
+ accent: "#3b82f6",
36
+ additive: true,
37
+ unit: ["page view", "page views"],
38
+ },
39
+ {
40
+ key: "rageClicks",
41
+ label: "Rage clicks",
42
+ tip: "3+ clicks on the same element within 500ms. A strong signal of frustration — something looks clickable or is broken. Double/triple-clicks that select text don't count. Click for rage clicks over time.",
43
+ tone: "text-red-500",
44
+ accent: "#ef4444",
45
+ additive: true,
46
+ unit: ["rage click", "rage clicks"],
47
+ },
48
+ {
49
+ key: "deadClicks",
50
+ label: "Dead clicks",
51
+ tip: "Clicks on non-interactive elements (no link, button, or role within 4 ancestors). Users expected something to happen but nothing did. Clicks on text are excluded — that's reading, not confusion. Click for dead clicks over time.",
52
+ tone: "text-[#f5a623]",
53
+ accent: "#f5a623",
54
+ additive: true,
55
+ unit: ["dead click", "dead clicks"],
56
+ },
57
+ {
58
+ key: "jsErrors",
59
+ label: "JS errors",
60
+ tip: "Uncaught exceptions and unhandled promise rejections, with page and component context. Click for errors over time.",
61
+ tone: "text-red-500",
62
+ accent: "#ef4444",
63
+ additive: true,
64
+ unit: ["error", "errors"],
65
+ },
66
+ {
67
+ key: "totalEvents",
68
+ label: "Events",
69
+ tip: "Total raw signals captured across all event types. Click for events over time.",
70
+ tone: "text-white",
71
+ accent: "#3b82f6",
72
+ additive: true,
73
+ unit: ["event", "events"],
74
+ },
75
+ ];
76
+ const GRAN_LABEL = { hour: "Hourly", day: "Daily" };
77
+ const GRAN_UNIT = {
78
+ hour: ["hour", "hours"],
79
+ day: ["day", "days"],
80
+ };
81
+ const plural = (n, [one, many]) => `${n} ${n === 1 ? one : many}`;
82
+ // ── The tile grid ────────────────────────────────────────────────────────────
83
+ export default function OverviewTiles({ overview, trends, }) {
84
+ // Daily is the better default once there's more than a day of history;
85
+ // before that it's a single bar, and hourly is the only shape worth drawing.
86
+ const [gran, setGran] = useState(trends.day.length >= 2 || trends.hour.length === 0 ? "day" : "hour");
87
+ const [open, setOpen] = useState(null);
88
+ const series = trends[gran];
89
+ const metric = METRICS.find((m) => m.key === open) ?? null;
90
+ const hasTrend = trends.day.length > 0 || trends.hour.length > 0;
91
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "grid grid-cols-2 gap-3 sm:grid-cols-3 lg:grid-cols-6", children: METRICS.map((m) => (_jsx(StatTile, { meta: m, value: overview[m.key], spark: hasTrend ? series.map((p) => p[m.key]) : [], onOpen: hasTrend ? () => setOpen(m.key) : null }, m.key))) }), _jsx(BottomDrawer, { open: metric !== null, onClose: () => setOpen(null), label: metric ? `${metric.label} over time` : "Metric over time", children: metric && (_jsxs(_Fragment, { children: [_jsx(DrawerHeader, { eyebrow: "Over time", title: _jsx("h3", { className: "text-[16px] font-semibold text-white", children: metric.label }), onClose: () => setOpen(null), children: _jsx(GranularityToggle, { value: gran, trends: trends, onChange: setGran }) }), _jsx(MetricPicker, { value: metric.key, onChange: setOpen }), _jsx(MetricChart, { meta: metric, gran: gran, points: series }, `${metric.key}-${gran}`), _jsx(ChartMeta, { meta: metric, gran: gran, points: series, allTime: overview[metric.key] })] })) })] }));
92
+ }
93
+ /**
94
+ * One stat tile. A button rather than a div, because it opens something — the
95
+ * sparkline is the hint that there's a shape behind the number.
96
+ *
97
+ * When there's no series at all (empty store, or nothing captured yet) it
98
+ * renders as the plain card it has always been: an empty drawer would be a
99
+ * worse answer than no drawer.
100
+ */
101
+ function StatTile({ meta, value, spark, onOpen, }) {
102
+ const body = (_jsxs(_Fragment, { children: [_jsx("div", { className: `text-[28px] font-semibold tabular-nums leading-none ${meta.tone}`, children: value.toLocaleString() }), _jsxs("div", { className: `mt-2 flex items-center ${labelCls}`, children: [meta.label, _jsx(InfoTip, { text: meta.tip })] }), _jsx(Sparkline, { values: spark, accent: meta.accent })] }));
103
+ if (!onOpen)
104
+ return _jsx("div", { className: `${card} px-4 py-4`, children: body });
105
+ return (_jsx("button", { type: "button", "data-component": "metric-tile", onClick: onOpen, "aria-label": `${meta.label}: ${value.toLocaleString()} — open the chart over time`, className: `${card} group px-4 py-4 text-left transition-colors hover:border-[#555] focus:border-[#555] focus:outline-none`, children: body }));
106
+ }
107
+ /** The shape of the number, at tile size. Flat or empty series draw nothing. */
108
+ function Sparkline({ values, accent }) {
109
+ const peak = Math.max(...values, 0);
110
+ if (values.length < 2 || peak === 0)
111
+ return _jsx("div", { className: "mt-3 h-[18px]" });
112
+ const W = 60;
113
+ const H = 18;
114
+ const step = W / (values.length - 1);
115
+ const d = values
116
+ .map((v, i) => `${i === 0 ? "M" : "L"}${(i * step).toFixed(2)},${(H - (v / peak) * H).toFixed(2)}`)
117
+ .join(" ");
118
+ return (_jsxs("svg", { viewBox: `0 0 ${W} ${H}`, preserveAspectRatio: "none", className: "mt-3 h-[18px] w-full opacity-60 transition-opacity group-hover:opacity-100", "aria-hidden": true, children: [_jsx("path", { d: `${d} L${W},${H} L0,${H} Z`, fill: accent, fillOpacity: "0.12", vectorEffect: "non-scaling-stroke" }), _jsx("path", { d: d, fill: "none", stroke: accent, strokeWidth: "1.25", strokeLinejoin: "round", vectorEffect: "non-scaling-stroke" })] }));
119
+ }
120
+ // ── Drawer controls ──────────────────────────────────────────────────────────
121
+ const chip = "rounded-md px-2 py-1 text-[11px] font-medium transition-colors disabled:cursor-not-allowed disabled:opacity-30";
122
+ function GranularityToggle({ value, trends, onChange, }) {
123
+ return (_jsx("div", { className: "flex items-center gap-0.5 rounded-lg border border-[#2e2e2e] p-0.5", role: "group", "aria-label": "Bucket size", children: ["hour", "day"].map((g) => (_jsx("button", { type: "button", "data-component": "metric-granularity", onClick: () => onChange(g), disabled: trends[g].length === 0, "aria-pressed": value === g, title: trends[g].length === 0
124
+ ? `No ${GRAN_UNIT[g][1]} of data yet`
125
+ : `Bucket by ${GRAN_UNIT[g][0]}`, className: `${chip} ${value === g ? "bg-white text-black" : "text-[#888] hover:text-white"}`, children: GRAN_LABEL[g] }, g))) }));
126
+ }
127
+ /** Switch series without closing the drawer — all six are already loaded. */
128
+ function MetricPicker({ value, onChange, }) {
129
+ return (_jsx("div", { className: "mb-4 flex flex-wrap gap-1.5", children: METRICS.map((m) => (_jsxs("button", { type: "button", "data-component": "metric-switch", onClick: () => onChange(m.key), "aria-pressed": value === m.key, className: `${chip} border ${value === m.key
130
+ ? "border-[#555] bg-[#161616] text-white"
131
+ : "border-[#222] text-[#777] hover:border-[#3a3a3a] hover:text-[#ccc]"}`, children: [_jsx("span", { className: "mr-1.5 inline-block h-1.5 w-1.5 rounded-full align-middle", style: { backgroundColor: value === m.key ? m.accent : "#3a3a3a" } }), m.label] }, m.key))) }));
132
+ }
133
+ // ── The chart ────────────────────────────────────────────────────────────────
134
+ const W = 720;
135
+ const H = 240;
136
+ const PAD_L = 44;
137
+ const PAD_R = 14;
138
+ const PAD_T = 16;
139
+ const PAD_B = 34;
140
+ const PLOT_W = W - PAD_L - PAD_R;
141
+ const PLOT_H = H - PAD_T - PAD_B;
142
+ /**
143
+ * Bars, not a line: each bucket is a count of things that happened inside a
144
+ * window, and a line between two counts implies values in between that were
145
+ * never measured. Zero-height bars are left as gridline-level ticks so a quiet
146
+ * hour reads as measured-and-empty rather than missing.
147
+ *
148
+ * Interaction is one transparent overlay rather than per-bar handlers: pointer
149
+ * position maps straight to a bucket index, so the reader gets a value
150
+ * anywhere along the plot instead of only when they land on a thin bar. Arrow
151
+ * keys walk the same index for anyone not using a pointer.
152
+ */
153
+ function MetricChart({ meta, gran, points, }) {
154
+ const [active, setActive] = useState(null);
155
+ if (points.length === 0) {
156
+ return (_jsxs("p", { className: `${card} px-5 py-10 text-center text-[13px] text-[#555]`, children: ["No ", GRAN_UNIT[gran][0], "-level data yet."] }));
157
+ }
158
+ const values = points.map((p) => p[meta.key]);
159
+ const peak = Math.max(...values, 1);
160
+ const { top, ticks } = yScale(peak);
161
+ const n = points.length;
162
+ const slot = PLOT_W / n;
163
+ const barW = Math.min(slot * 0.62, 28);
164
+ const xFor = (i) => PAD_L + slot * (i + 0.5);
165
+ const yFor = (v) => PAD_T + PLOT_H - (v / top) * PLOT_H;
166
+ // At most ~8 axis labels, so 48 hourly buckets don't collide into a smear.
167
+ const labelStep = Math.max(1, Math.ceil(n / 8));
168
+ const showLabel = (i) => i === n - 1 || (n - 1 - i) % labelStep === 0;
169
+ const pointerIndex = (e) => {
170
+ const rect = e.currentTarget.getBoundingClientRect();
171
+ if (rect.width === 0)
172
+ return null;
173
+ const x = ((e.clientX - rect.left) / rect.width) * W;
174
+ const i = Math.floor((x - PAD_L) / slot);
175
+ return i < 0 || i >= n ? null : i;
176
+ };
177
+ const move = (delta) => setActive((cur) => {
178
+ const next = (cur === null ? n - 1 : cur) + delta;
179
+ return Math.min(Math.max(next, 0), n - 1);
180
+ });
181
+ const onKeyDown = (e) => {
182
+ if (e.key === "ArrowLeft")
183
+ move(-1);
184
+ else if (e.key === "ArrowRight")
185
+ move(1);
186
+ else if (e.key === "Home")
187
+ setActive(0);
188
+ else if (e.key === "End")
189
+ setActive(n - 1);
190
+ else
191
+ return;
192
+ e.preventDefault();
193
+ };
194
+ const hovered = active === null ? null : points[active];
195
+ // Keep the tooltip inside the card at both ends of the axis.
196
+ const tipPct = active === null ? 50 : Math.min(Math.max((xFor(active) / W) * 100, 12), 88);
197
+ return (
198
+ // `pt-9` reserves a band above the plot for the readout. Floating it over
199
+ // the bars instead would put it on top of whichever bar is tallest — which
200
+ // is the one most worth looking at.
201
+ _jsxs("div", { className: "relative pt-9", children: [_jsx("div", { role: "status", "aria-live": "polite", className: `pointer-events-none absolute inset-x-0 top-0 h-7 transition-opacity duration-100 ${hovered ? "opacity-100" : "opacity-0"}`, children: _jsx("span", { className: "absolute -translate-x-1/2 whitespace-nowrap rounded-md border border-[#2e2e2e] bg-[#111] px-2.5 py-1.5 text-[12px] shadow-xl", style: { left: `${tipPct}%` }, children: hovered && (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-[#888]", children: hovered.title }), _jsx("span", { className: "mx-1.5 text-[#444]", children: "\u00B7" }), _jsx("span", { className: "font-semibold tabular-nums text-white", children: plural(hovered[meta.key], meta.unit) })] })) }) }), _jsx("div", { className: `${card} px-2 pb-2 pt-3 focus-within:border-[#555]`, children: _jsxs("svg", { viewBox: `0 0 ${W} ${H}`, className: "w-full focus:outline-none", tabIndex: 0, role: "img", "aria-label": `${meta.label} per ${GRAN_UNIT[gran][0]}, ${plural(n, GRAN_UNIT[gran])} ending ${points[n - 1].title}. Use the arrow keys to read individual buckets.`, onPointerMove: (e) => setActive(pointerIndex(e)), onPointerDown: (e) => setActive(pointerIndex(e)), onPointerLeave: () => setActive(null),
202
+ // A touch drag that turns into a page scroll cancels the pointer
203
+ // without ever leaving the element, which would strand the readout.
204
+ onPointerCancel: () => setActive(null), onKeyDown: onKeyDown, onBlur: () => setActive(null), children: [ticks.map((t) => (_jsxs("g", { children: [_jsx("line", { x1: PAD_L, y1: yFor(t), x2: W - PAD_R, y2: yFor(t), stroke: "#1c1c1c", strokeWidth: 1 }), _jsx("text", { x: PAD_L - 8, y: yFor(t) + 3.5, textAnchor: "end", fontSize: 10, fill: "#666", className: "tabular-nums", children: t.toLocaleString() })] }, t))), points.map((p, i) => {
205
+ const v = p[meta.key];
206
+ const y = yFor(v);
207
+ // A measured zero still gets a hairline, so it reads as "none here"
208
+ // rather than as a bucket that was never recorded.
209
+ const h = Math.max(PAD_T + PLOT_H - y, v === 0 ? 1 : 2);
210
+ return (_jsx("rect", { x: xFor(i) - barW / 2, y: PAD_T + PLOT_H - h, width: barW, height: h, rx: Math.min(2, barW / 3), fill: v === 0 ? "#2a2a2a" : meta.accent, fillOpacity: active === null || active === i ? 1 : 0.45 }, p.ts));
211
+ }), points.map((p, i) => showLabel(i) ? (_jsx("text", { x: xFor(i), y: H - 12, textAnchor: "middle", fontSize: 10, fill: active === i ? "#ccc" : "#666", children: p.label }, p.ts)) : null), active !== null && (_jsx("line", { x1: xFor(active), y1: PAD_T, x2: xFor(active), y2: PAD_T + PLOT_H, stroke: "#555", strokeWidth: 1, strokeDasharray: "3 3" }))] }) })] }));
212
+ }
213
+ /**
214
+ * What the chart adds up to. The all-time tile and a capped window disagree by
215
+ * design, so the difference is stated rather than left for the reader to spot.
216
+ */
217
+ function ChartMeta({ meta, gran, points, allTime, }) {
218
+ if (points.length === 0)
219
+ return null;
220
+ const values = points.map((p) => p[meta.key]);
221
+ const total = values.reduce((a, b) => a + b, 0);
222
+ const peak = Math.max(...values);
223
+ const peakAt = points[values.indexOf(peak)];
224
+ const avg = total / values.length;
225
+ const latest = values[values.length - 1];
226
+ const unit = GRAN_UNIT[gran][0];
227
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "mt-4 grid grid-cols-2 gap-px overflow-hidden rounded-lg border border-[#2e2e2e] bg-[#2e2e2e] sm:grid-cols-4", children: [meta.additive ? (_jsx(Cell, { label: `Total (${plural(points.length, GRAN_UNIT[gran])})`, value: total.toLocaleString() })) : (_jsx(Cell, { label: `Busiest ${unit}`, value: peakAt.title, small: true })), _jsx(Cell, { label: `Peak / ${unit}`, value: peak.toLocaleString() }), _jsx(Cell, { label: `Average / ${unit}`, value: avg >= 10 ? Math.round(avg).toLocaleString() : avg.toFixed(1) }), _jsx(Cell, { label: `Latest ${unit}`, value: latest.toLocaleString() })] }), _jsxs("p", { className: "mt-3 text-[11px] leading-relaxed text-[#555]", children: [meta.additive && total < allTime
228
+ ? `The tile counts all time (${allTime.toLocaleString()}); this chart covers the last ${plural(points.length, GRAN_UNIT[gran])} of activity. `
229
+ : "", !meta.additive
230
+ ? "Buckets aren't summed here — a visitor active across several buckets is counted in each, so a total would count them more than once. "
231
+ : "", "Buckets start at the UTC ", unit, "."] })] }));
232
+ }
233
+ function Cell({ label, value, small }) {
234
+ return (_jsxs("div", { className: "bg-[#0a0a0a] px-4 py-3", children: [_jsx("div", { className: labelCls, children: label }), _jsx("div", { className: `mt-1 font-semibold tabular-nums text-white ${small ? "text-[13px]" : "text-[16px]"}`, children: value })] }));
235
+ }
236
+ //# sourceMappingURL=metric-trends.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metric-trends.js","sourceRoot":"","sources":["../../src/dashboard/metric-trends.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/dashboard/pages.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AA+SjE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,+BAwCpE"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../src/dashboard/pages.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAiNjE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,EAAE,CAAA;CAAE,+BAwCpE"}
@@ -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,23 +53,7 @@ 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 }) {
@@ -99,6 +61,6 @@ function PageRow({ page, onOpen }) {
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":"AAAA,YAAY,CAAC;;AAEb;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI5C,MAAM,MAAM,GAAG,kBAAkB,CAAC;AAClC,MAAM,IAAI,GAAG,UAAU,MAAM,0BAA0B,CAAC;AACxD,MAAM,OAAO,GAAG,YAAY,MAAM,EAAE,CAAC;AACrC,MAAM,QAAQ,GAAG,iEAAiE,CAAC;AAEnF,kFAAkF;AAClF,SAAS,OAAO,CAAC,EACf,IAAI,EACJ,MAAM,GAAG,OAAO,EAChB,KAAK,GAAG,KAAK,GAKd;IACC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAC5D,OAAO,CACL,gBAAM,SAAS,EAAC,6EAA6E,aAC3F,eAAM,SAAS,EAAC,8HAA8H,kBAEvI,EACP,eACE,IAAI,EAAC,SAAS,EACd,SAAS,EAAE,gCAAgC,MAAM,IAC/C,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SACjC,oQAAoQ,YAEnQ,IAAI,GACA,IACF,CACR,CAAC;AACJ,CAAC;AAED,SAAS,EAAE,CAAC,EACV,QAAQ,EACR,GAAG,EACH,KAAK,GAAG,OAAO,GAKhB;IACC,OAAO,CACL,aACE,SAAS,EAAE,4BACT,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAC7C,IAAI,QAAQ,EAAE,YAEd,gBAAM,SAAS,EAAC,kCAAkC,aAC/C,QAAQ,EACT,KAAC,OAAO,IAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,SAAG,IACpE,GACJ,CACN,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAmD;IACvF,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACrC,cAAK,SAAS,EAAE,QAAQ,YAAG,KAAK,GAAO,EACvC,cAAK,SAAS,EAAE,+CAA+C,IAAI,IAAI,YAAY,EAAE,YAClF,KAAK,GACF,IACF,CACP,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAqB;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,OAAO,CACL,eACE,SAAS,EAAE,6DAA6D,MAAM,8BAA8B,aAE5G,KAAC,QAAQ,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAI,EAC3D,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAI,EAC9D,KAAC,QAAQ,IAAC,KAAK,EAAC,iBAAiB,EAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAI,EACvE,KAAC,QAAQ,IAAC,KAAK,EAAC,YAAY,EAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,GAAI,EACvD,KAAC,QAAQ,IACP,KAAK,EAAC,YAAY,EAClB,KAAK,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,GACrE,EACF,KAAC,QAAQ,IACP,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,GAC1D,EACF,KAAC,QAAQ,IACP,KAAK,EAAC,aAAa,EACnB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAC9B,IAAI,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,GAC5D,EACF,KAAC,QAAQ,IACP,KAAK,EAAC,WAAW,EACjB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,GACxD,IACE,CACP,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,wDAAwD;AACxD,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,uBAAuB;IACzC,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,KAAK,EAA+B;IAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,YAAG,SAAS,EAAC,0CAA0C,qCAAyB,CAAC;IAC1F,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAEpC,uEAAuE;IACvE,MAAM,CAAC,GAAG,GAAG,CAAC;IACd,MAAM,CAAC,GAAG,GAAG,CAAC;IACd,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAEvB,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;IACxF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;IAE7D,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpF,kDAAkD;IAClD,MAAM,QAAQ,GAAG,GAAG,QAAQ,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9F,qDAAqD;IACrD,MAAM,SAAS,GAAG,CAAC,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;IAE/E,OAAO,CACL,wBACE,eAAK,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,gBAAY,oBAAoB,aAC1F,yBACE,0BAAgB,EAAE,EAAC,cAAc,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,aAC3D,eAAM,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,MAAM,GAAG,EAC3D,eAAM,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,SAAS,EAAC,WAAW,EAAC,GAAG,GAAG,IAC3C,GACZ,EAGN,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,wBACE,eACE,EAAE,EAAE,IAAI,EACR,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,EAAE,EAAE,CAAC,GAAG,IAAI,EACZ,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,EACX,MAAM,EAAC,SAAS,EAChB,WAAW,EAAE,CAAC,GACd,EACF,eACE,CAAC,EAAE,IAAI,GAAG,CAAC,EACX,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,EAChB,UAAU,EAAC,KAAK,EAChB,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,cAAc,YAEvB,CAAC,GACG,KAlBD,CAAC,CAmBL,CACL,CAAC,EAGF,eAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,oBAAoB,GAAG,EAC/C,eAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,EAAE,cAAc,EAAC,OAAO,GAAG,EAGxF,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACjB,wBACE,iBAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,YAC5E,4BACG,CAAC,CAAC,KAAK,QAAI,CAAC,CAAC,QAAQ,OAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,IAC5D,GACD,EACR,SAAS,CAAC,CAAC,CAAC,IAAI,CACf,eAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,YAClE,CAAC,CAAC,KAAK,GACH,CACR,KAVK,CAAC,CAAC,EAAE,CAWR,CACL,CAAC,IACE,GACF,CACP,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAiD;IAClF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC;QACpC,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAEpB,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IAE3B,OAAO,CACL,eAAK,SAAS,EAAE,sBAAsB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,iBAAe,CAAC,IAAI,aAE3F,cACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,gEACT,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WACzB,EAAE,GACF,EAEF,cACE,SAAS,EAAE,0EACT,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,kBAC3B,EAAE,YAEF,cACE,IAAI,EAAC,QAAQ,gBACF,MAAM,gBACN,yBAAyB,EACpC,SAAS,EAAE,sEAAsE,MAAM,iEAAiE,YAEvJ,IAAI,IAAI,CACP,8BAEE,cAAK,SAAS,EAAC,iDAAiD,GAAG,EAEnE,eAAK,SAAS,EAAC,6CAA6C,aAC1D,0BACE,cAAK,SAAS,EAAE,QAAQ,qBAAY,EACpC,aAAI,SAAS,EAAC,uCAAuC,YAAE,IAAI,CAAC,IAAI,GAAM,IAClE,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,gBACL,OAAO,EAClB,SAAS,EAAC,qJAAqJ,uBAGxJ,IACL,EACN,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,GAAI,EACxB,cAAK,SAAS,EAAE,aAAa,QAAQ,EAAE,mCAA0B,EACjE,KAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAI,IACnC,CACJ,GACG,GACF,IACF,CACP,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAyC;IACtE,OAAO,CACL,gCACiB,WAAW,EAC1B,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,wBAAwB,OAAO,oCAAoC,aAE9E,aAAI,SAAS,EAAC,kBAAkB,YAC9B,eAAM,SAAS,EAAC,0DAA0D,YAAE,IAAI,CAAC,IAAI,GAAQ,GAC1F,EACL,aAAI,SAAS,EAAC,0EAA0E,YACrF,IAAI,CAAC,QAAQ,GACX,EACL,aAAI,SAAS,EAAC,6DAA6D,YAAE,IAAI,CAAC,SAAS,GAAM,EACjG,aAAI,SAAS,EAAC,6DAA6D,YAAE,IAAI,CAAC,UAAU,GAAM,EAClG,aAAI,SAAS,EAAC,6DAA6D,YAAE,IAAI,CAAC,UAAU,GAAM,EAClG,aAAI,SAAS,EAAC,6DAA6D,YAAE,IAAI,CAAC,QAAQ,GAAM,EAChG,aAAI,SAAS,EAAC,kEAAkE,YAC9E,eAAM,SAAS,EAAC,yBAAyB,uBAAS,GAC/C,IACF,CACN,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,KAAK,EAAwB;IACnE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAE/D,OAAO,CACL,8BACE,cAAK,SAAS,EAAE,IAAI,YACjB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpB,YAAG,SAAS,EAAC,+CAA+C,iEAExD,CACL,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAC,iBAAiB,YAChC,iBAAO,SAAS,EAAC,sBAAsB,aACrC,0BACE,yBACE,KAAC,EAAE,IAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,uDAAuD,qBAEvE,EACL,KAAC,EAAE,IAAC,GAAG,EAAC,oEAAoE,yBAEvE,EACL,KAAC,EAAE,IAAC,GAAG,EAAC,oEAA+D,sBAAW,EAClF,KAAC,EAAE,IAAC,GAAG,EAAC,wDAAwD,qBAAU,EAC1E,KAAC,EAAE,IAAC,GAAG,EAAC,yDAAyD,qBAAU,EAC3E,KAAC,EAAE,IAAC,GAAG,EAAC,gCAAgC,uBAAY,EACpD,KAAC,EAAE,IAAC,GAAG,EAAC,oCAAoC,YAAE,EAAE,GAAM,IACnD,GACC,EACR,0BACG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAChB,KAAC,OAAO,IAAc,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,IAA7C,CAAC,CAAC,IAAI,CAA2C,CAChE,CAAC,GACI,IACF,GACF,CACP,GACG,EACN,KAAC,UAAU,IAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAI,IAC/D,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../src/dashboard/pages.tsx"],"names":[],"mappings":"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"}