@codeandink/payload-ink 0.0.7-alpha.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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +64 -0
  3. package/dist/audits/freshness.d.ts +11 -0
  4. package/dist/audits/freshness.d.ts.map +1 -0
  5. package/dist/audits/freshness.js +89 -0
  6. package/dist/audits/freshness.js.map +1 -0
  7. package/dist/audits/seo.d.ts +4 -0
  8. package/dist/audits/seo.d.ts.map +1 -0
  9. package/dist/audits/seo.js +128 -0
  10. package/dist/audits/seo.js.map +1 -0
  11. package/dist/client.d.ts +3 -0
  12. package/dist/client.d.ts.map +1 -0
  13. package/dist/client.js +18 -0
  14. package/dist/client.js.map +1 -0
  15. package/dist/collections/Actions.d.ts +3 -0
  16. package/dist/collections/Actions.d.ts.map +1 -0
  17. package/dist/collections/Actions.js +56 -0
  18. package/dist/collections/Actions.js.map +1 -0
  19. package/dist/collections/Audits.d.ts +3 -0
  20. package/dist/collections/Audits.d.ts.map +1 -0
  21. package/dist/collections/Audits.js +69 -0
  22. package/dist/collections/Audits.js.map +1 -0
  23. package/dist/collections/Insights.d.ts +3 -0
  24. package/dist/collections/Insights.d.ts.map +1 -0
  25. package/dist/collections/Insights.js +99 -0
  26. package/dist/collections/Insights.js.map +1 -0
  27. package/dist/collections/OnboardingProfile.d.ts +3 -0
  28. package/dist/collections/OnboardingProfile.d.ts.map +1 -0
  29. package/dist/collections/OnboardingProfile.js +174 -0
  30. package/dist/collections/OnboardingProfile.js.map +1 -0
  31. package/dist/components/AnalyticsPanel.d.ts +2 -0
  32. package/dist/components/AnalyticsPanel.d.ts.map +1 -0
  33. package/dist/components/AnalyticsPanel.js +151 -0
  34. package/dist/components/AnalyticsPanel.js.map +1 -0
  35. package/dist/components/AuditPanel.d.ts +4 -0
  36. package/dist/components/AuditPanel.d.ts.map +1 -0
  37. package/dist/components/AuditPanel.js +463 -0
  38. package/dist/components/AuditPanel.js.map +1 -0
  39. package/dist/components/AuditsPanel.d.ts +2 -0
  40. package/dist/components/AuditsPanel.d.ts.map +1 -0
  41. package/dist/components/AuditsPanel.js +229 -0
  42. package/dist/components/AuditsPanel.js.map +1 -0
  43. package/dist/components/DigestPanel.d.ts +2 -0
  44. package/dist/components/DigestPanel.d.ts.map +1 -0
  45. package/dist/components/DigestPanel.js +320 -0
  46. package/dist/components/DigestPanel.js.map +1 -0
  47. package/dist/components/FreshnessPanel.d.ts +4 -0
  48. package/dist/components/FreshnessPanel.d.ts.map +1 -0
  49. package/dist/components/FreshnessPanel.js +224 -0
  50. package/dist/components/FreshnessPanel.js.map +1 -0
  51. package/dist/components/InkGradeCell.d.ts +4 -0
  52. package/dist/components/InkGradeCell.d.ts.map +1 -0
  53. package/dist/components/InkGradeCell.js +32 -0
  54. package/dist/components/InkGradeCell.js.map +1 -0
  55. package/dist/components/OnboardingFlow.d.ts +2 -0
  56. package/dist/components/OnboardingFlow.d.ts.map +1 -0
  57. package/dist/components/OnboardingFlow.js +406 -0
  58. package/dist/components/OnboardingFlow.js.map +1 -0
  59. package/dist/components/index.d.ts +8 -0
  60. package/dist/components/index.d.ts.map +1 -0
  61. package/dist/components/index.js +18 -0
  62. package/dist/components/index.js.map +1 -0
  63. package/dist/endpoints/analytics.d.ts +9 -0
  64. package/dist/endpoints/analytics.d.ts.map +1 -0
  65. package/dist/endpoints/analytics.js +68 -0
  66. package/dist/endpoints/analytics.js.map +1 -0
  67. package/dist/endpoints/auditChanges.d.ts +9 -0
  68. package/dist/endpoints/auditChanges.d.ts.map +1 -0
  69. package/dist/endpoints/auditChanges.js +52 -0
  70. package/dist/endpoints/auditChanges.js.map +1 -0
  71. package/dist/endpoints/auditStatus.d.ts +6 -0
  72. package/dist/endpoints/auditStatus.d.ts.map +1 -0
  73. package/dist/endpoints/auditStatus.js +24 -0
  74. package/dist/endpoints/auditStatus.js.map +1 -0
  75. package/dist/endpoints/config.d.ts +8 -0
  76. package/dist/endpoints/config.d.ts.map +1 -0
  77. package/dist/endpoints/config.js +12 -0
  78. package/dist/endpoints/config.js.map +1 -0
  79. package/dist/endpoints/digestPreflight.d.ts +8 -0
  80. package/dist/endpoints/digestPreflight.d.ts.map +1 -0
  81. package/dist/endpoints/digestPreflight.js +79 -0
  82. package/dist/endpoints/digestPreflight.js.map +1 -0
  83. package/dist/endpoints/ga4Test.d.ts +8 -0
  84. package/dist/endpoints/ga4Test.d.ts.map +1 -0
  85. package/dist/endpoints/ga4Test.js +38 -0
  86. package/dist/endpoints/ga4Test.js.map +1 -0
  87. package/dist/endpoints/insights.d.ts +8 -0
  88. package/dist/endpoints/insights.d.ts.map +1 -0
  89. package/dist/endpoints/insights.js +53 -0
  90. package/dist/endpoints/insights.js.map +1 -0
  91. package/dist/endpoints/onboarding.d.ts +4 -0
  92. package/dist/endpoints/onboarding.d.ts.map +1 -0
  93. package/dist/endpoints/onboarding.js +64 -0
  94. package/dist/endpoints/onboarding.js.map +1 -0
  95. package/dist/endpoints/runAudit.d.ts +12 -0
  96. package/dist/endpoints/runAudit.d.ts.map +1 -0
  97. package/dist/endpoints/runAudit.js +174 -0
  98. package/dist/endpoints/runAudit.js.map +1 -0
  99. package/dist/endpoints/runFreshnessAudit.d.ts +13 -0
  100. package/dist/endpoints/runFreshnessAudit.d.ts.map +1 -0
  101. package/dist/endpoints/runFreshnessAudit.js +143 -0
  102. package/dist/endpoints/runFreshnessAudit.js.map +1 -0
  103. package/dist/endpoints/sendDigest.d.ts +10 -0
  104. package/dist/endpoints/sendDigest.d.ts.map +1 -0
  105. package/dist/endpoints/sendDigest.js +259 -0
  106. package/dist/endpoints/sendDigest.js.map +1 -0
  107. package/dist/index.d.ts +4 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +6 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/lib/computeGrade.d.ts +8 -0
  112. package/dist/lib/computeGrade.d.ts.map +1 -0
  113. package/dist/lib/computeGrade.js +48 -0
  114. package/dist/lib/computeGrade.js.map +1 -0
  115. package/dist/plugin.d.ts +28 -0
  116. package/dist/plugin.d.ts.map +1 -0
  117. package/dist/plugin.js +168 -0
  118. package/dist/plugin.js.map +1 -0
  119. package/dist/types.d.ts +99 -0
  120. package/dist/types.d.ts.map +1 -0
  121. package/dist/types.js +3 -0
  122. package/dist/types.js.map +1 -0
  123. package/package.json +75 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnboardingProfile.d.ts","sourceRoot":"","sources":["../../src/collections/OnboardingProfile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,eAAO,MAAM,iBAAiB,EAAE,gBAyK/B,CAAA"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OnboardingProfile = void 0;
