@actuate-media/plugin-ai 0.1.0 → 0.2.0
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/LICENSE +21 -21
- package/dist/__tests__/content-generator.test.d.ts +2 -0
- package/dist/__tests__/content-generator.test.d.ts.map +1 -0
- package/dist/__tests__/content-generator.test.js +200 -0
- package/dist/__tests__/content-generator.test.js.map +1 -0
- package/dist/__tests__/index.test.js.map +1 -1
- package/dist/admin/AIScorePanel.d.ts +1 -1
- package/dist/admin/AIScorePanel.d.ts.map +1 -1
- package/dist/admin/AIScorePanel.js +34 -17
- package/dist/admin/AIScorePanel.js.map +1 -1
- package/dist/admin/BrandVoiceSettings.d.ts +2 -2
- package/dist/admin/BrandVoiceSettings.d.ts.map +1 -1
- package/dist/admin/BrandVoiceSettings.js +123 -34
- package/dist/admin/BrandVoiceSettings.js.map +1 -1
- package/dist/admin/ContentScoreDashboard.d.ts +1 -1
- package/dist/admin/ContentScoreDashboard.d.ts.map +1 -1
- package/dist/admin/ContentScoreDashboard.js +50 -16
- package/dist/admin/ContentScoreDashboard.js.map +1 -1
- package/dist/admin/WritingAssistantToolbar.d.ts.map +1 -1
- package/dist/admin/WritingAssistantToolbar.js +21 -21
- package/dist/admin/WritingAssistantToolbar.js.map +1 -1
- package/dist/brand/consistency-checker.d.ts +3 -3
- package/dist/brand/consistency-checker.d.ts.map +1 -1
- package/dist/brand/consistency-checker.js +7 -7
- package/dist/brand/consistency-checker.js.map +1 -1
- package/dist/brand/profile-builder.d.ts +2 -2
- package/dist/brand/profile-builder.d.ts.map +1 -1
- package/dist/brand/profile-builder.js +20 -19
- package/dist/brand/profile-builder.js.map +1 -1
- package/dist/brand/voice-profile.d.ts +4 -4
- package/dist/brand/voice-profile.d.ts.map +1 -1
- package/dist/collections.d.ts +1 -1
- package/dist/collections.d.ts.map +1 -1
- package/dist/collections.js.map +1 -1
- package/dist/fields.d.ts +1 -1
- package/dist/fields.d.ts.map +1 -1
- package/dist/fields.js.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +16 -14
- package/dist/hooks.js.map +1 -1
- package/dist/index.d.ts +33 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -35
- package/dist/index.js.map +1 -1
- package/dist/links/smart-links.d.ts.map +1 -1
- package/dist/links/smart-links.js +2 -2
- package/dist/links/smart-links.js.map +1 -1
- package/dist/media/alt-text-generator.d.ts +2 -2
- package/dist/media/alt-text-generator.d.ts.map +1 -1
- package/dist/media/alt-text-generator.js +14 -9
- package/dist/media/alt-text-generator.js.map +1 -1
- package/dist/media/auto-tagger.d.ts +1 -1
- package/dist/media/auto-tagger.d.ts.map +1 -1
- package/dist/media/auto-tagger.js +8 -5
- package/dist/media/auto-tagger.js.map +1 -1
- package/dist/page-builder/generate.d.ts.map +1 -1
- package/dist/page-builder/generate.js +106 -87
- package/dist/page-builder/generate.js.map +1 -1
- package/dist/providers/anthropic.d.ts +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +32 -32
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/index.d.ts +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +6 -6
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +24 -24
- package/dist/providers/openai.js.map +1 -1
- package/dist/scoring/accessibility.d.ts +1 -1
- package/dist/scoring/accessibility.d.ts.map +1 -1
- package/dist/scoring/accessibility.js +22 -22
- package/dist/scoring/accessibility.js.map +1 -1
- package/dist/scoring/brand-alignment.d.ts +1 -1
- package/dist/scoring/brand-alignment.d.ts.map +1 -1
- package/dist/scoring/brand-alignment.js +14 -12
- package/dist/scoring/brand-alignment.js.map +1 -1
- package/dist/scoring/composite.d.ts +1 -1
- package/dist/scoring/composite.d.ts.map +1 -1
- package/dist/scoring/composite.js +5 -5
- package/dist/scoring/composite.js.map +1 -1
- package/dist/scoring/freshness.d.ts +1 -1
- package/dist/scoring/freshness.d.ts.map +1 -1
- package/dist/scoring/freshness.js +5 -7
- package/dist/scoring/freshness.js.map +1 -1
- package/dist/scoring/readability.d.ts +1 -1
- package/dist/scoring/readability.d.ts.map +1 -1
- package/dist/scoring/readability.js +8 -8
- package/dist/scoring/readability.js.map +1 -1
- package/dist/scoring/seo-score.d.ts.map +1 -1
- package/dist/scoring/seo-score.js +82 -16
- package/dist/scoring/seo-score.js.map +1 -1
- package/dist/search/clustering.d.ts +1 -1
- package/dist/search/clustering.d.ts.map +1 -1
- package/dist/search/clustering.js +7 -9
- package/dist/search/clustering.js.map +1 -1
- package/dist/search/embeddings.d.ts +1 -1
- package/dist/search/embeddings.d.ts.map +1 -1
- package/dist/search/embeddings.js +3 -3
- package/dist/search/embeddings.js.map +1 -1
- package/dist/search/semantic-search.d.ts +1 -1
- package/dist/search/semantic-search.d.ts.map +1 -1
- package/dist/search/semantic-search.js +5 -5
- package/dist/search/semantic-search.js.map +1 -1
- package/dist/translation/translator.d.ts +2 -2
- package/dist/translation/translator.d.ts.map +1 -1
- package/dist/translation/translator.js +8 -8
- package/dist/translation/translator.js.map +1 -1
- package/dist/writing/assistant.d.ts +3 -3
- package/dist/writing/assistant.d.ts.map +1 -1
- package/dist/writing/assistant.js +19 -16
- package/dist/writing/assistant.js.map +1 -1
- package/dist/writing/content-generator.d.ts +107 -0
- package/dist/writing/content-generator.d.ts.map +1 -0
- package/dist/writing/content-generator.js +273 -0
- package/dist/writing/content-generator.js.map +1 -0
- package/dist/writing/inline-suggestions.d.ts +2 -2
- package/dist/writing/inline-suggestions.d.ts.map +1 -1
- package/dist/writing/inline-suggestions.js +8 -5
- package/dist/writing/inline-suggestions.js.map +1 -1
- package/dist/writing/meta-generator.d.ts +2 -2
- package/dist/writing/meta-generator.d.ts.map +1 -1
- package/dist/writing/meta-generator.js +21 -9
- package/dist/writing/meta-generator.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,25 +1,30 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from
|
|
3
|
+
import { useState } from 'react';
|
|
4
4
|
const EMPTY_PROFILE = {
|
|
5
|
-
id:
|
|
6
|
-
name:
|
|
5
|
+
id: '',
|
|
6
|
+
name: '',
|
|
7
7
|
tone: [
|
|
8
|
-
{ dimension:
|
|
9
|
-
{ dimension:
|
|
10
|
-
{ dimension:
|
|
11
|
-
{ dimension:
|
|
8
|
+
{ dimension: 'professional', value: 0.5 },
|
|
9
|
+
{ dimension: 'friendly', value: 0.5 },
|
|
10
|
+
{ dimension: 'authoritative', value: 0.5 },
|
|
11
|
+
{ dimension: 'playful', value: 0.5 },
|
|
12
12
|
],
|
|
13
|
-
vocabulary: { preferred: [], avoided: [], jargonLevel:
|
|
14
|
-
style: {
|
|
15
|
-
|
|
13
|
+
vocabulary: { preferred: [], avoided: [], jargonLevel: 'minimal' },
|
|
14
|
+
style: {
|
|
15
|
+
sentenceLength: 'medium',
|
|
16
|
+
paragraphLength: 'medium',
|
|
17
|
+
formality: 0.5,
|
|
18
|
+
activeVoiceRatio: 0.7,
|
|
19
|
+
},
|
|
20
|
+
audience: { expertise: 'intermediate' },
|
|
16
21
|
examples: [],
|
|
17
22
|
};
|
|
18
23
|
/** Editor for configuring brand voice profiles with tone sliders, vocabulary, and style settings. */
|
|
19
|
-
export function BrandVoiceSettings({ profile, onSave, onAnalyze, isAnalyzing }) {
|
|
24
|
+
export function BrandVoiceSettings({ profile, onSave, onAnalyze, isAnalyzing, }) {
|
|
20
25
|
const [draft, setDraft] = useState(profile ?? EMPTY_PROFILE);
|
|
21
|
-
const [preferredInput, setPreferredInput] = useState(
|
|
22
|
-
const [avoidedInput, setAvoidedInput] = useState(
|
|
26
|
+
const [preferredInput, setPreferredInput] = useState('');
|
|
27
|
+
const [avoidedInput, setAvoidedInput] = useState('');
|
|
23
28
|
const updateTone = (dimension, value) => {
|
|
24
29
|
setDraft((prev) => ({
|
|
25
30
|
...prev,
|
|
@@ -31,43 +36,127 @@ export function BrandVoiceSettings({ profile, onSave, onAnalyze, isAnalyzing })
|
|
|
31
36
|
return;
|
|
32
37
|
setDraft((prev) => ({
|
|
33
38
|
...prev,
|
|
34
|
-
vocabulary: {
|
|
39
|
+
vocabulary: {
|
|
40
|
+
...prev.vocabulary,
|
|
41
|
+
preferred: [...prev.vocabulary.preferred, preferredInput.trim()],
|
|
42
|
+
},
|
|
35
43
|
}));
|
|
36
|
-
setPreferredInput(
|
|
44
|
+
setPreferredInput('');
|
|
37
45
|
};
|
|
38
46
|
const addAvoided = () => {
|
|
39
47
|
if (!avoidedInput.trim())
|
|
40
48
|
return;
|
|
41
49
|
setDraft((prev) => ({
|
|
42
50
|
...prev,
|
|
43
|
-
vocabulary: {
|
|
51
|
+
vocabulary: {
|
|
52
|
+
...prev.vocabulary,
|
|
53
|
+
avoided: [...prev.vocabulary.avoided, avoidedInput.trim()],
|
|
54
|
+
},
|
|
44
55
|
}));
|
|
45
|
-
setAvoidedInput(
|
|
56
|
+
setAvoidedInput('');
|
|
46
57
|
};
|
|
47
|
-
return (_jsxs("div", { style: { padding: 24, maxWidth: 640 }, children: [_jsx("h2", { style: { fontSize: 20, fontWeight: 600, marginBottom: 24 }, children: "Brand Voice Profile" }), _jsxs("div", { style: { marginBottom: 24 }, children: [_jsx("label", { style: { display:
|
|
58
|
+
return (_jsxs("div", { style: { padding: 24, maxWidth: 640 }, children: [_jsx("h2", { style: { fontSize: 20, fontWeight: 600, marginBottom: 24 }, children: "Brand Voice Profile" }), _jsxs("div", { style: { marginBottom: 24 }, children: [_jsx("label", { style: { display: 'block', fontSize: 14, fontWeight: 500, marginBottom: 6 }, children: "Profile Name" }), _jsx("input", { type: "text", value: draft.name, onChange: (e) => setDraft((prev) => ({ ...prev, name: e.target.value })), style: {
|
|
59
|
+
width: '100%',
|
|
60
|
+
padding: '8px 12px',
|
|
61
|
+
border: '1px solid #d1d5db',
|
|
62
|
+
borderRadius: 6,
|
|
63
|
+
} })] }), _jsxs("div", { style: { marginBottom: 24 }, children: [_jsx("h3", { style: { fontSize: 16, fontWeight: 500, marginBottom: 12 }, children: "Tone" }), draft.tone.map((t) => (_jsxs("div", { style: { marginBottom: 12 }, children: [_jsxs("div", { style: {
|
|
64
|
+
display: 'flex',
|
|
65
|
+
justifyContent: 'space-between',
|
|
66
|
+
fontSize: 13,
|
|
67
|
+
marginBottom: 4,
|
|
68
|
+
}, children: [_jsx("span", { style: { textTransform: 'capitalize' }, children: t.dimension }), _jsxs("span", { children: [Math.round(t.value * 100), "%"] })] }), _jsx("input", { type: "range", min: "0", max: "1", step: "0.05", value: t.value, onChange: (e) => updateTone(t.dimension, parseFloat(e.target.value)), style: { width: '100%' } })] }, t.dimension)))] }), _jsxs("div", { style: { marginBottom: 24 }, children: [_jsx("h3", { style: { fontSize: 16, fontWeight: 500, marginBottom: 12 }, children: "Vocabulary" }), _jsxs("div", { style: { marginBottom: 12 }, children: [_jsx("label", { style: { fontSize: 13, fontWeight: 500 }, children: "Preferred Terms" }), _jsxs("div", { style: { display: 'flex', gap: 8, marginTop: 4 }, children: [_jsx("input", { type: "text", value: preferredInput, onChange: (e) => setPreferredInput(e.target.value), onKeyDown: (e) => e.key === 'Enter' && addPreferred(), style: { flex: 1, padding: '6px 10px', border: '1px solid #d1d5db', borderRadius: 6 } }), _jsx("button", { onClick: addPreferred, style: {
|
|
69
|
+
padding: '6px 16px',
|
|
70
|
+
borderRadius: 6,
|
|
71
|
+
border: '1px solid #d1d5db',
|
|
72
|
+
cursor: 'pointer',
|
|
73
|
+
}, children: "Add" })] }), _jsx("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 4, marginTop: 8 }, children: draft.vocabulary.preferred.map((term, i) => (_jsx("span", { style: {
|
|
74
|
+
fontSize: 12,
|
|
75
|
+
padding: '2px 8px',
|
|
76
|
+
borderRadius: 12,
|
|
77
|
+
backgroundColor: '#dcfce7',
|
|
78
|
+
color: '#166534',
|
|
79
|
+
}, children: term }, i))) })] }), _jsxs("div", { style: { marginBottom: 12 }, children: [_jsx("label", { style: { fontSize: 13, fontWeight: 500 }, children: "Avoided Terms" }), _jsxs("div", { style: { display: 'flex', gap: 8, marginTop: 4 }, children: [_jsx("input", { type: "text", value: avoidedInput, onChange: (e) => setAvoidedInput(e.target.value), onKeyDown: (e) => e.key === 'Enter' && addAvoided(), style: { flex: 1, padding: '6px 10px', border: '1px solid #d1d5db', borderRadius: 6 } }), _jsx("button", { onClick: addAvoided, style: {
|
|
80
|
+
padding: '6px 16px',
|
|
81
|
+
borderRadius: 6,
|
|
82
|
+
border: '1px solid #d1d5db',
|
|
83
|
+
cursor: 'pointer',
|
|
84
|
+
}, children: "Add" })] }), _jsx("div", { style: { display: 'flex', flexWrap: 'wrap', gap: 4, marginTop: 8 }, children: draft.vocabulary.avoided.map((term, i) => (_jsx("span", { style: {
|
|
85
|
+
fontSize: 12,
|
|
86
|
+
padding: '2px 8px',
|
|
87
|
+
borderRadius: 12,
|
|
88
|
+
backgroundColor: '#fee2e2',
|
|
89
|
+
color: '#991b1b',
|
|
90
|
+
}, children: term }, i))) })] }), _jsxs("div", { children: [_jsx("label", { style: { fontSize: 13, fontWeight: 500 }, children: "Jargon Level" }), _jsxs("select", { value: draft.vocabulary.jargonLevel, onChange: (e) => setDraft((prev) => ({
|
|
48
91
|
...prev,
|
|
49
|
-
vocabulary: {
|
|
50
|
-
|
|
92
|
+
vocabulary: {
|
|
93
|
+
...prev.vocabulary,
|
|
94
|
+
jargonLevel: e.target.value,
|
|
95
|
+
},
|
|
96
|
+
})), style: {
|
|
97
|
+
display: 'block',
|
|
98
|
+
marginTop: 4,
|
|
99
|
+
padding: '6px 10px',
|
|
100
|
+
border: '1px solid #d1d5db',
|
|
101
|
+
borderRadius: 6,
|
|
102
|
+
}, children: [_jsx("option", { value: "none", children: "None" }), _jsx("option", { value: "minimal", children: "Minimal" }), _jsx("option", { value: "moderate", children: "Moderate" }), _jsx("option", { value: "technical", children: "Technical" })] })] })] }), _jsxs("div", { style: { marginBottom: 24 }, children: [_jsx("h3", { style: { fontSize: 16, fontWeight: 500, marginBottom: 12 }, children: "Style" }), _jsxs("div", { style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: 12 }, children: [_jsxs("div", { children: [_jsx("label", { style: { fontSize: 13, fontWeight: 500 }, children: "Sentence Length" }), _jsxs("select", { value: draft.style.sentenceLength, onChange: (e) => setDraft((prev) => ({
|
|
51
103
|
...prev,
|
|
52
|
-
style: {
|
|
53
|
-
|
|
104
|
+
style: {
|
|
105
|
+
...prev.style,
|
|
106
|
+
sentenceLength: e.target.value,
|
|
107
|
+
},
|
|
108
|
+
})), style: {
|
|
109
|
+
display: 'block',
|
|
110
|
+
marginTop: 4,
|
|
111
|
+
width: '100%',
|
|
112
|
+
padding: '6px 10px',
|
|
113
|
+
border: '1px solid #d1d5db',
|
|
114
|
+
borderRadius: 6,
|
|
115
|
+
}, children: [_jsx("option", { value: "short", children: "Short" }), _jsx("option", { value: "medium", children: "Medium" }), _jsx("option", { value: "long", children: "Long" }), _jsx("option", { value: "varied", children: "Varied" })] })] }), _jsxs("div", { children: [_jsx("label", { style: { fontSize: 13, fontWeight: 500 }, children: "Paragraph Length" }), _jsxs("select", { value: draft.style.paragraphLength, onChange: (e) => setDraft((prev) => ({
|
|
54
116
|
...prev,
|
|
55
|
-
style: {
|
|
56
|
-
|
|
57
|
-
|
|
117
|
+
style: {
|
|
118
|
+
...prev.style,
|
|
119
|
+
paragraphLength: e.target
|
|
120
|
+
.value,
|
|
121
|
+
},
|
|
122
|
+
})), style: {
|
|
123
|
+
display: 'block',
|
|
124
|
+
marginTop: 4,
|
|
125
|
+
width: '100%',
|
|
126
|
+
padding: '6px 10px',
|
|
127
|
+
border: '1px solid #d1d5db',
|
|
128
|
+
borderRadius: 6,
|
|
129
|
+
}, children: [_jsx("option", { value: "short", children: "Short" }), _jsx("option", { value: "medium", children: "Medium" }), _jsx("option", { value: "long", children: "Long" })] })] })] }), _jsxs("div", { style: { marginTop: 12 }, children: [_jsxs("div", { style: {
|
|
130
|
+
display: 'flex',
|
|
131
|
+
justifyContent: 'space-between',
|
|
132
|
+
fontSize: 13,
|
|
133
|
+
marginBottom: 4,
|
|
134
|
+
}, children: [_jsx("span", { children: "Formality" }), _jsxs("span", { children: [Math.round(draft.style.formality * 100), "%"] })] }), _jsx("input", { type: "range", min: "0", max: "1", step: "0.05", value: draft.style.formality, onChange: (e) => setDraft((prev) => ({
|
|
135
|
+
...prev,
|
|
136
|
+
style: { ...prev.style, formality: parseFloat(e.target.value) },
|
|
137
|
+
})), style: { width: '100%' } })] }), _jsxs("div", { style: { marginTop: 12 }, children: [_jsxs("div", { style: {
|
|
138
|
+
display: 'flex',
|
|
139
|
+
justifyContent: 'space-between',
|
|
140
|
+
fontSize: 13,
|
|
141
|
+
marginBottom: 4,
|
|
142
|
+
}, children: [_jsx("span", { children: "Active Voice Ratio" }), _jsxs("span", { children: [Math.round(draft.style.activeVoiceRatio * 100), "%"] })] }), _jsx("input", { type: "range", min: "0", max: "1", step: "0.05", value: draft.style.activeVoiceRatio, onChange: (e) => setDraft((prev) => ({
|
|
143
|
+
...prev,
|
|
144
|
+
style: { ...prev.style, activeVoiceRatio: parseFloat(e.target.value) },
|
|
145
|
+
})), style: { width: '100%' } })] })] }), _jsxs("div", { style: { display: 'flex', gap: 12 }, children: [_jsx("button", { onClick: () => onSave(draft), style: {
|
|
146
|
+
padding: '10px 24px',
|
|
58
147
|
borderRadius: 6,
|
|
59
|
-
border:
|
|
60
|
-
backgroundColor:
|
|
61
|
-
color:
|
|
148
|
+
border: 'none',
|
|
149
|
+
backgroundColor: '#2563eb',
|
|
150
|
+
color: '#fff',
|
|
62
151
|
fontWeight: 500,
|
|
63
|
-
cursor:
|
|
152
|
+
cursor: 'pointer',
|
|
64
153
|
}, children: "Save Profile" }), _jsx("button", { onClick: onAnalyze, disabled: isAnalyzing, style: {
|
|
65
|
-
padding:
|
|
154
|
+
padding: '10px 24px',
|
|
66
155
|
borderRadius: 6,
|
|
67
|
-
border:
|
|
68
|
-
backgroundColor:
|
|
69
|
-
cursor: isAnalyzing ?
|
|
156
|
+
border: '1px solid #d1d5db',
|
|
157
|
+
backgroundColor: '#fff',
|
|
158
|
+
cursor: isAnalyzing ? 'not-allowed' : 'pointer',
|
|
70
159
|
opacity: isAnalyzing ? 0.6 : 1,
|
|
71
|
-
}, children: isAnalyzing ?
|
|
160
|
+
}, children: isAnalyzing ? 'Analyzing...' : 'Analyze Content' })] })] }));
|
|
72
161
|
}
|
|
73
162
|
//# sourceMappingURL=BrandVoiceSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrandVoiceSettings.js","sourceRoot":"","sources":["../../src/admin/BrandVoiceSettings.tsx"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"BrandVoiceSettings.js","sourceRoot":"","sources":["../../src/admin/BrandVoiceSettings.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,6 @@ interface ContentScoreDashboardProps {
|
|
|
10
10
|
distribution: Record<string, number>;
|
|
11
11
|
}
|
|
12
12
|
/** Dashboard showing content score distribution, averages, and per-document scores. */
|
|
13
|
-
export declare function ContentScoreDashboard({ scores, averageScore, distribution }: ContentScoreDashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function ContentScoreDashboard({ scores, averageScore, distribution, }: ContentScoreDashboardProps): import("react/jsx-runtime").JSX.Element;
|
|
14
14
|
export {};
|
|
15
15
|
//# sourceMappingURL=ContentScoreDashboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentScoreDashboard.d.ts","sourceRoot":"","sources":["../../src/admin/ContentScoreDashboard.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAClC,MAAM,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ContentScoreDashboard.d.ts","sourceRoot":"","sources":["../../src/admin/ContentScoreDashboard.tsx"],"names":[],"mappings":"AAIA,UAAU,0BAA0B;IAClC,MAAM,EAAE,KAAK,CAAC;QACZ,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,MAAM,CAAA;KACpB,CAAC,CAAA;IACF,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AAUD,uFAAuF;AACvF,wBAAgB,qBAAqB,CAAC,EACpC,MAAM,EACN,YAAY,EACZ,YAAY,GACb,EAAE,0BAA0B,2CA8J5B"}
|
|
@@ -1,30 +1,64 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
const GRADE_COLORS = {
|
|
4
|
-
A:
|
|
5
|
-
B:
|
|
6
|
-
C:
|
|
7
|
-
D:
|
|
8
|
-
F:
|
|
4
|
+
A: '#22c55e',
|
|
5
|
+
B: '#84cc16',
|
|
6
|
+
C: '#f59e0b',
|
|
7
|
+
D: '#f97316',
|
|
8
|
+
F: '#ef4444',
|
|
9
9
|
};
|
|
10
10
|
/** Dashboard showing content score distribution, averages, and per-document scores. */
|
|
11
|
-
export function ContentScoreDashboard({ scores, averageScore, distribution }) {
|
|
11
|
+
export function ContentScoreDashboard({ scores, averageScore, distribution, }) {
|
|
12
12
|
const maxDistCount = Math.max(...Object.values(distribution), 1);
|
|
13
|
-
return (_jsxs("div", { style: { padding: 24 }, children: [_jsx("h2", { style: { fontSize: 22, fontWeight: 600, marginBottom: 24 }, children: "Content Quality Dashboard" }), _jsxs("div", { style: {
|
|
14
|
-
|
|
13
|
+
return (_jsxs("div", { style: { padding: 24 }, children: [_jsx("h2", { style: { fontSize: 22, fontWeight: 600, marginBottom: 24 }, children: "Content Quality Dashboard" }), _jsxs("div", { style: {
|
|
14
|
+
display: 'grid',
|
|
15
|
+
gridTemplateColumns: 'repeat(3, 1fr)',
|
|
16
|
+
gap: 16,
|
|
17
|
+
marginBottom: 32,
|
|
18
|
+
}, children: [_jsxs("div", { style: { padding: 20, borderRadius: 8, border: '1px solid #e5e7eb', textAlign: 'center' }, children: [_jsx("div", { style: {
|
|
19
|
+
fontSize: 36,
|
|
20
|
+
fontWeight: 700,
|
|
21
|
+
color: averageScore >= 80 ? '#22c55e' : averageScore >= 60 ? '#f59e0b' : '#ef4444',
|
|
22
|
+
}, children: averageScore }), _jsx("div", { style: { fontSize: 13, color: '#6b7280', marginTop: 4 }, children: "Average Score" })] }), _jsxs("div", { style: { padding: 20, borderRadius: 8, border: '1px solid #e5e7eb', textAlign: 'center' }, children: [_jsx("div", { style: { fontSize: 36, fontWeight: 700 }, children: scores.length }), _jsx("div", { style: { fontSize: 13, color: '#6b7280', marginTop: 4 }, children: "Documents Scored" })] }), _jsxs("div", { style: { padding: 20, borderRadius: 8, border: '1px solid #e5e7eb', textAlign: 'center' }, children: [_jsx("div", { style: { fontSize: 36, fontWeight: 700, color: '#22c55e' }, children: scores.filter((s) => s.score >= 80).length }), _jsx("div", { style: { fontSize: 13, color: '#6b7280', marginTop: 4 }, children: "High Quality" })] })] }), _jsxs("div", { style: { marginBottom: 32 }, children: [_jsx("h3", { style: { fontSize: 16, fontWeight: 500, marginBottom: 16 }, children: "Grade Distribution" }), _jsx("div", { style: { display: 'flex', gap: 12, alignItems: 'flex-end', height: 120 }, children: Object.entries(distribution).map(([grade, count]) => (_jsxs("div", { style: { display: 'flex', flexDirection: 'column', alignItems: 'center', flex: 1 }, children: [_jsx("span", { style: { fontSize: 12, fontWeight: 500, marginBottom: 4 }, children: count }), _jsx("div", { style: {
|
|
23
|
+
width: '100%',
|
|
15
24
|
maxWidth: 48,
|
|
16
25
|
height: `${(count / maxDistCount) * 100}%`,
|
|
17
26
|
minHeight: 4,
|
|
18
|
-
backgroundColor: GRADE_COLORS[grade] ??
|
|
19
|
-
borderRadius:
|
|
20
|
-
} }), _jsx("span", { style: {
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
backgroundColor: GRADE_COLORS[grade] ?? '#d1d5db',
|
|
28
|
+
borderRadius: '4px 4px 0 0',
|
|
29
|
+
} }), _jsx("span", { style: {
|
|
30
|
+
fontSize: 14,
|
|
31
|
+
fontWeight: 600,
|
|
32
|
+
marginTop: 6,
|
|
33
|
+
color: GRADE_COLORS[grade] ?? '#374151',
|
|
34
|
+
}, children: grade })] }, grade))) })] }), _jsxs("div", { children: [_jsx("h3", { style: { fontSize: 16, fontWeight: 500, marginBottom: 12 }, children: "Document Scores" }), _jsxs("table", { style: { width: '100%', borderCollapse: 'collapse', fontSize: 14 }, children: [_jsx("thead", { children: _jsxs("tr", { style: { borderBottom: '2px solid #e5e7eb' }, children: [_jsx("th", { style: {
|
|
35
|
+
textAlign: 'left',
|
|
36
|
+
padding: '8px 12px',
|
|
37
|
+
fontWeight: 500,
|
|
38
|
+
color: '#6b7280',
|
|
39
|
+
}, children: "Title" }), _jsx("th", { style: {
|
|
40
|
+
textAlign: 'center',
|
|
41
|
+
padding: '8px 12px',
|
|
42
|
+
fontWeight: 500,
|
|
43
|
+
color: '#6b7280',
|
|
44
|
+
}, children: "Score" }), _jsx("th", { style: {
|
|
45
|
+
textAlign: 'center',
|
|
46
|
+
padding: '8px 12px',
|
|
47
|
+
fontWeight: 500,
|
|
48
|
+
color: '#6b7280',
|
|
49
|
+
}, children: "Grade" }), _jsx("th", { style: {
|
|
50
|
+
textAlign: 'right',
|
|
51
|
+
padding: '8px 12px',
|
|
52
|
+
fontWeight: 500,
|
|
53
|
+
color: '#6b7280',
|
|
54
|
+
}, children: "Last Updated" })] }) }), _jsx("tbody", { children: scores.map((doc) => (_jsxs("tr", { style: { borderBottom: '1px solid #f3f4f6' }, children: [_jsx("td", { style: { padding: '10px 12px' }, children: doc.title }), _jsx("td", { style: { padding: '10px 12px', textAlign: 'center', fontWeight: 500 }, children: doc.score }), _jsx("td", { style: { padding: '10px 12px', textAlign: 'center' }, children: _jsx("span", { style: {
|
|
55
|
+
display: 'inline-block',
|
|
56
|
+
padding: '2px 10px',
|
|
23
57
|
borderRadius: 12,
|
|
24
58
|
fontSize: 12,
|
|
25
59
|
fontWeight: 600,
|
|
26
|
-
color:
|
|
27
|
-
backgroundColor: GRADE_COLORS[doc.grade] ??
|
|
28
|
-
}, children: doc.grade }) }), _jsx("td", { style: { padding:
|
|
60
|
+
color: '#fff',
|
|
61
|
+
backgroundColor: GRADE_COLORS[doc.grade] ?? '#6b7280',
|
|
62
|
+
}, children: doc.grade }) }), _jsx("td", { style: { padding: '10px 12px', textAlign: 'right', color: '#6b7280' }, children: doc.lastUpdated })] }, doc.documentId))) })] })] })] }));
|
|
29
63
|
}
|
|
30
64
|
//# sourceMappingURL=ContentScoreDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentScoreDashboard.js","sourceRoot":"","sources":["../../src/admin/ContentScoreDashboard.tsx"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"ContentScoreDashboard.js","sourceRoot":"","sources":["../../src/admin/ContentScoreDashboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WritingAssistantToolbar.d.ts","sourceRoot":"","sources":["../../src/admin/WritingAssistantToolbar.tsx"],"names":[],"mappings":"AAIA,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"WritingAssistantToolbar.d.ts","sourceRoot":"","sources":["../../src/admin/WritingAssistantToolbar.tsx"],"names":[],"mappings":"AAIA,UAAU,4BAA4B;IACpC,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAiBD,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,YAAY,GACb,EAAE,4BAA4B,2CA4D9B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
const ACTIONS = [
|
|
4
|
-
{ label:
|
|
5
|
-
{ label:
|
|
6
|
-
{ label:
|
|
7
|
-
{ label:
|
|
8
|
-
{ label:
|
|
4
|
+
{ label: 'Generate', icon: '✦', action: 'onGenerate' },
|
|
5
|
+
{ label: 'Expand', icon: '↔', action: 'onExpand', requiresSelection: true },
|
|
6
|
+
{ label: 'Compress', icon: '⊘', action: 'onCompress', requiresSelection: true },
|
|
7
|
+
{ label: 'Rewrite', icon: '⟳', action: 'onRewrite', requiresSelection: true },
|
|
8
|
+
{ label: 'Proofread', icon: '✓', action: 'onProofread', requiresSelection: true },
|
|
9
9
|
];
|
|
10
10
|
/** Toolbar with AI writing actions for use alongside a rich text editor. */
|
|
11
11
|
export function WritingAssistantToolbar({ onGenerate, onExpand, onCompress, onRewrite, onProofread, isProcessing, selectedText, }) {
|
|
@@ -17,33 +17,33 @@ export function WritingAssistantToolbar({ onGenerate, onExpand, onCompress, onRe
|
|
|
17
17
|
onProofread,
|
|
18
18
|
};
|
|
19
19
|
return (_jsxs("div", { style: {
|
|
20
|
-
display:
|
|
21
|
-
alignItems:
|
|
20
|
+
display: 'flex',
|
|
21
|
+
alignItems: 'center',
|
|
22
22
|
gap: 4,
|
|
23
|
-
padding:
|
|
23
|
+
padding: '6px 8px',
|
|
24
24
|
borderRadius: 8,
|
|
25
|
-
border:
|
|
26
|
-
backgroundColor:
|
|
27
|
-
}, children: [_jsx("span", { style: { fontSize: 12, color:
|
|
25
|
+
border: '1px solid #e5e7eb',
|
|
26
|
+
backgroundColor: '#fafafa',
|
|
27
|
+
}, children: [_jsx("span", { style: { fontSize: 12, color: '#6b7280', marginRight: 8, fontWeight: 500 }, children: "AI" }), ACTIONS.map((action) => {
|
|
28
28
|
const disabled = isProcessing || (action.requiresSelection && !selectedText);
|
|
29
29
|
return (_jsxs("button", { onClick: () => handlers[action.action]?.(), disabled: disabled, title: action.label, style: {
|
|
30
|
-
display:
|
|
31
|
-
alignItems:
|
|
30
|
+
display: 'flex',
|
|
31
|
+
alignItems: 'center',
|
|
32
32
|
gap: 4,
|
|
33
|
-
padding:
|
|
33
|
+
padding: '4px 10px',
|
|
34
34
|
fontSize: 13,
|
|
35
|
-
border:
|
|
35
|
+
border: '1px solid transparent',
|
|
36
36
|
borderRadius: 6,
|
|
37
|
-
backgroundColor:
|
|
38
|
-
cursor: disabled ?
|
|
37
|
+
backgroundColor: 'transparent',
|
|
38
|
+
cursor: disabled ? 'not-allowed' : 'pointer',
|
|
39
39
|
opacity: disabled ? 0.4 : 1,
|
|
40
|
-
transition:
|
|
40
|
+
transition: 'background-color 0.15s',
|
|
41
41
|
}, onMouseEnter: (e) => {
|
|
42
42
|
if (!disabled)
|
|
43
|
-
|
|
43
|
+
e.currentTarget.style.backgroundColor = '#f3f4f6';
|
|
44
44
|
}, onMouseLeave: (e) => {
|
|
45
|
-
e.currentTarget.style.backgroundColor =
|
|
45
|
+
e.currentTarget.style.backgroundColor = 'transparent';
|
|
46
46
|
}, children: [_jsx("span", { children: action.icon }), _jsx("span", { children: action.label })] }, action.action));
|
|
47
|
-
}), isProcessing && (_jsx("span", { style: { fontSize: 12, color:
|
|
47
|
+
}), isProcessing && (_jsx("span", { style: { fontSize: 12, color: '#6b7280', marginLeft: 8 }, children: "Processing..." }))] }));
|
|
48
48
|
}
|
|
49
49
|
//# sourceMappingURL=WritingAssistantToolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WritingAssistantToolbar.js","sourceRoot":"","sources":["../../src/admin/WritingAssistantToolbar.tsx"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"WritingAssistantToolbar.js","sourceRoot":"","sources":["../../src/admin/WritingAssistantToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import type { BrandVoiceProfile } from
|
|
1
|
+
import type { BrandVoiceProfile } from './voice-profile.js';
|
|
2
2
|
export interface ConsistencyResult {
|
|
3
3
|
score: number;
|
|
4
4
|
issues: Array<{
|
|
5
5
|
type: string;
|
|
6
6
|
location: string;
|
|
7
7
|
suggestion: string;
|
|
8
|
-
severity:
|
|
8
|
+
severity: 'low' | 'medium' | 'high';
|
|
9
9
|
}>;
|
|
10
10
|
highlights: Array<{
|
|
11
11
|
text: string;
|
|
12
|
-
type:
|
|
12
|
+
type: 'good' | 'off-brand';
|
|
13
13
|
}>;
|
|
14
14
|
}
|
|
15
15
|
/** Checks content for consistency against a brand voice profile. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-checker.d.ts","sourceRoot":"","sources":["../../src/brand/consistency-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"consistency-checker.d.ts","sourceRoot":"","sources":["../../src/brand/consistency-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,UAAU,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;KACpC,CAAC,CAAA;IACF,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;KAAE,CAAC,CAAA;CAChE;AAED,oEAAoE;AACpE,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CAkD5B"}
|
|
@@ -3,21 +3,21 @@ export async function checkConsistency(content, profile) {
|
|
|
3
3
|
const issues = [];
|
|
4
4
|
const highlights = [];
|
|
5
5
|
for (const avoided of profile.vocabulary.avoided) {
|
|
6
|
-
const regex = new RegExp(`\\b${avoided}\\b`,
|
|
6
|
+
const regex = new RegExp(`\\b${avoided}\\b`, 'gi');
|
|
7
7
|
let match;
|
|
8
8
|
while ((match = regex.exec(content)) !== null) {
|
|
9
9
|
issues.push({
|
|
10
|
-
type:
|
|
10
|
+
type: 'vocabulary',
|
|
11
11
|
location: `character ${match.index}`,
|
|
12
12
|
suggestion: `Replace "${avoided}" with a brand-appropriate alternative`,
|
|
13
|
-
severity:
|
|
13
|
+
severity: 'medium',
|
|
14
14
|
});
|
|
15
|
-
highlights.push({ text: match[0], type:
|
|
15
|
+
highlights.push({ text: match[0], type: 'off-brand' });
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
for (const preferred of profile.vocabulary.preferred) {
|
|
19
19
|
if (content.toLowerCase().includes(preferred.toLowerCase())) {
|
|
20
|
-
highlights.push({ text: preferred, type:
|
|
20
|
+
highlights.push({ text: preferred, type: 'good' });
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
const sentences = content.split(/[.!?]+/).filter(Boolean);
|
|
@@ -32,10 +32,10 @@ export async function checkConsistency(content, profile) {
|
|
|
32
32
|
const wordCount = sentences[i].trim().split(/\s+/).filter(Boolean).length;
|
|
33
33
|
if (wordCount < minLen || wordCount > maxLen) {
|
|
34
34
|
issues.push({
|
|
35
|
-
type:
|
|
35
|
+
type: 'sentence-length',
|
|
36
36
|
location: `sentence ${i + 1}`,
|
|
37
37
|
suggestion: `Sentence has ${wordCount} words — target is ${minLen}-${maxLen}`,
|
|
38
|
-
severity:
|
|
38
|
+
severity: 'low',
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consistency-checker.js","sourceRoot":"","sources":["../../src/brand/consistency-checker.ts"],"names":[],"mappings":"AAaA,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,OAA0B;IAE1B,MAAM,MAAM,GAAgC,EAAE,
|
|
1
|
+
{"version":3,"file":"consistency-checker.js","sourceRoot":"","sources":["../../src/brand/consistency-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AIProvider } from
|
|
2
|
-
import type { BrandVoiceProfile } from
|
|
1
|
+
import type { AIProvider } from '../providers/index.js';
|
|
2
|
+
import type { BrandVoiceProfile } from './voice-profile.js';
|
|
3
3
|
export interface ProfileBuilderOptions {
|
|
4
4
|
name: string;
|
|
5
5
|
sampleSize?: number;
|