stlyes fixes

This commit is contained in:
IGNY8 VPS (Salman)
2025-12-29 19:52:51 +00:00
parent c91175fdcb
commit 4f7ab9c606
155 changed files with 1576 additions and 2489 deletions

View File

@@ -228,7 +228,7 @@ export default function SiteContentManager() {
{item.title || `Content #${item.id}`}
</h3>
<div className="flex items-center gap-4 text-xs text-gray-500 dark:text-gray-500">
<span className={`px-2 py-1 rounded ${item.status === 'published' ? 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300'}`}>
<span className={`px-2 py-1 rounded ${item.status === 'published' ? 'bg-success-100 text-success-800 dark:bg-success-900 dark:text-success-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300'}`}>
{item.status}
</span>
{item.content_type && <span>{item.content_type}</span>}

View File

@@ -260,72 +260,72 @@ export default function SiteDashboard() {
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
<button
onClick={() => navigate(`/sites/${siteId}/pages`)}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-primary)] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-gray-200 bg-white hover:border-[var(--color-primary)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-primary-dark)] flex items-center justify-center text-white shadow-lg">
<PageIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Manage Pages</h4>
<p className="text-sm text-slate-600">View and edit pages</p>
<h4 className="font-semibold text-gray-900 mb-1">Manage Pages</h4>
<p className="text-sm text-gray-600">View and edit pages</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-primary)] transition" />
<ArrowRightIcon className="h-5 w-5 text-gray-400 group-hover:text-[var(--color-primary)] transition" />
</button>
<button
onClick={() => navigate(`/sites/${siteId}/content`)}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-success)] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-gray-200 bg-white hover:border-[var(--color-success)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-success)] to-[var(--color-success-dark)] flex items-center justify-center text-white shadow-lg">
<FileIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Manage Content</h4>
<p className="text-sm text-slate-600">View and edit content</p>
<h4 className="font-semibold text-gray-900 mb-1">Manage Content</h4>
<p className="text-sm text-gray-600">View and edit content</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-success)] transition" />
<ArrowRightIcon className="h-5 w-5 text-gray-400 group-hover:text-[var(--color-success)] transition" />
</button>
<button
onClick={() => navigate(`/sites/${siteId}/settings?tab=integrations`)}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-purple)] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-gray-200 bg-white hover:border-[var(--color-purple)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-purple)] to-[var(--color-purple-dark)] flex items-center justify-center text-white shadow-lg">
<PlugInIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Integrations</h4>
<p className="text-sm text-slate-600">Manage connections</p>
<h4 className="font-semibold text-gray-900 mb-1">Integrations</h4>
<p className="text-sm text-gray-600">Manage connections</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-purple)] transition" />
<ArrowRightIcon className="h-5 w-5 text-gray-400 group-hover:text-[var(--color-purple)] transition" />
</button>
<button
onClick={() => navigate(`/sites/${siteId}/sync`)}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-warning)] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-gray-200 bg-white hover:border-[var(--color-warning)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-warning)] to-[var(--color-warning-dark)] flex items-center justify-center text-white shadow-lg">
<BoltIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Sync Dashboard</h4>
<p className="text-sm text-slate-600">View sync status</p>
<h4 className="font-semibold text-gray-900 mb-1">Sync Dashboard</h4>
<p className="text-sm text-gray-600">View sync status</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-warning)] transition" />
<ArrowRightIcon className="h-5 w-5 text-gray-400 group-hover:text-[var(--color-warning)] transition" />
</button>
<button
onClick={() => navigate(`/sites/${siteId}/deploy`)}
className="flex items-center gap-4 p-6 rounded-xl border-2 border-slate-200 bg-white hover:border-[var(--color-primary)] hover:shadow-lg transition-all group"
className="flex items-center gap-4 p-6 rounded-xl border-2 border-gray-200 bg-white hover:border-[var(--color-primary)] hover:shadow-lg transition-all group"
>
<div className="size-12 rounded-xl bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-primary-dark)] flex items-center justify-center text-white shadow-lg">
<ArrowUpIcon className="h-6 w-6" />
</div>
<div className="flex-1 text-left">
<h4 className="font-semibold text-slate-900 mb-1">Deploy Site</h4>
<p className="text-sm text-slate-600">Deploy to production</p>
<h4 className="font-semibold text-gray-900 mb-1">Deploy Site</h4>
<p className="text-sm text-gray-600">Deploy to production</p>
</div>
<ArrowRightIcon className="h-5 w-5 text-slate-400 group-hover:text-[var(--color-primary)] transition" />
<ArrowRightIcon className="h-5 w-5 text-gray-400 group-hover:text-[var(--color-primary)] transition" />
</button>
</div>
</ComponentCard>

