@actuate-media/cms-admin 0.70.0 → 0.71.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/__tests__/views/script-tags.render.test.d.ts +2 -0
- package/dist/__tests__/views/script-tags.render.test.d.ts.map +1 -0
- package/dist/__tests__/views/script-tags.render.test.js +148 -0
- package/dist/__tests__/views/script-tags.render.test.js.map +1 -0
- package/dist/actuate-admin.css +1 -1
- package/dist/components/script-tags/ScriptTagEditorPane.d.ts +10 -0
- package/dist/components/script-tags/ScriptTagEditorPane.d.ts.map +1 -1
- package/dist/components/script-tags/ScriptTagEditorPane.js +21 -2
- package/dist/components/script-tags/ScriptTagEditorPane.js.map +1 -1
- package/dist/components/seo/SeoIssueFixPanel.js +1 -1
- package/dist/components/seo/SeoIssueFixPanel.js.map +1 -1
- package/dist/components/ui/InspectorPane.d.ts.map +1 -1
- package/dist/components/ui/InspectorPane.js +6 -1
- package/dist/components/ui/InspectorPane.js.map +1 -1
- package/dist/views/ApiKeys.d.ts.map +1 -1
- package/dist/views/ApiKeys.js +1 -1
- package/dist/views/ApiKeys.js.map +1 -1
- package/dist/views/MediaBrowser.d.ts.map +1 -1
- package/dist/views/MediaBrowser.js +1 -1
- package/dist/views/MediaBrowser.js.map +1 -1
- package/dist/views/MediaSeoAudit.d.ts.map +1 -1
- package/dist/views/MediaSeoAudit.js +4 -2
- package/dist/views/MediaSeoAudit.js.map +1 -1
- package/dist/views/ScriptTags.d.ts.map +1 -1
- package/dist/views/ScriptTags.js +121 -15
- package/dist/views/ScriptTags.js.map +1 -1
- package/dist/views/seo/AuditTab.js +1 -1
- package/dist/views/seo/AuditTab.js.map +1 -1
- package/dist/views/seo/ContentTab.js +1 -1
- package/dist/views/seo/ContentTab.js.map +1 -1
- package/dist/views/seo/OverviewTab.js +1 -1
- package/dist/views/seo/OverviewTab.js.map +1 -1
- package/dist/views/seo/RedirectsTab.js +1 -1
- package/dist/views/seo/RedirectsTab.js.map +1 -1
- package/dist/views/seo/TechnicalTab.js +1 -1
- package/dist/views/seo/TechnicalTab.js.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/views/script-tags.render.test.tsx +178 -0
- package/src/components/script-tags/ScriptTagEditorPane.tsx +40 -4
- package/src/components/seo/SeoIssueFixPanel.tsx +2 -2
- package/src/components/ui/InspectorPane.tsx +7 -2
- package/src/views/ApiKeys.tsx +2 -1
- package/src/views/MediaBrowser.tsx +3 -2
- package/src/views/MediaSeoAudit.tsx +3 -2
- package/src/views/ScriptTags.tsx +260 -25
- package/src/views/seo/AuditTab.tsx +1 -1
- package/src/views/seo/ContentTab.tsx +1 -1
- package/src/views/seo/OverviewTab.tsx +1 -1
- package/src/views/seo/RedirectsTab.tsx +1 -1
- package/src/views/seo/TechnicalTab.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TechnicalTab.js","sourceRoot":"","sources":["../../../src/views/seo/TechnicalTab.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TechnicalTab.js","sourceRoot":"","sources":["../../../src/views/seo/TechnicalTab.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// @vitest-environment happy-dom
|
|
2
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest'
|
|
3
|
+
import { fireEvent, render, screen, waitFor } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
// Drive the Script Tags list through a mocked cmsApi so the test owns the
|
|
6
|
+
// data and can assert the design-parity surface: stat pills, search,
|
|
7
|
+
// location/consent filter pills, badges, and row actions.
|
|
8
|
+
function makeTag(over: Record<string, unknown> = {}) {
|
|
9
|
+
return {
|
|
10
|
+
id: 't1',
|
|
11
|
+
name: 'Google Analytics 4',
|
|
12
|
+
code: '<script>/* ga */</script>',
|
|
13
|
+
placement: 'head',
|
|
14
|
+
scope: 'site',
|
|
15
|
+
targetPaths: [],
|
|
16
|
+
priority: 1,
|
|
17
|
+
enabled: true,
|
|
18
|
+
loadAsync: true,
|
|
19
|
+
disableInPreview: true,
|
|
20
|
+
consentCategory: 'analytics',
|
|
21
|
+
createdAt: '2026-05-20T10:00:00.000Z',
|
|
22
|
+
updatedAt: '2026-05-20T10:00:00.000Z',
|
|
23
|
+
...over,
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const TAGS = [
|
|
28
|
+
makeTag(),
|
|
29
|
+
makeTag({
|
|
30
|
+
id: 't2',
|
|
31
|
+
name: 'Live Chat Widget',
|
|
32
|
+
placement: 'body_close',
|
|
33
|
+
priority: 5,
|
|
34
|
+
consentCategory: 'functional',
|
|
35
|
+
}),
|
|
36
|
+
makeTag({
|
|
37
|
+
id: 't3',
|
|
38
|
+
name: 'Org Schema',
|
|
39
|
+
placement: 'head',
|
|
40
|
+
priority: 3,
|
|
41
|
+
enabled: false,
|
|
42
|
+
consentCategory: 'none',
|
|
43
|
+
}),
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
const cmsApi = vi.fn(async (endpoint: string, init?: RequestInit) => {
|
|
47
|
+
if (!init?.method) return { data: TAGS }
|
|
48
|
+
if (init.method === 'POST') return { data: makeTag({ id: 'new-copy' }) }
|
|
49
|
+
return { data: {} }
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
vi.mock('../../lib/api.js', () => ({
|
|
53
|
+
cmsApi: (endpoint: string, init?: RequestInit) => cmsApi(endpoint, init),
|
|
54
|
+
}))
|
|
55
|
+
|
|
56
|
+
vi.mock('sonner', () => ({ toast: { success: vi.fn(), error: vi.fn(), loading: vi.fn() } }))
|
|
57
|
+
|
|
58
|
+
const { ScriptTags } = await import('../../views/ScriptTags.js')
|
|
59
|
+
|
|
60
|
+
beforeEach(() => {
|
|
61
|
+
cmsApi.mockClear()
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
describe('ScriptTags list', () => {
|
|
65
|
+
it('renders rows, stat pills (incl. consent-gated), and colored badges', async () => {
|
|
66
|
+
render(<ScriptTags />)
|
|
67
|
+
|
|
68
|
+
expect(await screen.findByText('Google Analytics 4')).toBeTruthy()
|
|
69
|
+
expect(screen.getByText('Live Chat Widget')).toBeTruthy()
|
|
70
|
+
|
|
71
|
+
// Stat pills: 3 total, 2 active, 1 inactive, 2 consent-gated.
|
|
72
|
+
expect(screen.getByText('Consent-gated')).toBeTruthy()
|
|
73
|
+
expect(screen.getByText('Consent-gated').closest('span')?.textContent).toContain('2')
|
|
74
|
+
|
|
75
|
+
// Location badges use the design palette (head=accent, body_close=info).
|
|
76
|
+
// Note: "Body end" also matches the filter pill, so pick the badge chip.
|
|
77
|
+
const headBadge = screen.getAllByText('Head').find((el) => el.className.includes('--acc-l'))
|
|
78
|
+
expect(headBadge).toBeTruthy()
|
|
79
|
+
const bodyEndBadge = screen
|
|
80
|
+
.getAllByText('Body end')
|
|
81
|
+
.find((el) => el.className.includes('--info-l'))
|
|
82
|
+
expect(bodyEndBadge).toBeTruthy()
|
|
83
|
+
|
|
84
|
+
// Consent badges are per-category colored chips.
|
|
85
|
+
const analyticsBadge = screen
|
|
86
|
+
.getAllByText('Analytics')
|
|
87
|
+
.find((el) => el.className.includes('--acc-l'))
|
|
88
|
+
expect(analyticsBadge).toBeTruthy()
|
|
89
|
+
const functionalBadge = screen
|
|
90
|
+
.getAllByText('Functional')
|
|
91
|
+
.find((el) => el.className.includes('--suc-l'))
|
|
92
|
+
expect(functionalBadge).toBeTruthy()
|
|
93
|
+
})
|
|
94
|
+
|
|
95
|
+
it('filters by location pill and shows the filtered count', async () => {
|
|
96
|
+
render(<ScriptTags />)
|
|
97
|
+
await screen.findByText('Google Analytics 4')
|
|
98
|
+
|
|
99
|
+
expect(screen.getByText('3 scripts')).toBeTruthy()
|
|
100
|
+
fireEvent.click(screen.getByRole('button', { name: 'Body end', pressed: false }))
|
|
101
|
+
|
|
102
|
+
await waitFor(() => {
|
|
103
|
+
expect(screen.getByText('Live Chat Widget')).toBeTruthy()
|
|
104
|
+
expect(screen.queryByText('Google Analytics 4')).toBeNull()
|
|
105
|
+
expect(screen.getByText('1 script')).toBeTruthy()
|
|
106
|
+
})
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
it('filters by consent pill', async () => {
|
|
110
|
+
render(<ScriptTags />)
|
|
111
|
+
await screen.findByText('Google Analytics 4')
|
|
112
|
+
|
|
113
|
+
fireEvent.click(screen.getByRole('button', { name: 'No consent', pressed: false }))
|
|
114
|
+
|
|
115
|
+
await waitFor(() => {
|
|
116
|
+
expect(screen.getByText('Org Schema')).toBeTruthy()
|
|
117
|
+
expect(screen.queryByText('Google Analytics 4')).toBeNull()
|
|
118
|
+
})
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
it('searches by name and offers clear-filters from the empty state', async () => {
|
|
122
|
+
render(<ScriptTags />)
|
|
123
|
+
await screen.findByText('Google Analytics 4')
|
|
124
|
+
|
|
125
|
+
fireEvent.change(screen.getByPlaceholderText('Search scripts…'), {
|
|
126
|
+
target: { value: 'zzz-no-match' },
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
expect(await screen.findByText('No scripts match your filters')).toBeTruthy()
|
|
130
|
+
fireEvent.click(screen.getByRole('button', { name: 'Clear filters' }))
|
|
131
|
+
expect(await screen.findByText('Google Analytics 4')).toBeTruthy()
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
it('select-all checks visible rows and shows selected count with clear', async () => {
|
|
135
|
+
render(<ScriptTags />)
|
|
136
|
+
await screen.findByText('Google Analytics 4')
|
|
137
|
+
|
|
138
|
+
fireEvent.click(screen.getByLabelText('Select all scripts'))
|
|
139
|
+
expect(await screen.findByText(/3 selected/)).toBeTruthy()
|
|
140
|
+
|
|
141
|
+
fireEvent.click(screen.getByRole('button', { name: 'Clear' }))
|
|
142
|
+
await waitFor(() => expect(screen.queryByText(/selected/)).toBeNull())
|
|
143
|
+
})
|
|
144
|
+
|
|
145
|
+
it('row duplicate posts a disabled copy and refetches', async () => {
|
|
146
|
+
render(<ScriptTags />)
|
|
147
|
+
await screen.findByText('Google Analytics 4')
|
|
148
|
+
|
|
149
|
+
fireEvent.click(screen.getByRole('button', { name: 'Duplicate Google Analytics 4' }))
|
|
150
|
+
|
|
151
|
+
await waitFor(() => {
|
|
152
|
+
const post = cmsApi.mock.calls.find(
|
|
153
|
+
(c) => (c[1] as RequestInit | undefined)?.method === 'POST',
|
|
154
|
+
)
|
|
155
|
+
expect(post).toBeTruthy()
|
|
156
|
+
const body = JSON.parse(String((post![1] as RequestInit).body))
|
|
157
|
+
expect(body.name).toBe('Google Analytics 4 (Copy)')
|
|
158
|
+
expect(body.enabled).toBe(false)
|
|
159
|
+
})
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
it('row delete asks for confirmation, then issues DELETE', async () => {
|
|
163
|
+
render(<ScriptTags />)
|
|
164
|
+
await screen.findByText('Org Schema')
|
|
165
|
+
|
|
166
|
+
fireEvent.click(screen.getByRole('button', { name: 'Delete Org Schema' }))
|
|
167
|
+
expect(await screen.findByText('Delete script?')).toBeTruthy()
|
|
168
|
+
fireEvent.click(screen.getByRole('button', { name: 'Delete' }))
|
|
169
|
+
|
|
170
|
+
await waitFor(() => {
|
|
171
|
+
const del = cmsApi.mock.calls.find(
|
|
172
|
+
(c) => (c[1] as RequestInit | undefined)?.method === 'DELETE',
|
|
173
|
+
)
|
|
174
|
+
expect(del).toBeTruthy()
|
|
175
|
+
expect(del![0]).toBe('/script-tags/t3')
|
|
176
|
+
})
|
|
177
|
+
})
|
|
178
|
+
})
|
|
@@ -43,6 +43,33 @@ export const CONSENT_LABELS: Record<string, string> = {
|
|
|
43
43
|
preferences: 'Preferences',
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
/** Design-system location badges (`.loc-head` / `.loc-bs` / `.loc-be`). */
|
|
47
|
+
export const PLACEMENT_COLORS: Record<string, string> = {
|
|
48
|
+
head: 'bg-[var(--acc-l)] text-[var(--acc)]',
|
|
49
|
+
body_open: 'bg-[var(--suc-l)] text-[var(--suc)]',
|
|
50
|
+
body_close: 'bg-[var(--info-l)] text-[var(--info)]',
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface ConsentBadgeColors {
|
|
54
|
+
badge: string
|
|
55
|
+
dot: string
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Neutral "No consent" chip — also the fallback for unknown categories. */
|
|
59
|
+
export const NO_CONSENT_COLORS: ConsentBadgeColors = {
|
|
60
|
+
badge: 'border border-[var(--bdr)] bg-[var(--bg)] text-[var(--muted)]',
|
|
61
|
+
dot: 'bg-[var(--muted)]',
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Design-system consent badges (`.cb-*`): tinted chip + colored dot per category. */
|
|
65
|
+
export const CONSENT_COLORS: Record<string, ConsentBadgeColors> = {
|
|
66
|
+
none: NO_CONSENT_COLORS,
|
|
67
|
+
analytics: { badge: 'bg-[var(--acc-l)] text-[var(--acc)]', dot: 'bg-[var(--acc)]' },
|
|
68
|
+
marketing: { badge: 'bg-[var(--err-l)] text-[var(--err)]', dot: 'bg-[var(--err)]' },
|
|
69
|
+
functional: { badge: 'bg-[var(--suc-l)] text-[var(--suc)]', dot: 'bg-[var(--suc)]' },
|
|
70
|
+
preferences: { badge: 'bg-[var(--warn-l)] text-[var(--warn)]', dot: 'bg-[var(--warn)]' },
|
|
71
|
+
}
|
|
72
|
+
|
|
46
73
|
const PLACEMENT_OPTIONS = [
|
|
47
74
|
{ value: 'head', label: 'Head', hint: '<head>' },
|
|
48
75
|
{ value: 'body_open', label: 'Body start', hint: '<body>' },
|
|
@@ -248,10 +275,18 @@ export function ScriptTagEditorPane({ tag, onClose, onChanged }: ScriptTagEditor
|
|
|
248
275
|
/>
|
|
249
276
|
</div>
|
|
250
277
|
<div className="mt-1.5 flex flex-wrap items-center gap-1.5 px-1.5">
|
|
251
|
-
<span
|
|
278
|
+
<span
|
|
279
|
+
className={`rounded-[5px] px-1.5 py-0.5 text-[10.5px] font-medium ${PLACEMENT_COLORS[placement] ?? 'border border-[var(--bdr)] bg-[var(--bg)] text-[var(--sub)]'}`}
|
|
280
|
+
>
|
|
252
281
|
{PLACEMENT_LABELS[placement] ?? placement}
|
|
253
282
|
</span>
|
|
254
|
-
<span
|
|
283
|
+
<span
|
|
284
|
+
className={`inline-flex items-center gap-[3px] rounded-[5px] px-1.5 py-0.5 text-[10.5px] font-medium ${(CONSENT_COLORS[consentCategory] ?? NO_CONSENT_COLORS).badge}`}
|
|
285
|
+
>
|
|
286
|
+
<span
|
|
287
|
+
className={`inline-block h-[5px] w-[5px] rounded-full ${(CONSENT_COLORS[consentCategory] ?? NO_CONSENT_COLORS).dot}`}
|
|
288
|
+
aria-hidden
|
|
289
|
+
/>
|
|
255
290
|
{CONSENT_LABELS[consentCategory] ?? consentCategory}
|
|
256
291
|
</span>
|
|
257
292
|
</div>
|
|
@@ -407,8 +442,9 @@ export function ScriptTagEditorPane({ tag, onClose, onChanged }: ScriptTagEditor
|
|
|
407
442
|
</div>
|
|
408
443
|
{consentCategory !== 'none' && (
|
|
409
444
|
<p className="mt-2 text-[11px] text-[var(--muted)]">
|
|
410
|
-
The script is injected only after the visitor
|
|
411
|
-
|
|
445
|
+
The script is injected only after the visitor grants the{' '}
|
|
446
|
+
{CONSENT_LABELS[consentCategory] ?? consentCategory} consent category (Actuate Consent
|
|
447
|
+
banner).
|
|
412
448
|
</p>
|
|
413
449
|
)}
|
|
414
450
|
</InspectorPaneSection>
|
|
@@ -34,8 +34,8 @@ function formatValue(value: string | boolean | null): string {
|
|
|
34
34
|
function ChangePreview({ changes }: { changes: SeoFixFieldChange[] }) {
|
|
35
35
|
if (changes.length === 0) return null
|
|
36
36
|
return (
|
|
37
|
-
<div className="border-border overflow-
|
|
38
|
-
<table className="w-full text-sm" aria-label="Proposed SEO changes">
|
|
37
|
+
<div className="border-border overflow-x-auto rounded-md border">
|
|
38
|
+
<table className="w-full min-w-[480px] text-sm" aria-label="Proposed SEO changes">
|
|
39
39
|
<thead>
|
|
40
40
|
<tr className="border-border bg-muted/40 text-muted-foreground border-b text-left">
|
|
41
41
|
<th scope="col" className="py-2 pr-3 pl-3 font-medium">
|
|
@@ -53,17 +53,22 @@ export function InspectorPane({
|
|
|
53
53
|
children,
|
|
54
54
|
'aria-label': ariaLabel,
|
|
55
55
|
}: InspectorPaneProps) {
|
|
56
|
+
// Cap at the split row's width (100% of the flex container) so the pane
|
|
57
|
+
// never overflows phones/tablets. Below the cap the pane fills the row
|
|
58
|
+
// master–detail style: the list yields, and the close button returns to
|
|
59
|
+
// it. On desktop the min() resolves to the design's fixed px width, so
|
|
60
|
+
// nothing changes there.
|
|
56
61
|
return (
|
|
57
62
|
<div
|
|
58
63
|
className="shrink-0 overflow-hidden bg-[var(--bg)] motion-safe:transition-[width] motion-safe:duration-200"
|
|
59
|
-
style={{ width: open ? width : 0 }}
|
|
64
|
+
style={{ width: open ? `min(${width}px, 100%)` : 0 }}
|
|
60
65
|
aria-hidden={!open}
|
|
61
66
|
>
|
|
62
67
|
<div
|
|
63
68
|
role="region"
|
|
64
69
|
aria-label={ariaLabel}
|
|
65
70
|
className="my-3 mr-3 ml-4 flex h-[calc(100%-24px)] flex-col overflow-hidden rounded-[var(--r)] border border-[var(--bdr)] bg-[var(--sb)] shadow-[var(--shd2)]"
|
|
66
|
-
style={{ width: width - 28 }}
|
|
71
|
+
style={{ width: `min(${width - 28}px, calc(100% - 28px))` }}
|
|
67
72
|
>
|
|
68
73
|
{open ? children : null}
|
|
69
74
|
</div>
|
package/src/views/ApiKeys.tsx
CHANGED
|
@@ -166,7 +166,8 @@ export function ApiKeys({ embedded = false }: ApiKeysProps = {}) {
|
|
|
166
166
|
) : (
|
|
167
167
|
<div className="border-border overflow-hidden rounded-lg border">
|
|
168
168
|
<div className="overflow-x-auto">
|
|
169
|
-
|
|
169
|
+
{/* min-w keeps the 7 columns readable; narrow viewports scroll sideways. */}
|
|
170
|
+
<table className="w-full min-w-[760px]">
|
|
170
171
|
<thead className="border-border bg-muted/50 border-b">
|
|
171
172
|
<tr>
|
|
172
173
|
<th className="text-muted-foreground px-4 py-2 text-left text-xs font-medium">
|
|
@@ -776,8 +776,9 @@ export function MediaBrowser({ onNavigate, currentPath }: MediaBrowserProps) {
|
|
|
776
776
|
})}
|
|
777
777
|
</div>
|
|
778
778
|
) : (
|
|
779
|
-
<div className="h-full overflow-
|
|
780
|
-
|
|
779
|
+
<div className="h-full overflow-auto">
|
|
780
|
+
{/* min-w keeps the list columns readable; narrow viewports scroll sideways. */}
|
|
781
|
+
<table className="w-full min-w-[640px]">
|
|
781
782
|
<thead className="border-border bg-muted sticky top-0 border-b">
|
|
782
783
|
<tr>
|
|
783
784
|
<th className="w-8 px-3 py-2 text-left">
|
|
@@ -243,7 +243,7 @@ export function MediaSeoAudit({ items, onEdit, error, onRetry }: MediaSeoAuditPr
|
|
|
243
243
|
</span>
|
|
244
244
|
</div>
|
|
245
245
|
|
|
246
|
-
<div className="overflow-
|
|
246
|
+
<div className="overflow-x-auto rounded-[10px] border border-[var(--bdr)] bg-[var(--card)]">
|
|
247
247
|
{filtered.length === 0 ? (
|
|
248
248
|
<div className="flex flex-col items-center justify-center px-4 py-14 text-center">
|
|
249
249
|
<ImageIcon size={24} className="mb-3 text-[var(--muted)]" aria-hidden />
|
|
@@ -257,7 +257,8 @@ export function MediaSeoAudit({ items, onEdit, error, onRetry }: MediaSeoAuditPr
|
|
|
257
257
|
</p>
|
|
258
258
|
</div>
|
|
259
259
|
) : (
|
|
260
|
-
|
|
260
|
+
// min-w keeps the 7 columns readable; narrow viewports scroll sideways.
|
|
261
|
+
<table className="w-full min-w-[820px] border-collapse" aria-label="Media SEO audit">
|
|
261
262
|
<thead>
|
|
262
263
|
<tr>
|
|
263
264
|
{['File', 'Type', 'Alt Text', 'Title', 'Description', 'SEO Score', 'Action'].map(
|