stlyes fixes
This commit is contained in:
@@ -86,7 +86,7 @@ export default function AnalysisPreview() {
|
||||
|
||||
{loading || analyzing ? (
|
||||
<div className="text-center py-12">
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500 mb-3"></div>
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-brand-500 mb-3"></div>
|
||||
<p className="text-gray-600 dark:text-gray-400">
|
||||
{loading ? 'Loading content...' : 'Analyzing content...'}
|
||||
</p>
|
||||
@@ -126,15 +126,15 @@ export default function AnalysisPreview() {
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||
<div className={`p-4 rounded-lg border-2 ${
|
||||
scores.has_cluster_mapping
|
||||
? 'border-green-500 bg-green-50 dark:bg-green-900/20'
|
||||
: 'border-red-500 bg-red-50 dark:bg-red-900/20'
|
||||
? 'border-success-500 bg-success-50 dark:bg-success-900/20'
|
||||
: 'border-error-500 bg-error-50 dark:bg-error-900/20'
|
||||
}`}>
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">Cluster Mapping</span>
|
||||
{scores.has_cluster_mapping ? (
|
||||
<span className="text-green-600 dark:text-green-400">✓</span>
|
||||
<span className="text-success-600 dark:text-success-400">✓</span>
|
||||
) : (
|
||||
<span className="text-red-600 dark:text-red-400">✗</span>
|
||||
<span className="text-error-600 dark:text-error-400">✗</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="text-xs text-gray-600 dark:text-gray-400">
|
||||
@@ -146,15 +146,15 @@ export default function AnalysisPreview() {
|
||||
|
||||
<div className={`p-4 rounded-lg border-2 ${
|
||||
scores.has_taxonomy_mapping
|
||||
? 'border-green-500 bg-green-50 dark:bg-green-900/20'
|
||||
: 'border-yellow-500 bg-yellow-50 dark:bg-yellow-900/20'
|
||||
? 'border-success-500 bg-success-50 dark:bg-success-900/20'
|
||||
: 'border-warning-500 bg-warning-50 dark:bg-warning-900/20'
|
||||
}`}>
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">Taxonomy Mapping</span>
|
||||
{scores.has_taxonomy_mapping ? (
|
||||
<span className="text-green-600 dark:text-green-400">✓</span>
|
||||
<span className="text-success-600 dark:text-success-400">✓</span>
|
||||
) : (
|
||||
<span className="text-yellow-600 dark:text-yellow-400">⚠</span>
|
||||
<span className="text-warning-600 dark:text-warning-400">⚠</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="text-xs text-gray-600 dark:text-gray-400">
|
||||
@@ -166,15 +166,15 @@ export default function AnalysisPreview() {
|
||||
|
||||
<div className={`p-4 rounded-lg border-2 ${
|
||||
scores.has_attributes
|
||||
? 'border-green-500 bg-green-50 dark:bg-green-900/20'
|
||||
: 'border-yellow-500 bg-yellow-50 dark:bg-yellow-900/20'
|
||||
? 'border-success-500 bg-success-50 dark:bg-success-900/20'
|
||||
: 'border-warning-500 bg-warning-50 dark:bg-warning-900/20'
|
||||
}`}>
|
||||
<div className="flex items-center justify-between mb-2">
|
||||
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">Attributes</span>
|
||||
{scores.has_attributes ? (
|
||||
<span className="text-green-600 dark:text-green-400">✓</span>
|
||||
<span className="text-success-600 dark:text-success-400">✓</span>
|
||||
) : (
|
||||
<span className="text-yellow-600 dark:text-yellow-400">⚠</span>
|
||||
<span className="text-warning-600 dark:text-warning-400">⚠</span>
|
||||
)}
|
||||
</div>
|
||||
<div className="text-xs text-gray-600 dark:text-gray-400">
|
||||
@@ -237,12 +237,12 @@ export default function AnalysisPreview() {
|
||||
<h3 className="text-lg font-semibold text-gray-900 dark:text-white mb-4">Recommended Actions</h3>
|
||||
<div className="space-y-3">
|
||||
{!scores.has_cluster_mapping && (
|
||||
<div className="p-3 bg-blue-50 dark:bg-blue-900/20 border border-blue-200 dark:border-blue-800 rounded-lg">
|
||||
<div className="p-3 bg-brand-50 dark:bg-brand-900/20 border border-brand-200 dark:border-brand-800 rounded-lg">
|
||||
<div className="flex items-start gap-2">
|
||||
<span className="text-blue-600 dark:text-blue-400 font-bold">1.</span>
|
||||
<span className="text-brand-600 dark:text-brand-400 font-bold">1.</span>
|
||||
<div className="flex-1">
|
||||
<div className="font-medium text-blue-900 dark:text-blue-300">Map Content to Cluster</div>
|
||||
<div className="text-sm text-blue-700 dark:text-blue-400 mt-1">
|
||||
<div className="font-medium text-brand-900 dark:text-brand-300">Map Content to Cluster</div>
|
||||
<div className="text-sm text-brand-700 dark:text-brand-400 mt-1">
|
||||
Assign this content to a keyword cluster to improve internal linking and SEO structure.
|
||||
</div>
|
||||
</div>
|
||||
@@ -263,12 +263,12 @@ export default function AnalysisPreview() {
|
||||
</div>
|
||||
)}
|
||||
{!scores.has_attributes && (content?.content_type === 'product' || content?.content_type === 'service') && (
|
||||
<div className="p-3 bg-orange-50 dark:bg-orange-900/20 border border-orange-200 dark:border-orange-800 rounded-lg">
|
||||
<div className="p-3 bg-warning-50 dark:bg-warning-900/20 border border-warning-200 dark:border-warning-800 rounded-lg">
|
||||
<div className="flex items-start gap-2">
|
||||
<span className="text-orange-600 dark:text-orange-400 font-bold">3.</span>
|
||||
<span className="text-warning-600 dark:text-warning-400 font-bold">3.</span>
|
||||
<div className="flex-1">
|
||||
<div className="font-medium text-orange-900 dark:text-orange-300">Add Product/Service Attributes</div>
|
||||
<div className="text-sm text-orange-700 dark:text-orange-400 mt-1">
|
||||
<div className="font-medium text-warning-900 dark:text-warning-300">Add Product/Service Attributes</div>
|
||||
<div className="text-sm text-warning-700 dark:text-warning-400 mt-1">
|
||||
Add attributes like specifications, features, or modifiers to enhance content completeness.
|
||||
</div>
|
||||
</div>
|
||||
@@ -276,12 +276,12 @@ export default function AnalysisPreview() {
|
||||
</div>
|
||||
)}
|
||||
{scores.metadata_completeness_score !== undefined && scores.metadata_completeness_score < 80 && (
|
||||
<div className="p-3 bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800 rounded-lg">
|
||||
<div className="p-3 bg-warning-50 dark:bg-warning-900/20 border border-warning-200 dark:border-warning-800 rounded-lg">
|
||||
<div className="flex items-start gap-2">
|
||||
<span className="text-amber-600 dark:text-amber-400 font-bold">4.</span>
|
||||
<span className="text-warning-600 dark:text-warning-400 font-bold">4.</span>
|
||||
<div className="flex-1">
|
||||
<div className="font-medium text-amber-900 dark:text-amber-300">Improve Metadata Completeness</div>
|
||||
<div className="text-sm text-amber-700 dark:text-amber-400 mt-1">
|
||||
<div className="font-medium text-warning-900 dark:text-warning-300">Improve Metadata Completeness</div>
|
||||
<div className="text-sm text-warning-700 dark:text-warning-400 mt-1">
|
||||
Current score: {scores.metadata_completeness_score.toFixed(1)}%. Complete missing metadata fields to reach 80%+.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -168,7 +168,7 @@ export default function OptimizerContentSelector() {
|
||||
<button
|
||||
onClick={handleBatchOptimize}
|
||||
disabled={selectedIds.length === 0 || processing.length > 0}
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-brand-500 text-white rounded-lg hover:bg-brand-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
|
||||
>
|
||||
{processing.length > 0 ? (
|
||||
<>
|
||||
@@ -193,7 +193,7 @@ export default function OptimizerContentSelector() {
|
||||
|
||||
{loading ? (
|
||||
<div className="text-center py-12">
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-brand-500"></div>
|
||||
<p className="mt-2 text-gray-600 dark:text-gray-400">Loading content...</p>
|
||||
</div>
|
||||
) : (
|
||||
@@ -207,7 +207,7 @@ export default function OptimizerContentSelector() {
|
||||
type="checkbox"
|
||||
checked={selectedIds.length === filteredContent.length && filteredContent.length > 0}
|
||||
onChange={toggleSelectAll}
|
||||
className="rounded border-gray-300 text-blue-600 focus:ring-blue-500"
|
||||
className="rounded border-gray-300 text-brand-600 focus:ring-brand-500"
|
||||
/>
|
||||
</th>
|
||||
<th className="px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider">
|
||||
@@ -236,14 +236,14 @@ export default function OptimizerContentSelector() {
|
||||
return (
|
||||
<tr
|
||||
key={item.id}
|
||||
className={`hover:bg-gray-50 dark:hover:bg-gray-700 ${isSelected ? 'bg-blue-50 dark:bg-blue-900/20' : ''}`}
|
||||
className={`hover:bg-gray-50 dark:hover:bg-gray-700 ${isSelected ? 'bg-brand-50 dark:bg-brand-900/20' : ''}`}
|
||||
>
|
||||
<td className="px-6 py-4 whitespace-nowrap">
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={isSelected}
|
||||
onChange={() => toggleSelection(item.id)}
|
||||
className="rounded border-gray-300 text-blue-600 focus:ring-blue-500"
|
||||
className="rounded border-gray-300 text-brand-600 focus:ring-brand-500"
|
||||
/>
|
||||
</td>
|
||||
<td className="px-6 py-4 whitespace-nowrap">
|
||||
@@ -270,7 +270,7 @@ export default function OptimizerContentSelector() {
|
||||
<button
|
||||
onClick={() => handleOptimize(item.id)}
|
||||
disabled={isProcessing || processing.length > 0}
|
||||
className="inline-flex items-center gap-2 px-3 py-1.5 bg-blue-500 text-white rounded hover:bg-blue-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
|
||||
className="inline-flex items-center gap-2 px-3 py-1.5 bg-brand-500 text-white rounded hover:bg-brand-600 disabled:opacity-50 disabled:cursor-not-allowed transition-colors"
|
||||
>
|
||||
{isProcessing ? (
|
||||
<>
|
||||
|
||||
@@ -80,7 +80,7 @@ export default function OptimizerDashboard() {
|
||||
/>
|
||||
<Link
|
||||
to="/optimizer/content"
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-blue-500 text-white rounded-lg hover:bg-blue-600 transition-colors"
|
||||
className="inline-flex items-center gap-2 px-4 py-2 bg-brand-500 text-white rounded-lg hover:bg-brand-600 transition-colors"
|
||||
>
|
||||
<BoltIcon />
|
||||
Optimize Content
|
||||
@@ -92,7 +92,7 @@ export default function OptimizerDashboard() {
|
||||
|
||||
{loading ? (
|
||||
<div className="text-center py-12">
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-blue-500"></div>
|
||||
<div className="inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-brand-500"></div>
|
||||
<p className="mt-2 text-gray-600 dark:text-gray-400">Loading stats...</p>
|
||||
</div>
|
||||
) : stats ? (
|
||||
@@ -135,7 +135,7 @@ export default function OptimizerDashboard() {
|
||||
className="flex items-center justify-between p-4 border border-gray-200 dark:border-gray-700 rounded-lg hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"
|
||||
>
|
||||
<div className="flex items-center gap-3">
|
||||
<BoltIcon className="w-5 h-5 text-yellow-500" />
|
||||
<BoltIcon className="w-5 h-5 text-warning-500" />
|
||||
<div>
|
||||
<h3 className="font-medium text-gray-900 dark:text-white">Optimize Content</h3>
|
||||
<p className="text-sm text-gray-500 dark:text-gray-400">Select and optimize content items</p>
|
||||
|
||||
Reference in New Issue
Block a user