View File

@@ -28,7 +28,7 @@ export default function DeploymentPanel() {
/>
<Card className="p-8 text-center">
<AlertIcon className="w-16 h-16 text-amber-500 mx-auto mb-4" />
<AlertIcon className="w-16 h-16 text-warning-500 mx-auto mb-4" />
<h2 className="text-2xl font-bold mb-2">Feature Deprecated</h2>
<p className="text-gray-600 dark:text-gray-400 mb-6">
The SiteBlueprint deployment system has been removed.

View File

@@ -28,7 +28,7 @@ export default function Editor() {
/>
<Card className="p-8 text-center">
<AlertIcon className="w-16 h-16 text-amber-500 mx-auto mb-4" />
<AlertIcon className="w-16 h-16 text-warning-500 mx-auto mb-4" />
<h2 className="text-2xl font-bold mb-2">Feature Deprecated</h2>
<p className="text-gray-600 dark:text-gray-400 mb-6">
The SiteBlueprint page editor has been removed.

View File

@@ -388,7 +388,7 @@ export default function SiteList() {
const renderGridView = () => (
<div className="grid grid-cols-1 gap-6 sm:grid-cols-2 xl:grid-cols-3">
{filteredSites.map((site) => (
<Card key={site.id} className="rounded-xl border-2 border-slate-200 bg-white dark:border-gray-800 dark:bg-white/3 hover:border-[var(--color-primary)] hover:shadow-lg transition-all">
<Card key={site.id} className="rounded-xl border-2 border-gray-200 bg-white dark:border-gray-800 dark:bg-white/3 hover:border-[var(--color-primary)] hover:shadow-lg transition-all">
<div className="relative p-4 pb-6">
<div className="flex items-center gap-3 mb-4">
<div className="size-6 rounded-lg bg-gradient-to-br from-[var(--color-primary)] to-[var(--color-primary-dark)] flex items-center justify-center text-white shadow-md flex-shrink-0">
@@ -611,12 +611,12 @@ export default function SiteList() {
placeholder="Search sites..."
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
className="flex-1 min-w-[200px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
className="flex-1 min-w-[200px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-brand-500"
/>
<select
value={siteTypeFilter}
onChange={(e) => setSiteTypeFilter(e.target.value)}
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-brand-500"
>
{SITE_TYPES.map(opt => (
<option key={opt.value} value={opt.value}>{opt.label}</option>
@@ -625,7 +625,7 @@ export default function SiteList() {
<select
value={hostingTypeFilter}
onChange={(e) => setHostingTypeFilter(e.target.value)}
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-brand-500"
>
{HOSTING_TYPES.map(opt => (
<option key={opt.value} value={opt.value}>{opt.label}</option>
@@ -634,7 +634,7 @@ export default function SiteList() {
<select
value={statusFilter}
onChange={(e) => setStatusFilter(e.target.value)}
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-blue-500"
className="flex-1 min-w-[140px] h-9 px-3 py-2 text-sm border border-gray-300 dark:border-gray-600 rounded-md bg-white dark:bg-gray-800 text-gray-900 dark:text-white focus:outline-none focus:ring-2 focus:ring-brand-500"
>
{STATUS_OPTIONS.map(opt => (
<option key={opt.value} value={opt.value}>{opt.label}</option>

View File

@@ -67,7 +67,7 @@ const DraggablePageItem: React.FC<{
isDragging
? 'opacity-50 border-brand-500 bg-brand-50 dark:bg-brand-900/20'
: 'border-gray-200 dark:border-gray-700 hover:bg-gray-50 dark:hover:bg-gray-800'
} ${isSelected ? 'bg-blue-50 dark:bg-blue-900/20 border-blue-300 dark:border-blue-700' : ''}`}
} ${isSelected ? 'bg-brand-50 dark:bg-brand-900/20 border-brand-300 dark:border-brand-700' : ''}`}
>
<div className="flex items-center gap-4 flex-1">
<button
@@ -304,7 +304,7 @@ export default function PageManager() {
<>
{/* Bulk Actions Bar */}
{selectedPages.size > 0 && (
<Card className="p-4 mb-4 bg-blue-50 dark:bg-blue-900/20 border-blue-200 dark:border-blue-800">
<Card className="p-4 mb-4 bg-brand-50 dark:bg-brand-900/20 border-brand-200 dark:border-brand-800">
<div className="flex items-center justify-between">
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">
{selectedPages.size} page(s) selected
@@ -328,7 +328,7 @@ export default function PageManager() {
variant="outline"
size="sm"
onClick={handleBulkDelete}
className="text-red-600 hover:text-red-700"
className="text-error-600 hover:text-error-700"
>
<TrashBinIcon className="w-4 h-4 mr-1" />
Delete Selected
@@ -343,7 +343,7 @@ export default function PageManager() {
{/* Reorder Save Button */}
{isReordering && (
<Card className="p-4 mb-4 bg-yellow-50 dark:bg-yellow-900/20 border-yellow-200 dark:border-yellow-800">
<Card className="p-4 mb-4 bg-warning-50 dark:bg-warning-900/20 border-warning-200 dark:border-warning-800">
<div className="flex items-center justify-between">
<span className="text-sm font-medium text-gray-700 dark:text-gray-300">
Page order changed. Save to apply changes.

View File

@@ -306,7 +306,7 @@ export default function PostEditor() {
<CheckCircleIcon className="w-4 h-4 inline mr-2" />
Validation
{validationResult && !validationResult.is_valid && (
<span className="ml-2 px-2 py-0.5 text-xs bg-red-100 dark:bg-red-900 text-red-600 dark:text-red-400 rounded-full">
<span className="ml-2 px-2 py-0.5 text-xs bg-error-100 dark:bg-error-900 text-error-600 dark:text-error-400 rounded-full">
{validationResult.validation_errors.length}
</span>
)}
@@ -395,7 +395,7 @@ export default function PostEditor() {
{content.taxonomy_terms.map((term) => (
<span
key={term.id}
className="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-blue-100 text-blue-800 dark:bg-blue-500/20 dark:text-blue-300"
className="inline-flex items-center px-3 py-1 rounded-full text-sm font-medium bg-brand-100 text-brand-800 dark:bg-brand-500/20 dark:text-brand-300"
>
{term.name} ({term.taxonomy})
</span>
@@ -456,19 +456,19 @@ export default function PostEditor() {
{/* Validation Status */}
<div className={`p-4 rounded-lg ${
validationResult.is_valid
? 'bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800'
: 'bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800'
? 'bg-success-50 dark:bg-success-900/20 border border-success-200 dark:border-success-800'
: 'bg-error-50 dark:bg-error-900/20 border border-error-200 dark:border-error-800'
}`}>
<div className="flex items-center gap-2">
{validationResult.is_valid ? (
<CheckCircleIcon className="w-5 h-5 text-green-600 dark:text-green-400" />
<CheckCircleIcon className="w-5 h-5 text-success-600 dark:text-success-400" />
) : (
<XCircleIcon className="w-5 h-5 text-red-600 dark:text-red-400" />
<XCircleIcon className="w-5 h-5 text-error-600 dark:text-error-400" />
)}
<span className={`font-medium ${
validationResult.is_valid
? 'text-green-800 dark:text-green-300'
: 'text-red-800 dark:text-red-300'
? 'text-success-800 dark:text-success-300'
: 'text-error-800 dark:text-error-300'
}`}>
{validationResult.is_valid
? 'Content is valid and ready to publish'
@@ -493,8 +493,8 @@ export default function PostEditor() {
<span className="text-gray-600 dark:text-gray-400">Cluster Mapping:</span>
<span className={`ml-2 font-medium ${
validationResult.metadata.has_cluster_mapping
? 'text-green-600 dark:text-green-400'
: 'text-red-600 dark:text-red-400'
? 'text-success-600 dark:text-success-400'
: 'text-error-600 dark:text-error-400'
}`}>
{validationResult.metadata.has_cluster_mapping ? 'Yes' : 'No'}
</span>
@@ -503,8 +503,8 @@ export default function PostEditor() {
<span className="text-gray-600 dark:text-gray-400">Taxonomy Mapping:</span>
<span className={`ml-2 font-medium ${
validationResult.metadata.has_taxonomy_mapping
? 'text-green-600 dark:text-green-400'
: 'text-red-600 dark:text-red-400'
? 'text-success-600 dark:text-success-400'
: 'text-error-600 dark:text-error-400'
}`}>
{validationResult.metadata.has_taxonomy_mapping ? 'Yes' : 'No'}
</span>
@@ -522,14 +522,14 @@ export default function PostEditor() {
{validationResult.validation_errors.map((error, index) => (
<div
key={index}
className="flex items-start gap-2 p-3 bg-red-50 dark:bg-red-900/20 rounded-lg border border-red-200 dark:border-red-800"
className="flex items-start gap-2 p-3 bg-error-50 dark:bg-error-900/20 rounded-lg border border-error-200 dark:border-error-800"
>
<AlertCircleIcon className="w-5 h-5 text-red-600 dark:text-red-400 flex-shrink-0 mt-0.5" />
<AlertCircleIcon className="w-5 h-5 text-error-600 dark:text-error-400 flex-shrink-0 mt-0.5" />
<div className="flex-1">
<div className="text-sm font-medium text-red-800 dark:text-red-300">
<div className="text-sm font-medium text-error-800 dark:text-error-300">
{error.field || error.code}
</div>
<div className="text-sm text-red-600 dark:text-red-400 mt-1">
<div className="text-sm text-error-600 dark:text-error-400 mt-1">
{error.message}
</div>
</div>
@@ -549,14 +549,14 @@ export default function PostEditor() {
{validationResult.publish_errors.map((error, index) => (
<div
key={index}
className="flex items-start gap-2 p-3 bg-orange-50 dark:bg-orange-900/20 rounded-lg border border-orange-200 dark:border-orange-800"
className="flex items-start gap-2 p-3 bg-warning-50 dark:bg-warning-900/20 rounded-lg border border-warning-200 dark:border-warning-800"
>
<XCircleIcon className="w-5 h-5 text-orange-600 dark:text-orange-400 flex-shrink-0 mt-0.5" />
<XCircleIcon className="w-5 h-5 text-warning-600 dark:text-warning-400 flex-shrink-0 mt-0.5" />
<div className="flex-1">
<div className="text-sm font-medium text-orange-800 dark:text-orange-300">
<div className="text-sm font-medium text-warning-800 dark:text-warning-300">
{error.field || error.code}
</div>
<div className="text-sm text-orange-600 dark:text-orange-400 mt-1">
<div className="text-sm text-warning-600 dark:text-warning-400 mt-1">
{error.message}
</div>
</div>
@@ -645,8 +645,8 @@ export default function PostEditor() {
</div>
<div className={`text-sm font-medium ${
validationResult.is_valid
? 'text-green-600 dark:text-green-400'
: 'text-red-600 dark:text-red-400'
? 'text-success-600 dark:text-success-400'
: 'text-error-600 dark:text-error-400'
}`}>
{validationResult.is_valid ? '✓ Valid' : `${validationResult.validation_errors.length} error(s)`}
</div>
@@ -662,7 +662,7 @@ export default function PostEditor() {
{content.cluster_id ? (
<button
onClick={() => navigate(`/planner/clusters/${content.cluster_id}`)}
className="text-xs text-blue-600 dark:text-blue-400 hover:underline w-full text-left transition-colors focus:outline-none focus:ring-1 focus:ring-blue-500 rounded px-1"
className="text-xs text-brand-600 dark:text-brand-400 hover:underline w-full text-left transition-colors focus:outline-none focus:ring-1 focus:ring-brand-500 rounded px-1"
aria-label="View cluster details"
>
View Cluster
@@ -673,7 +673,7 @@ export default function PostEditor() {
{content.taxonomy_id ? (
<button
onClick={() => navigate(`/sites/builder?taxonomy=${content.taxonomy_id}`)}
className="text-xs text-blue-600 dark:text-blue-400 hover:underline w-full text-left transition-colors focus:outline-none focus:ring-1 focus:ring-blue-500 rounded px-1"
className="text-xs text-brand-600 dark:text-brand-400 hover:underline w-full text-left transition-colors focus:outline-none focus:ring-1 focus:ring-brand-500 rounded px-1"
aria-label="View taxonomy details"
>
View Taxonomy

View File

@@ -483,7 +483,7 @@ export default function SiteSettings() {
<div className="flex items-center gap-3 ml-2">
<span
className={`inline-block w-6 h-6 rounded-full ${
integrationStatus === 'connected' ? 'bg-green-500' :
integrationStatus === 'connected' ? 'bg-success-500' :
integrationStatus === 'configured' ? 'bg-brand-500' : 'bg-gray-300'
}`}
title={`Integration status: ${
@@ -616,9 +616,9 @@ export default function SiteSettings() {
<div className="flex items-center gap-3">
<div className="flex items-center gap-2 px-3 py-1.5 rounded-md bg-gray-100 dark:bg-gray-800">
<div className={`w-2 h-2 rounded-full ${
wordPressIntegration.sync_status === 'success' ? 'bg-green-500' :
wordPressIntegration.sync_status === 'failed' ? 'bg-red-500' :
'bg-yellow-500'
wordPressIntegration.sync_status === 'success' ? 'bg-success-500' :
wordPressIntegration.sync_status === 'failed' ? 'bg-error-500' :
'bg-warning-500'
}`}></div>
<span className="text-xs font-medium text-gray-700 dark:text-gray-300">
{wordPressIntegration.sync_status === 'success' ? 'Synced' :
@@ -693,7 +693,7 @@ export default function SiteSettings() {
)}
</div>
<div className="flex items-center gap-3">
<span className={`px-2 py-1 text-xs rounded ${data.enabled ? 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200'}`}>
<span className={`px-2 py-1 text-xs rounded ${data.enabled ? 'bg-success-100 text-success-800 dark:bg-success-900 dark:text-success-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200'}`}>
{data.enabled ? 'Enabled' : 'Disabled'}
</span>
<span className="text-sm text-gray-500">Limit: {data.fetch_limit}</span>
@@ -723,7 +723,7 @@ export default function SiteSettings() {
)}
</div>
<div className="flex items-center gap-3">
<span className={`px-2 py-1 text-xs rounded ${data.enabled ? 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200'}`}>
<span className={`px-2 py-1 text-xs rounded ${data.enabled ? 'bg-success-100 text-success-800 dark:bg-success-900 dark:text-success-200' : 'bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-200'}`}>
{data.enabled ? 'Enabled' : 'Disabled'}
</span>
<span className="text-sm text-gray-500">Limit: {data.fetch_limit}</span>
@@ -1088,7 +1088,7 @@ export default function SiteSettings() {
setSelectedSectors(selectedSectors.filter(s => s !== sector.slug));
}
}}
className="mt-1 h-4 w-4 rounded border-gray-300 text-blue-600 focus:ring-blue-500"
className="mt-1 h-4 w-4 rounded border-gray-300 text-brand-600 focus:ring-brand-500"
/>
<div className="flex-1">
<div className="font-medium text-sm text-gray-900 dark:text-white">

View File

@@ -105,12 +105,12 @@ export default function SyncDashboard() {
switch (status) {
case 'healthy':
case 'success':
return <CheckCircleIcon className="w-5 h-5 text-green-600 dark:text-green-400" />;
return <CheckCircleIcon className="w-5 h-5 text-success-600 dark:text-success-400" />;
case 'warning':
return <AlertIcon className="w-5 h-5 text-yellow-600 dark:text-yellow-400" />;
return <AlertIcon className="w-5 h-5 text-warning-600 dark:text-warning-400" />;
case 'error':
case 'failed':
return <ErrorIcon className="w-5 h-5 text-red-600 dark:text-red-400" />;
return <ErrorIcon className="w-5 h-5 text-error-600 dark:text-error-400" />;
default:
return <TimeIcon className="w-5 h-5 text-gray-400" />;
}
@@ -241,8 +241,8 @@ export default function SyncDashboard() {
</div>
{integration.error && (
<div className="mb-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded-lg">
<div className="text-sm text-red-800 dark:text-red-300">{integration.error}</div>
<div className="mb-4 p-3 bg-error-50 dark:bg-error-900/20 border border-error-200 dark:border-error-800 rounded-lg">
<div className="text-sm text-error-800 dark:text-error-300">{integration.error}</div>
</div>
)}
@@ -313,11 +313,11 @@ export default function SyncDashboard() {
</h3>
<div className="space-y-2">
{mismatches.taxonomies.missing_in_wordpress.length > 0 && (
<div className="p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg">
<div className="text-sm font-medium text-yellow-800 dark:text-yellow-300 mb-1">
<div className="p-3 bg-warning-50 dark:bg-warning-900/20 rounded-lg">
<div className="text-sm font-medium text-warning-800 dark:text-warning-300 mb-1">
Missing in WordPress ({mismatches.taxonomies.missing_in_wordpress.length})
</div>
<ul className="text-sm text-yellow-700 dark:text-yellow-400 space-y-1">
<ul className="text-sm text-warning-700 dark:text-warning-400 space-y-1">
{mismatches.taxonomies.missing_in_wordpress.slice(0, 5).map((item, idx) => (
<li key={idx}> {item.name} ({item.type})</li>
))}
@@ -325,11 +325,11 @@ export default function SyncDashboard() {
</div>
)}
{mismatches.taxonomies.missing_in_igny8.length > 0 && (
<div className="p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg">
<div className="text-sm font-medium text-blue-800 dark:text-blue-300 mb-1">
<div className="p-3 bg-brand-50 dark:bg-brand-900/20 rounded-lg">
<div className="text-sm font-medium text-brand-800 dark:text-brand-300 mb-1">
Missing in IGNY8 ({mismatches.taxonomies.missing_in_igny8.length})
</div>
<ul className="text-sm text-blue-700 dark:text-blue-400 space-y-1">
<ul className="text-sm text-brand-700 dark:text-brand-400 space-y-1">
{mismatches.taxonomies.missing_in_igny8.slice(0, 5).map((item, idx) => (
<li key={idx}> {item.name} ({item.type})</li>
))}
@@ -350,15 +350,15 @@ export default function SyncDashboard() {
</h3>
<div className="space-y-2">
{mismatches.products.missing_in_wordpress.length > 0 && (
<div className="p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg">
<div className="text-sm text-yellow-800 dark:text-yellow-300">
<div className="p-3 bg-warning-50 dark:bg-warning-900/20 rounded-lg">
<div className="text-sm text-warning-800 dark:text-warning-300">
{mismatches.products.missing_in_wordpress.length} product(s) missing in WordPress
</div>
</div>
)}
{mismatches.products.missing_in_igny8.length > 0 && (
<div className="p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg">
<div className="text-sm text-blue-800 dark:text-blue-300">
<div className="p-3 bg-brand-50 dark:bg-brand-900/20 rounded-lg">
<div className="text-sm text-brand-800 dark:text-brand-300">
{mismatches.products.missing_in_igny8.length} product(s) missing in IGNY8
</div>
</div>
@@ -377,15 +377,15 @@ export default function SyncDashboard() {
</h3>
<div className="space-y-2">
{mismatches.posts.missing_in_wordpress.length > 0 && (
<div className="p-3 bg-yellow-50 dark:bg-yellow-900/20 rounded-lg">
<div className="text-sm text-yellow-800 dark:text-yellow-300">
<div className="p-3 bg-warning-50 dark:bg-warning-900/20 rounded-lg">
<div className="text-sm text-warning-800 dark:text-warning-300">
{mismatches.posts.missing_in_wordpress.length} post(s) missing in WordPress
</div>
</div>
)}
{mismatches.posts.missing_in_igny8.length > 0 && (
<div className="p-3 bg-blue-50 dark:bg-blue-900/20 rounded-lg">
<div className="text-sm text-blue-800 dark:text-blue-300">
<div className="p-3 bg-brand-50 dark:bg-brand-900/20 rounded-lg">
<div className="text-sm text-brand-800 dark:text-brand-300">
{mismatches.posts.missing_in_igny8.length} post(s) missing in IGNY8
</div>
</div>
@@ -449,7 +449,7 @@ export default function SyncDashboard() {
</Badge>
</div>
{log.error && (
<div className="mt-2 text-xs text-red-600 dark:text-red-400">
<div className="mt-2 text-xs text-error-600 dark:text-error-400">
{log.error}
</div>
)}