4
+ exports.OnboardingProfile = {
5
+ slug: 'ink-onboarding-profile',
6
+ admin: {
7
+ useAsTitle: 'siteName',
8
+ group: 'INK',
9
+ },
10
+ access: {
11
+ read: () => true,
12
+ },
13
+ fields: [
14
+ {
15
+ name: 'siteName',
16
+ type: 'text',
17
+ required: true,
18
+ },
19
+ {
20
+ name: 'audiences',
21
+ type: 'array',
22
+ required: true,
23
+ minRows: 1,
24
+ fields: [
25
+ {
26
+ name: 'segment',
27
+ type: 'text',
28
+ required: true,
29
+ },
30
+ {
31
+ name: 'description',
32
+ type: 'textarea',
33
+ },
34
+ ],
35
+ },
36
+ {
37
+ name: 'objectives',
38
+ type: 'array',
39
+ required: true,
40
+ minRows: 1,
41
+ maxRows: 3,
42
+ fields: [
43
+ {
44
+ name: 'objective',
45
+ type: 'text',
46
+ required: true,
47
+ },
48
+ ],
49
+ },
50
+ {
51
+ name: 'conversionEvents',
52
+ type: 'array',
53
+ admin: {
54
+ description: 'Conversion events to track. The eventName must match exactly what your site fires to GA4 (case-sensitive).',
55
+ },
56
+ fields: [
57
+ {
58
+ name: 'eventName',
59
+ type: 'text',
60
+ required: true,
61
+ admin: {
62
+ description: 'GA4 event name, e.g. member_join_click, apply_submit. Must match exactly what fires.',
63
+ },
64
+ },
65
+ {
66
+ name: 'description',
67
+ type: 'text',
68
+ admin: {
69
+ description: 'Optional. Plain-language description of what this conversion represents for the business.',
70
+ },
71
+ },
72
+ ],
73
+ },
74
+ {
75
+ name: 'brandVoice',
76
+ type: 'textarea',
77
+ required: true,
78
+ },
79
+ {
80
+ name: 'cadence',
81
+ type: 'select',
82
+ defaultValue: 'weekly',
83
+ options: [
84
+ { label: 'Weekly', value: 'weekly' },
85
+ { label: 'Fortnightly', value: 'fortnightly' },
86
+ { label: 'Monthly', value: 'monthly' },
87
+ ],
88
+ },
89
+ {
90
+ name: 'digestEnabled',
91
+ type: 'checkbox',
92
+ defaultValue: true,
93
+ admin: { description: 'When on, INK auto-sends the digest on schedule. Off pauses delivery without losing the cadence.' },
94
+ },
95
+ {
96
+ name: 'lastDigestSentAt',
97
+ type: 'date',
98
+ admin: {
99
+ hidden: true,
100
+ description: 'Internal — set by the cron when a digest is successfully delivered.',
101
+ },
102
+ },
103
+ {
104
+ name: 'competitors',
105
+ type: 'array',
106
+ fields: [
107
+ {
108
+ name: 'url',
109
+ type: 'text',
110
+ },
111
+ ],
112
+ },
113
+ {
114
+ name: 'digestRecipients',
115
+ type: 'array',
116
+ required: true,
117
+ fields: [
118
+ {
119
+ name: 'email',
120
+ type: 'email',
121
+ required: true,
122
+ },
123
+ ],
124
+ },
125
+ {
126
+ name: 'guardrails',
127
+ type: 'array',
128
+ fields: [
129
+ {
130
+ name: 'rule',
131
+ type: 'text',
132
+ required: true,
133
+ },
134
+ ],
135
+ },
136
+ {
137
+ name: 'inkApiKey',
138
+ type: 'text',
139
+ admin: {
140
+ description: 'Optional. Override the API key configured at plugin install.',
141
+ },
142
+ },
143
+ {
144
+ name: 'ga4PropertyId',
145
+ type: 'text',
146
+ admin: {
147
+ description: 'GA4 property ID for analytics. Find it in GA4 → Admin → Property settings.',
148
+ },
149
+ },
150
+ {
151
+ name: 'gaConnectionVerifiedAt',
152
+ type: 'date',
153
+ admin: {
154
+ description: 'Set when the GA4 connection test passes in the install wizard.',
155
+ },
156
+ },
157
+ {
158
+ name: 'lastDigestPreview',
159
+ type: 'json',
160
+ admin: {
161
+ hidden: true,
162
+ description: 'Internal — cached rendered digest from the last Preview click, reused on Send.',
163
+ },
164
+ },
165
+ {
166
+ name: 'completedAt',
167
+ type: 'date',
168
+ admin: {
169
+ description: 'Set when the install wizard finishes. Empty means onboarding is pending.',
170
+ },
171
+ },
172
+ ],
173
+ };
174
+ //# sourceMappingURL=OnboardingProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnboardingProfile.js","sourceRoot":"","sources":["../../src/collections/OnboardingProfile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function AnalyticsPanel(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=AnalyticsPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsPanel.d.ts","sourceRoot":"","sources":["../../src/components/AnalyticsPanel.tsx"],"names":[],"mappings":"AAsCA,wBAAgB,cAAc,4CA+I7B"}
@@ -0,0 +1,151 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.AnalyticsPanel = AnalyticsPanel;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const ink = {
8
+ bg: '#0a0a0a',
9
+ surface: '#141414',
10
+ surfaceElev: '#1c1c1c',
11
+ border: '#262626',
12
+ borderStrong: '#3a3a3a',
13
+ text: '#fafafa',
14
+ textMuted: '#a3a3a3',
15
+ textSubtle: '#737373',
16
+ up: '#a3e635',
17
+ down: '#f87171',
18
+ flat: '#a3a3a3',
19
+ };
20
+ const mono = "'JetBrains Mono', 'Fira Code', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace";
21
+ function AnalyticsPanel() {
22
+ const [summary, setSummary] = (0, react_1.useState)(null);
23
+ const [realtime, setRealtime] = (0, react_1.useState)(null);
24
+ const [error, setError] = (0, react_1.useState)(null);
25
+ const [loading, setLoading] = (0, react_1.useState)(true);
26
+ (0, react_1.useEffect)(() => {
27
+ let cancelled = false;
28
+ fetch('/api/ink/analytics?days=7')
29
+ .then(async (r) => {
30
+ const data = await r.json();
31
+ if (!r.ok)
32
+ throw new Error(data.error ?? `Failed (${r.status})`);
33
+ return data;
34
+ })
35
+ .then((data) => {
36
+ if (cancelled)
37
+ return;
38
+ setSummary(data);
39
+ })
40
+ .catch((err) => {
41
+ if (cancelled)
42
+ return;
43
+ setError(err instanceof Error ? err.message : 'Unknown error');
44
+ })
45
+ .finally(() => {
46
+ if (!cancelled)
47
+ setLoading(false);
48
+ });
49
+ return () => {
50
+ cancelled = true;
51
+ };
52
+ }, []);
53
+ (0, react_1.useEffect)(() => {
54
+ let cancelled = false;
55
+ async function loadRealtime() {
56
+ try {
57
+ const res = await fetch('/api/ink/analytics/realtime');
58
+ if (!res.ok)
59
+ return;
60
+ const data = (await res.json());
61
+ if (!cancelled)
62
+ setRealtime(data);
63
+ }
64
+ catch {
65
+ // ignore — realtime is best-effort
66
+ }
67
+ }
68
+ loadRealtime();
69
+ const interval = setInterval(loadRealtime, 30_000);
70
+ return () => {
71
+ cancelled = true;
72
+ clearInterval(interval);
73
+ };
74
+ }, []);
75
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
76
+ background: ink.bg,
77
+ color: ink.text,
78
+ fontFamily: mono,
79
+ padding: '24px',
80
+ border: `1px solid ${ink.border}`,
81
+ maxWidth: '780px',
82
+ margin: '24px 0',
83
+ }, children: [(0, jsx_runtime_1.jsx)("div", { style: {
84
+ display: 'flex',
85
+ justifyContent: 'space-between',
86
+ alignItems: 'center',
87
+ borderBottom: `1px solid ${ink.border}`,
88
+ paddingBottom: '12px',
89
+ marginBottom: '20px',
90
+ }, children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'baseline', gap: '12px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontSize: '11px', letterSpacing: '0.15em', color: ink.textMuted, fontWeight: 700 }, children: "INK" }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.textSubtle }, children: "/" }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: '11px', letterSpacing: '0.1em', color: ink.text, textTransform: 'uppercase' }, children: "Analytics \u00B7 7d" })] }) }), realtime && (0, jsx_runtime_1.jsx)(LiveBlock, { data: realtime }), loading && (0, jsx_runtime_1.jsx)("p", { style: { fontSize: '12px', color: ink.textMuted }, children: "Loading\u2026" }), error && (0, jsx_runtime_1.jsxs)("p", { style: { fontSize: '12px', color: ink.down }, children: ["ERROR > ", error] }), summary && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '16px', marginBottom: '24px' }, children: [(0, jsx_runtime_1.jsx)(Stat, { label: "Sessions", value: summary.sessions.current, delta: summary.sessions.deltaPct, deltaAbs: summary.sessions.deltaAbs }), (0, jsx_runtime_1.jsx)(Stat, { label: "Users", value: summary.users.current }), (0, jsx_runtime_1.jsx)(Stat, { label: "Pageviews", value: summary.pageviews.current })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("p", { style: {
91
+ margin: '0 0 10px',
92
+ fontSize: '10px',
93
+ letterSpacing: '0.15em',
94
+ textTransform: 'uppercase',
95
+ color: ink.textSubtle,
96
+ fontWeight: 700,
97
+ }, children: "Top pages \u00B7 7d" }), (0, jsx_runtime_1.jsxs)("div", { style: { background: ink.surfaceElev, border: `1px solid ${ink.border}`, padding: '12px 14px' }, children: [summary.topPages.length === 0 && ((0, jsx_runtime_1.jsx)("p", { style: { fontSize: '12px', color: ink.textSubtle, margin: 0 }, children: "No traffic in window." })), summary.topPages.map((p, i) => ((0, jsx_runtime_1.jsxs)("div", { style: {
98
+ display: 'flex',
99
+ gap: '12px',
100
+ padding: '6px 0',
101
+ borderBottom: i < summary.topPages.length - 1 ? `1px solid ${ink.border}` : 'none',
102
+ fontSize: '12px',
103
+ }, children: [(0, jsx_runtime_1.jsx)("span", { style: { color: ink.textSubtle, minWidth: '18px' }, children: String(i + 1).padStart(2, '0') }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.text, flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: p.title || p.path }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.textSubtle, fontSize: '11px' }, children: p.path }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.text, minWidth: '60px', textAlign: 'right' }, children: p.sessions.toLocaleString() })] }, `${p.path}-${i}`)))] })] })] }))] }));
104
+ }
105
+ function LiveBlock({ data }) {
106
+ const { activeUsers, minutes, topPages } = data;
107
+ // GA4 returns minutesAgo dimension; index 0 = "this minute", 29 = "29 min ago"
108
+ // For a left-to-right chronological sparkline ("now" on the right), reverse.
109
+ const seriesChronological = [...minutes].reverse();
110
+ return ((0, jsx_runtime_1.jsxs)("div", { style: {
111
+ background: ink.surface,
112
+ border: `1px solid ${ink.border}`,
113
+ padding: '18px 20px',
114
+ marginBottom: '24px',
115
+ display: 'flex',
116
+ flexDirection: 'column',
117
+ gap: '14px',
118
+ }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '14px' }, children: [(0, jsx_runtime_1.jsx)(PulsingDot, { active: activeUsers > 0 }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'baseline', gap: '10px' }, children: [(0, jsx_runtime_1.jsx)("span", { style: { fontSize: '32px', fontWeight: 700, color: ink.text, fontFamily: mono, lineHeight: 1 }, children: activeUsers.toLocaleString() }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: '11px', letterSpacing: '0.15em', textTransform: 'uppercase', color: ink.textMuted, fontWeight: 700 }, children: activeUsers === 1 ? 'user · live now' : 'users · live now' })] })] }), (0, jsx_runtime_1.jsx)(Sparkline, { values: seriesChronological }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', justifyContent: 'space-between', fontSize: '10px', color: ink.textSubtle, letterSpacing: '0.08em' }, children: [(0, jsx_runtime_1.jsx)("span", { children: "30 MIN AGO" }), (0, jsx_runtime_1.jsx)("span", { children: "NOW" })] }), topPages.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { style: { marginTop: '6px', borderTop: `1px solid ${ink.border}`, paddingTop: '12px' }, children: [(0, jsx_runtime_1.jsx)("p", { style: { margin: '0 0 8px', fontSize: '10px', letterSpacing: '0.15em', textTransform: 'uppercase', color: ink.textSubtle, fontWeight: 700 }, children: "Active pages" }), topPages.slice(0, 3).map((p, i) => ((0, jsx_runtime_1.jsxs)("div", { style: {
119
+ display: 'flex',
120
+ gap: '12px',
121
+ padding: '4px 0',
122
+ fontSize: '12px',
123
+ color: ink.textMuted,
124
+ }, children: [(0, jsx_runtime_1.jsx)("span", { style: { color: ink.textSubtle, minWidth: '18px' }, children: String(i + 1).padStart(2, '0') }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.text, flex: 1, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }, children: p.page }), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.text, minWidth: '40px', textAlign: 'right' }, children: p.users })] }, `${p.page}-${i}`)))] }))] }));
125
+ }
126
+ function PulsingDot({ active }) {
127
+ const color = active ? ink.up : ink.textSubtle;
128
+ return ((0, jsx_runtime_1.jsxs)("svg", { width: 20, height: 20, viewBox: "0 0 20 20", style: { flexShrink: 0 }, children: [active && ((0, jsx_runtime_1.jsxs)("circle", { cx: "10", cy: "10", r: "6", fill: color, opacity: 0.3, children: [(0, jsx_runtime_1.jsx)("animate", { attributeName: "r", values: "6;10;6", dur: "1.8s", repeatCount: "indefinite" }), (0, jsx_runtime_1.jsx)("animate", { attributeName: "opacity", values: "0.4;0;0.4", dur: "1.8s", repeatCount: "indefinite" })] })), (0, jsx_runtime_1.jsx)("circle", { cx: "10", cy: "10", r: "4", fill: color })] }));
129
+ }
130
+ function Sparkline({ values }) {
131
+ const max = Math.max(...values, 1);
132
+ const width = 600;
133
+ const height = 40;
134
+ const gap = 2;
135
+ const barWidth = (width - gap * (values.length - 1)) / values.length;
136
+ return ((0, jsx_runtime_1.jsx)("svg", { width: "100%", height: height, viewBox: `0 0 ${width} ${height}`, preserveAspectRatio: "none", style: { display: 'block' }, children: values.map((v, i) => {
137
+ const h = (v / max) * height;
138
+ const x = i * (barWidth + gap);
139
+ const y = height - h;
140
+ const isLast = i === values.length - 1;
141
+ return ((0, jsx_runtime_1.jsx)("rect", { x: x, y: y, width: barWidth, height: Math.max(h, 1), fill: isLast ? ink.up : v > 0 ? ink.up : ink.border, opacity: isLast ? 1 : v > 0 ? 0.7 : 1 }, i));
142
+ }) }));
143
+ }
144
+ function Stat({ label, value, delta, deltaAbs, }) {
145
+ const showDelta = typeof delta === 'number';
146
+ const direction = !showDelta ? 'flat' : delta > 0 ? 'up' : delta < 0 ? 'down' : 'flat';
147
+ const color = direction === 'up' ? ink.up : direction === 'down' ? ink.down : ink.flat;
148
+ const arrow = direction === 'up' ? '▲' : direction === 'down' ? '▼' : '–';
149
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { background: ink.surface, border: `1px solid ${ink.border}`, padding: '14px 16px' }, children: [(0, jsx_runtime_1.jsx)("p", { style: { margin: 0, fontSize: '10px', letterSpacing: '0.15em', color: ink.textSubtle, fontWeight: 700, textTransform: 'uppercase' }, children: label }), (0, jsx_runtime_1.jsx)("p", { style: { margin: '6px 0 0', fontSize: '24px', color: ink.text, fontWeight: 700, fontFamily: mono }, children: value.toLocaleString() }), showDelta && ((0, jsx_runtime_1.jsxs)("p", { style: { margin: '4px 0 0', fontSize: '11px', color, letterSpacing: '0.05em' }, children: [arrow, " ", Math.abs(delta).toFixed(1), "%", typeof deltaAbs === 'number' && ((0, jsx_runtime_1.jsxs)("span", { style: { color: ink.textSubtle, marginLeft: '6px' }, children: ["(", deltaAbs > 0 ? '+' : '', deltaAbs.toLocaleString(), ")"] })), (0, jsx_runtime_1.jsx)("span", { style: { color: ink.textSubtle, marginLeft: '6px' }, children: "vs prior 7d" })] }))] }));
150
+ }
151
+ //# sourceMappingURL=AnalyticsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsPanel.js","sourceRoot":"","sources":["../../src/components/AnalyticsPanel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function AuditPanel({ embedded }?: {
2
+ embedded?: boolean;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=AuditPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuditPanel.d.ts","sourceRoot":"","sources":["../../src/components/AuditPanel.tsx"],"names":[],"mappings":"AAwFA,wBAAgB,UAAU,CAAC,EAAE,QAAgB,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,2CAyV3E"}